Changeset 2330:5ec217cd3801 in roaraudio for roarclients/roarphone.c
- Timestamp:
- 08/06/09 16:22:33 (15 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
roarclients/roarphone.c
r2329 r2330 71 71 struct roar_bixcoder transcoder[1]; 72 72 73 struct { 74 struct { 75 char key[ROAR_META_MAX_NAMELEN]; 76 char value[LIBROAR_BUFFER_MSGDATA]; 77 } tmp; 78 char * rn; 79 char * nick; 80 char * org; 81 char * email; 82 char * hp; 83 char * loc; 84 char * thumbnail; 85 } g_meta; 86 73 87 void usage (void) { 74 88 printf("roarphone [OPTIONS]...\n"); 75 89 76 printf("\n Options:\n\n");90 printf("\nServer Options:\n\n"); 77 91 78 92 printf(" --server SERVER - Set server hostname\n" 79 " --rate RATE - Set sample rate\n" 93 ); 94 95 printf("\nAudio Options:\n\n"); 96 printf(" --rate RATE - Set sample rate\n" 80 97 " --bits BITS - Set bits per sample\n" 81 98 " --chans CHANNELS - Set number of channels\n" 82 " --codec CODEC - Set the codec\n" 83 " --driver DRIVER - Set the driver\n" 99 ); 100 101 printf("\nCodec Options:\n\n"); 102 printf(" --codec CODEC - Set the codec\n" 103 " --transcode - Use local transcodeing\n" 104 ); 105 106 printf("\nDriver Options:\n\n"); 107 printf(" --driver DRIVER - Set the driver\n" 84 108 " --device DEVICE - Set the device\n" 85 " --antiecho AEMODE - Set the anti echo mode\n" 109 ); 110 111 printf("\nGeneral Options:\n\n"); 112 printf(" --antiecho AEMODE - Set the anti echo mode\n" 86 113 " --threshold DTXTHRES - Set the DTX threshold, disabled by default\n" 87 " --transcode - Use local transcodeing\n"88 114 " --help - Show this help\n" 89 115 ); 90 116 117 printf("\nMeta Data Options:\n\n"); 118 printf(" --m-rn REALNAME - Sets the real name\n" 119 " --m-nick NICK - Sets the nick name\n" 120 " --m-email EMAIL - Sets the email address\n" 121 " --m-hp HOMEPAGE - Sets the homepage URL\n" 122 " --m-thumbn THUMBNAIL - Sets a URL to a thumbnail\n" 123 " --m-loc LOCATION - Sets the location (room number)\n" 124 " --m-org ORGANIZATION - Sets the organization/company name\n" 125 ); 91 126 } 92 127 … … 113 148 114 149 g_cons.state |= CON_STREAM; 150 151 return 0; 152 } 153 154 #define _SET_META(ivar,itype) if ( (ivar) != NULL ) { \ 155 meta.value = (ivar); \ 156 meta.type = (itype); \ 157 roar_stream_meta_set(&(g_cons.con), &(g_cons.stream), ROAR_META_MODE_SET, &meta); \ 158 } 159 int set_meta (void) { 160 struct roar_meta meta; 161 162 meta.value = g_meta.tmp.value; 163 meta.key[0] = 0; 164 meta.type = ROAR_META_TYPE_NONE; 165 166 roar_stream_meta_set(&(g_cons.con), &(g_cons.stream), ROAR_META_MODE_CLEAR, &meta); 167 168 _SET_META(g_meta.thumbnail, ROAR_META_TYPE_THUMBNAIL); 169 _SET_META(g_meta.loc, ROAR_META_TYPE_LOCATION); 170 _SET_META(g_meta.hp, ROAR_META_TYPE_HOMEPAGE); 171 _SET_META(g_meta.org, ROAR_META_TYPE_ORGANIZATION); 172 173 if ( g_meta.nick != NULL ) { 174 if ( g_meta.rn != NULL ) { 175 snprintf(g_meta.tmp.value, LIBROAR_BUFFER_MSGDATA-1, "%s (%s)", g_meta.rn, g_meta.nick); 176 g_meta.tmp.value[LIBROAR_BUFFER_MSGDATA-1] = 0; 177 _SET_META(g_meta.tmp.value, ROAR_META_TYPE_AUTHOR); 178 } else { 179 _SET_META(g_meta.nick, ROAR_META_TYPE_AUTHOR); 180 } 181 } else { 182 if ( g_meta.rn != NULL ) { 183 _SET_META(g_meta.rn, ROAR_META_TYPE_AUTHOR); 184 } 185 } 186 187 // TODO: make this more nice... 188 if ( g_meta.email != NULL ) { 189 if ( g_meta.nick != NULL ) { 190 if ( g_meta.rn != NULL ) { 191 snprintf(g_meta.tmp.value, LIBROAR_BUFFER_MSGDATA-1, "%s (%s) <%s>", g_meta.rn, g_meta.nick, g_meta.email); 192 } else { 193 snprintf(g_meta.tmp.value, LIBROAR_BUFFER_MSGDATA-1, "%s <%s>", g_meta.nick, g_meta.email); 194 } 195 } else { 196 if ( g_meta.rn != NULL ) { 197 snprintf(g_meta.tmp.value, LIBROAR_BUFFER_MSGDATA-1, "%s <%s>", g_meta.rn, g_meta.email); 198 } else { 199 snprintf(g_meta.tmp.value, LIBROAR_BUFFER_MSGDATA-1, "<%s>", g_meta.email); 200 } 201 } 202 g_meta.tmp.value[LIBROAR_BUFFER_MSGDATA-1] = 0; 203 _SET_META(g_meta.tmp.value, ROAR_META_TYPE_CONTACT); 204 } 115 205 116 206 return 0; … … 279 369 memset(&g_cons, 0, sizeof(g_cons)); 280 370 g_cons.state = CON_NONE; 371 372 memset(&g_meta, 0, sizeof(g_meta)); 281 373 282 374 for (i = 1; i < argc; i++) { … … 319 411 } else if ( strcmp(k, "--transcode") == 0 ) { 320 412 g_conf.transcode = 1; 413 414 // META DATA: 415 } else if ( strcmp(k, "--m-rn") == 0 ) { 416 g_meta.rn = argv[++i]; 417 } else if ( strcmp(k, "--m-nick") == 0 ) { 418 g_meta.nick = argv[++i]; 419 } else if ( strcmp(k, "--m-email") == 0 ) { 420 g_meta.email = argv[++i]; 421 } else if ( strcmp(k, "--m-hp") == 0 ) { 422 g_meta.hp = argv[++i]; 423 } else if ( strcmp(k, "--m-thumbn") == 0 ) { 424 g_meta.thumbnail = argv[++i]; 425 } else if ( strcmp(k, "--m-loc") == 0 ) { 426 g_meta.loc = argv[++i]; 427 } else if ( strcmp(k, "--m-org") == 0 ) { 428 g_meta.org = argv[++i]; 429 430 321 431 } else if ( strcmp(k, "--help") == 0 ) { 322 432 usage(); … … 366 476 ROAR_DBG("main(*): RET"); 367 477 478 set_meta(); 479 368 480 if ( g_conf.transcode ) { 369 481 dinfo.codec = info.codec;
Note: See TracChangeset
for help on using the changeset viewer.