00001 /* 00002 * 00003 * This file is part of the 'NewsService Journaline(R) Decoder' 00004 * 00005 * Copyright (c) 2003, 2004 by Fraunhofer IIS, Erlangen, Germany 00006 * 00007 * -------------------------------------------------------------------- 00008 * 00009 * For NON-COMMERCIAL USE, 00010 * the 'NewsService Journaline(R) Decoder' is free software; 00011 * you can redistribute it and/or modify it under the terms of 00012 * the GNU General Public License as published by the 00013 * Free Software Foundation; either version 2 of the License, or 00014 * (at your option) any later version. 00015 * 00016 * The 'NewsService Journaline(R) Decoder' is distributed in the hope 00017 * that it will be useful, but WITHOUT ANY WARRANTY; 00018 * without even the implied warranty of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00020 * GNU General Public License for more details. 00021 * 00022 * You should have received a copy of the GNU General Public License 00023 * along with the 'NewsService Journaline(R) Decoder'; 00024 * if not, write to the Free Software Foundation, Inc., 00025 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00026 * 00027 * 00028 * If you use this software in a project with user interaction, please 00029 * provide the following text to the user in an appropriate place: 00030 * "Features NewsService Journaline(R) decoder technology by 00031 * Fraunhofer IIS, Erlangen, Germany. 00032 * For more information visit http://www.iis.fhg.de/dab" 00033 * 00034 * -------------------------------------------------------------------- 00035 * 00036 * To use the 'NewsService Journaline(R) Decoder' software for 00037 * COMMERCIAL purposes, please contact Fraunhofer IIS for a 00038 * commercial license (see below for contact information)! 00039 * 00040 * -------------------------------------------------------------------- 00041 * 00042 * Contact: 00043 * Fraunhofer IIS, Department 'Broadcast Applications' 00044 * Am Wolfsmantel 33, 91058 Erlangen, Germany 00045 * http://www.iis.fraunhofer.de/dab 00046 * mailto:bc-info@iis.fraunhofer.de 00047 * 00048 */ 00049 00050 #ifndef __DAB_DATAGROUP_DECODER__ 00051 #define __DAB_DATAGROUP_DECODER__ 00052 00094 #ifdef __cplusplus 00095 extern "C" { 00096 #endif 00097 00099 typedef const void* DAB_DATAGROUP_DECODER_t; 00100 00105 typedef struct 00106 { 00107 unsigned char extension_flag; 00108 unsigned char crc_flag; 00109 unsigned char segment_flag; 00110 unsigned char user_access_flag; 00111 unsigned char datagroup_type; 00112 unsigned char continuity_index; 00113 unsigned char repetition_index; 00114 unsigned short extension_field; 00116 } DAB_DATAGROUP_DECODER_msc_datagroup_header_t; 00117 00118 00140 typedef void(DAB_DATAGROUP_DECODER_data) 00141 ( 00142 const DAB_DATAGROUP_DECODER_msc_datagroup_header_t *header, 00143 const unsigned long len, 00144 const unsigned char *buf, 00145 void *arg 00146 ); 00147 00148 00149 00150 /******************************************* 00151 * 1. object lifetime control * 00152 *******************************************/ 00153 00165 DAB_DATAGROUP_DECODER_t DAB_DATAGROUP_DECODER_createDec( 00166 DAB_DATAGROUP_DECODER_data *data, 00167 void *arg 00168 ); 00169 00170 00179 void DAB_DATAGROUP_DECODER_deleteDec(const DAB_DATAGROUP_DECODER_t decoder); 00180 00181 00182 00183 /******************************************* 00184 * 2. data provision * 00185 *******************************************/ 00186 00207 unsigned long DAB_DATAGROUP_DECODER_putData( 00208 const DAB_DATAGROUP_DECODER_t decoder, 00209 const unsigned long len, 00210 const unsigned char *buf 00211 ); 00212 00213 00214 #ifdef __cplusplus 00215 } 00216 #endif 00217 00218 #endif /* __DAB_DATAGROUP_DECODER__ */