#include "al.h"#include "al_sending.h"#include "al_receiving.h"#include "mux.h"#include "demux.h"#include "video_codec.h"#include "audio.h"Go to the source code of this file.
| Classes | |
| struct | data_codec | 
| struct | control | 
| struct | _side | 
| struct | _session | 
| Defines | |
| #define | MAX_VIDEO_CODECS 10 | 
| #define | MAX_AUDIO_CODECS 10 | 
| #define | MAX_DATA_CODECS 10 | 
| Functions | |
| void | usage (void) | 
| void | add_alse (mux *m, al_sending_entity *alse) | 
| void | add_alre (demux *d, al_receiving_entity *alre) | 
| control * | new_control (void) | 
| void | parse_line (char *s, char *name, char *arg) | 
| void | video_config (video_codec *video) | 
| void | audio_config (audio_codec *A) | 
| void | control_config (control *C) | 
| void | mux_table_config (mux *M) | 
| void | mux_config (mux *M) | 
| void | channel_config (channel *C) | 
| void | side_config (_side *side) | 
| void | get_config () | 
| void | start_config () | 
| void | finish_config () | 
| void | set_config (int argc, char *argv[]) | 
| 
 | 
| 
 | 
| 
 | 
| 
 | 
| 
 | 
| 
 | 
| 
 | ||||||||||||
| 
 Referenced by finish_config(). | 
| 
 | ||||||||||||
| 
 Referenced by finish_config(). | 
| 
 | 
| 
 Definition at line 148 of file config.c. References eof_input_file(), equals(), error(), get_str(), audio_codec::input_filename, audio_codec::output_filename, and parse_line(). Referenced by side_config(). 00149 {
00150   char str[STRLEN];
00151   char name[STRLEN];
00152   char arg[STRLEN];
00153   int done=0;
00154   FILE *fp;
00155 
00156   while (!done && !eof_input_file()) {
00157 
00158     get_str(str);
00159 
00160     parse_line(str, name, arg);
00161 
00162     if (equals(name, "end")) {
00163       done = 1;
00164     }
00165     else if (equals(name, "inputfile")) {
00166       strcpy(A->input_filename, arg);
00167     }
00168     else if (equals(name, "outputfile")) {
00169       strcpy(A->output_filename, arg);
00170       
00171       /* clear the output file */
00172       fp = fopen(A->output_filename,"w"); 
00173       if (fp==NULL) error("audio_config","Can't open output file");
00174       fclose(fp);
00175     }
00176   }
00177 }
 | 
| 
 | 
| 
 Definition at line 298 of file config.c. References channel::bit_error_rate, eof_input_file(), equals(), channel::error, channel::error_offset, channel::filename, get_str(), parse_line(), channel::transmission_delay, and channel::transmission_speed. Referenced by side_config(). 00299 {
00300   char str[STRLEN];
00301   char name[STRLEN];
00302   char arg[STRLEN];
00303   int done=0;
00304 
00305   while (!done && !eof_input_file()) {
00306     get_str(str);
00307     parse_line(str, name, arg);
00308     if (equals(name, "end")) {
00309       done = 1;
00310     }
00311     else if (equals(name, "errortype")) {
00312       if (equals(arg, "none"))
00313         C->error=NoErrors;
00314       else if (equals(arg, "random"))
00315         C->error=Random;
00316       else if (equals(arg, "file"))
00317         C->error=File;
00318     }
00319     else if (equals(name, "errorrate")) {
00320       C->bit_error_rate = atof(arg);
00321     }
00322     else if (equals(name, "errorfile")) {
00323       strcpy(C->filename, arg);
00324     }
00325     else if (equals(name, "speed")) {
00326       C->transmission_speed = atoi(arg);
00327     }
00328     else if (equals(name, "delay")) {
00329       C->transmission_delay = atoi(arg);
00330     }
00331     else if (equals(name, "error_offset")) {
00332       C->error_offset = atoi(arg);
00333     }
00334   }
00335 }
 | 
| 
 | 
| 
 Definition at line 180 of file config.c. References eof_input_file(), equals(), get_str(), and parse_line(). Referenced by side_config(). 00181 {
00182   char str[STRLEN];
00183   char name[STRLEN];
00184   char arg[STRLEN];
00185   int done=0;
00186 
00187   while (!done && !eof_input_file()) {
00188 
00189     get_str(str);
00190 
00191     parse_line(str, name, arg);
00192 
00193     if (equals(name, "end")) {
00194       done = 1;
00195     }
00196     else if (equals(name, "")) {
00197 
00198     }
00199   }
00200 }
 | 
| 
 | 
| 
 | 
| 
 Definition at line 383 of file config.c. References eof_input_file(), equals(), get_str(), _session::local, parse_line(), _session::remote, session, and side_config(). Referenced by set_config(). 00384 {
00385   char str[STRLEN];
00386   char name[STRLEN];
00387   char arg[STRLEN];
00388   void *data;
00389 
00390   while (!eof_input_file()) {
00391     
00392     get_str(str);
00393 
00394     parse_line(str, name, arg);
00395 
00396     if (equals(name, "local")) {
00397       if (debug) {
00398         printf("# %s side config \n", name);
00399       }
00400       side_config(&session.local);
00401     }
00402     else if (equals(name, "remote")) {
00403       if (debug) {
00404         printf("# %s side config\n", name);
00405       }
00406       side_config(&session.remote);
00407     }
00408   }
00409 }
 | 
| 
 | 
| 
 Definition at line 225 of file config.c. References eof_input_file(), equals(), get_str(), mux_parameters::head_t, mux_parameters::header_code, mux_parameters::level, mux_parameters::mpl_code, mux_parameters::mpl_sync_threshold, mux_parameters::mpl_t, mux_table_config(), mux::params, parse_line(), mux_parameters::payload_max, mux_parameters::payload_min, mux_parameters::stat_file, strtobch_type(), mux_parameters::sync_flag_length, mux_parameters::sync_threshold, and mux_parameters::use_mpl. Referenced by side_config(). 00226 {
00227   char str[STRLEN];
00228   char name[STRLEN];
00229   char arg[STRLEN];
00230   int done=0;
00231 
00232   FILE *fp;
00233   while (!done && !eof_input_file()) {
00234     get_str(str);
00235     parse_line(str, name, arg);
00236 
00237     if (equals(name, "end")) {
00238       done = 1;
00239     }
00240     else if (equals(name, "table")) {
00241       mux_table_config(M);
00242     }
00243     else if (equals(name, "sync_flag_length")) {
00244       if (equals(arg,"16d"))
00245         M->params->sync_flag_length = 32;
00246       else
00247         M->params->sync_flag_length = atoi(arg);
00248     }
00249     else if (equals(name, "sync_threshold")) {
00250       M->params->sync_threshold = atoi(arg);
00251     }
00252     else if (equals(name, "header_code")) {
00253       M->params->header_code = strtobch_type(arg);
00254     }
00255     else if (equals(name, "level2")) {
00256       M->params->use_mpl = 1;
00257       M->params->level = 2;
00258       /* hard code some level 2 things.  could remove */
00259       M->params->header_code = GOLAY23_12;
00260       M->params->use_mpl = 0;
00261     }
00262     else if (equals(name, "level1")) {
00263       M->params->use_mpl = 0;
00264       M->params->level = 1;
00265     }
00266     else if (equals(name, "level0")) {
00267       M->params->use_mpl = 0;
00268       M->params->level = 1;  /* uses same logic as level 1 */
00269     }
00270     else if (equals(name, "mpl_code")) {
00271       M->params->mpl_code = strtobch_type(arg);
00272     }
00273     else if (equals(name, "payload_min")) {
00274       M->params->payload_min = atoi(arg);
00275     }
00276     else if (equals(name, "payload_max")) {
00277       M->params->payload_max = atoi(arg);
00278     }
00279     else if (equals(name, "stat_file")) {
00280       strcpy(M->params->stat_file,arg);
00281       fp = fopen(M->params->stat_file,"w"); /* delete this file if exists */
00282       assert(fp!=NULL);
00283       fclose(fp);
00284     }
00285     else if (equals(name, "mpl_t")) {
00286       M->params->mpl_t = atoi(arg);
00287     }
00288     else if (equals(name, "head_t")) {
00289       M->params->head_t = atoi(arg);
00290     }
00291     else if (equals(name, "mpl_sync_threshold")) {
00292       M->params->mpl_sync_threshold = atoi(arg);
00293     }
00294   }
00295 }
 | 
| 
 | 
| 
 Definition at line 203 of file config.c. References add_to_mux_table(), eof_input_file(), equals(), get_str(), mux_parameters::mux_table, mux_parameters::mux_table_size, mux::params, and parse_line(). Referenced by mux_config(). 00204 {
00205   char str[STRLEN];
00206   char name[STRLEN];
00207   char arg[STRLEN];
00208   int done=0;
00209 
00210   while (!done && !eof_input_file()) {
00211     get_str(str);
00212     parse_line(str, name, arg);
00213     if (equals(name, "end")) {
00214       done = 1;
00215     }
00216     else if (equals(name, "entry")) {
00217       if (M->params->mux_table_size < MAX_MUX_TABLE_SIZE) 
00218         add_to_mux_table(M->params->mux_table,
00219                          &(M->params->mux_table_size), arg);
00220     }
00221   }
00222 }
 | 
| 
 | 
| 
 Definition at line 62 of file config.c. Referenced by start_config(). 00063 {
00064   control *bob = malloc(sizeof(control));
00065   if (bob != NULL) {
00066 
00067   }
00068   return(bob);
00069 }
 | 
| 
 | ||||||||||||||||
| 
 Referenced by audio_config(), channel_config(), control_config(), get_config(), mux_config(), mux_table_config(), side_config(), and video_config(). | 
| 
 | ||||||||||||
| 
 Definition at line 526 of file config.c. References close_input_file(), debug, DEF_CONFIG_FILE, equals(), finish_config(), get_config(), open_input_file(), prefix(), start_config(), STRLEN, and usage(). Referenced by main(). 00531 {
00532   int i;
00533   char config_file[STRLEN];
00534 
00535   strcpy(config_file, DEF_CONFIG_FILE);
00536 
00537   /*
00538    * Check if we should print out usage thing.
00539    */
00540 
00541   if (argc > 1 && prefix("-h", argv[1])) {
00542     usage();
00543     exit(0);
00544   }
00545 
00546   if (argc > 1 && strcmp(argv[1], "-advice")==0) {
00547     printf("\aDon't Panic!\n");
00548     exit(42);
00549   }
00550 
00551   /* 
00552    * Process command line arguments.
00553    */
00554 
00555   for (i = 1; i < argc; i++) {
00556     if (argv[i][0]=='-') {
00557       if (strcmp(argv[i], "-c")==0) {
00558         i++;
00559         if (i < argc) {
00560           config_file[STRLEN-1]='\0';
00561           strncpy(config_file, argv[i], STRLEN-1);
00562         }
00563       } 
00564       else if (equals(argv[i], "-d")) {
00565         if (i < (argc - 1)) {
00566           if (argv[i+1][0]!='-') {
00567             i++;
00568             debug = atoi(argv[i]);
00569           }
00570         }
00571         else {
00572           debug = 0;
00573         }
00574       }
00575     } 
00576     else {
00577       fprintf(stderr, "Invalid command line option: %s\n", argv[i]); 
00578       exit(1);
00579     }
00580   }
00581 
00582   /*
00583    * Open the config file.
00584    */
00585 
00586   open_input_file(config_file);
00587 
00588   start_config();
00589   get_config();
00590   finish_config();
00591 
00592   close_input_file();
00593 }
 | 
| 
 | 
| 
 Definition at line 338 of file config.c. References _side::Audio, audio_config(), _side::Channel, channel_config(), _side::Control, control_config(), eof_input_file(), equals(), get_str(), _side::Mux, mux_config(), parse_line(), _side::Video, and video_config(). Referenced by get_config(). 00339 {
00340   char str[STRLEN];
00341   char name[STRLEN];
00342   char arg[STRLEN];
00343   
00344   int done=0;
00345 
00346   while (!done && !eof_input_file()) {
00347   
00348     get_str(str);
00349     parse_line(str, name, arg);
00350 
00351     if (equals(name, "end")) {
00352       done = 1;
00353     }
00354     else if (equals(name, "video")) {
00355       if (debug)
00356         printf("\t# entering %s section\n", name);
00357       video_config(side->Video);
00358     }
00359     else if (equals(name, "audio")) {
00360       if (debug)
00361         printf("\t# entering %s section\n", name);
00362       audio_config(side->Audio);
00363     }
00364     else if (equals(name, "control")) {
00365       if (debug)
00366         printf("\t# entering %s section\n", name);
00367       control_config(side->Control);
00368     }
00369     else if (equals(name, "mux")) {
00370       if (debug)
00371         printf("\t# entering %s section\n", name);
00372       mux_config(side->Mux);
00373     }
00374     else if (equals(name, "channel")) {
00375       if (debug)
00376         printf("\t# entering %s section\n", name);
00377       channel_config(side->Channel);
00378     }
00379   }
00380 }
 | 
| 
 | 
| 
 | 
| 
 | 
| 
 | 
| 
 Definition at line 95 of file config.c. References eof_input_file(), equals(), error(), get_str(), video_codec::input_file, video_codec::no_coding, video_codec::output_file, parse_line(), video_codec::retransmit, video_codec::sequenced, video_codec::streamname, video_codec::targetrate, and video_codec::tmndecode. Referenced by side_config(). 00096 {
00097   char str[STRLEN];
00098   char name[STRLEN];
00099   char arg[STRLEN];
00100   int done=0;
00101   FILE *fp;
00102 
00103   while (!done && !eof_input_file()) {
00104 
00105     get_str(str);
00106 
00107     parse_line(str, name, arg);
00108 
00109     if (equals(name, "end")) {
00110       done = 1;
00111     }
00112     else if (equals(name, "inputfile")) {
00113       strcpy(video->input_file, arg);
00114     }
00115     else if (equals(name, "no_coding")) {
00116       video->no_coding = 1;
00117     }
00118     else if (equals(name, "outputfile")) {
00119       strcpy(video->output_file, arg);
00120       
00121       /* clear the output file */
00122       fp = fopen(video->output_file,"w"); 
00123       if (fp==NULL) error("video_config","Can't open output file");
00124       fclose(fp);
00125     }
00126     else if (equals(name, "streamfile")) {
00127       strcpy(video->streamname, arg);
00128     }
00129     else if (equals(name, "bitrate")) {
00130       video->targetrate = atoi(arg);
00131     }
00132 
00133     /* the rest of these are logical channel params */
00134 
00135     else if (equals(name, "sequenced")) {
00136       video->sequenced=1;
00137     }
00138     else if (equals(name, "retransmit")) {
00139       video->retransmit=1;
00140     }
00141     else if (equals(name, "tmndecode")) {
00142       video->tmndecode=1;
00143     }
00144   }
00145 }
 | 
 1.3.9.1
 1.3.9.1