From 78a5d1945922e9d4b9932c9d39d61a9f192bcd56 Mon Sep 17 00:00:00 2001 From: "Matthias P. Braendli" Date: Fri, 18 Mar 2016 16:02:25 +0100 Subject: Add rdparse tool in development --- rdsparse/parser_impl.h | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 rdsparse/parser_impl.h (limited to 'rdsparse/parser_impl.h') diff --git a/rdsparse/parser_impl.h b/rdsparse/parser_impl.h new file mode 100644 index 0000000..331b38b --- /dev/null +++ b/rdsparse/parser_impl.h @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2014 Bastian Bloessl + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#ifndef INCLUDED_RDS_PARSER_IMPL_H +#define INCLUDED_RDS_PARSER_IMPL_H + +#include + +namespace rds { + +class parser_impl +{ +public: + parser_impl(bool log, bool debug, unsigned char pty_locale); + + void parse(unsigned int *group); + +private: + + void reset(); + void send_message(long, std::string); + double decode_af(unsigned int); + void decode_optional_content(int, unsigned long int *); + + void decode_type0( unsigned int* group, bool B); + void decode_type1( unsigned int* group, bool B); + void decode_type2( unsigned int* group, bool B); + void decode_type3( unsigned int* group, bool B); + void decode_type4( unsigned int* group, bool B); + void decode_type5( unsigned int* group, bool B); + void decode_type6( unsigned int* group, bool B); + void decode_type7( unsigned int* group, bool B); + void decode_type8( unsigned int* group, bool B); + void decode_type9( unsigned int* group, bool B); + void decode_type10(unsigned int* group, bool B); + void decode_type11(unsigned int* group, bool B); + void decode_type12(unsigned int* group, bool B); + void decode_type13(unsigned int* group, bool B); + void decode_type14(unsigned int* group, bool B); + void decode_type15(unsigned int* group, bool B); + + unsigned int program_identification; + unsigned char program_type; + unsigned char pi_country_identification; + unsigned char pi_area_coverage; + unsigned char pi_program_reference_number; + char radiotext[65]; + char program_service_name[9]; + bool radiotext_AB_flag; + bool traffic_program; + bool traffic_announcement; + bool music_speech; + bool mono_stereo; + bool artificial_head; + bool compressed; + bool static_pty; + bool log; + bool debug; + unsigned char pty_locale; +}; + +}; // namespace rds + +#endif /* INCLUDED_RDS_PARSER_IMPL_H */ + -- cgit v1.2.3