Changeset 2330:5ec217cd3801 in roaraudio


Ignore:
Timestamp:
08/06/09 16:22:33 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

support to set meta data

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roarclients/roarphone.c

    r2329 r2330  
    7171struct roar_bixcoder transcoder[1]; 
    7272 
     73struct { 
     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 
    7387void usage (void) { 
    7488 printf("roarphone [OPTIONS]...\n"); 
    7589 
    76  printf("\nOptions:\n\n"); 
     90 printf("\nServer Options:\n\n"); 
    7791 
    7892 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" 
    8097        "  --bits     BITS      - Set bits per sample\n" 
    8198        "  --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" 
    84108        "  --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" 
    86113        "  --threshold DTXTHRES - Set the DTX threshold, disabled by default\n" 
    87         "  --transcode          - Use local transcodeing\n" 
    88114        "  --help               - Show this help\n" 
    89115       ); 
    90116 
     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       ); 
    91126} 
    92127 
     
    113148 
    114149 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                              } 
     159int 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 } 
    115205 
    116206 return 0; 
     
    279369 memset(&g_cons, 0, sizeof(g_cons)); 
    280370 g_cons.state = CON_NONE; 
     371 
     372 memset(&g_meta, 0, sizeof(g_meta)); 
    281373 
    282374 for (i = 1; i < argc; i++) { 
     
    319411  } else if ( strcmp(k, "--transcode") == 0 ) { 
    320412   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 
    321431  } else if ( strcmp(k, "--help") == 0 ) { 
    322432   usage(); 
     
    366476 ROAR_DBG("main(*): RET"); 
    367477 
     478 set_meta(); 
     479 
    368480 if ( g_conf.transcode ) { 
    369481  dinfo.codec = info.codec; 
Note: See TracChangeset for help on using the changeset viewer.