Changeset 3252:5dd53a288c8b in roaraudio


Ignore:
Timestamp:
01/30/10 13:09:57 (14 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added support for --proto-* options (no protocol does use it at the moment)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/roard.c

    r3129 r3252  
    153153        "     --sock            - Filename for UNIX Domain Socket\n" 
    154154        "     --proto PROTO     - Use PROTO as protocol on Socket\n" 
     155        "     --proto-dir DIR   - Set direction parameter for protocol\n" 
     156        "     --proto-rate RATE - Set sample rate parameter for protocol\n" 
     157        "     --proto-bits BITS - Set bits per sample parameter for protocol\n" 
     158        "     --proto-codec E   - Set codec parameter for protocol\n" 
     159        "     --proto-chans C   - Set number of channels paramter for protocol\n" 
    155160        "     --list-proto      - List supported protocols\n" 
    156161        "     --new-sock        - Parameters for new socket follows\n" 
     
    280285} 
    281286 
    282 int add_listen (char * addr, int port, int sock_type, char * user, char * group, int proto) { 
     287int add_listen (char * addr, int port, int sock_type, char * user, char * group, int proto, int dir, struct roar_audio_info * info) { 
    283288#if defined(ROAR_HAVE_SETGID) && defined(ROAR_HAVE_IO_POSIX) 
    284289 struct group   * grp  = NULL; 
     
    373378 
    374379 // in case we opened the listening socket correctly. 
     380 g_listen[sockid].inst.stpl.dir = dir; 
     381 memcpy(&(g_listen[sockid].inst.stpl.info), info, sizeof(struct roar_audio_info)); 
    375382 server[sockid] = addr; 
    376383 return 0; 
     
    854861 char * sock_addr  = NULL; 
    855862 int    sock_proto = ROAR_PROTO_ROARAUDIO; 
     863 int    sock_dir   = -1; 
     864 struct roar_audio_info sock_info = {0, 0, 0, 0}; 
    856865#endif 
    857866 int               drvid; 
     
    13111320   } 
    13121321#endif 
     1322  } else if ( strcmp(k, "--proto-dir") == 0 ) { 
     1323#ifdef ROAR_SUPPORT_LISTEN 
     1324   if ( (sock_dir = roar_str2dir(argv[++i])) == -1 ) { 
     1325    ROAR_ERR("Unknown stream direction: %s", argv[i]); 
     1326    return 1; 
     1327   } 
     1328#endif 
     1329  } else if ( strcmp(k, "--proto-rate") == 0 ) { 
     1330#ifdef ROAR_SUPPORT_LISTEN 
     1331   sock_info.rate = atoi(argv[++i]); 
     1332#endif 
     1333  } else if ( strcmp(k, "--proto-bits") == 0 ) { 
     1334#ifdef ROAR_SUPPORT_LISTEN 
     1335   sock_info.bits = atoi(argv[++i]); 
     1336#endif 
     1337  } else if ( strcmp(k, "--proto-chans") == 0 ) { 
     1338#ifdef ROAR_SUPPORT_LISTEN 
     1339   sock_info.channels = atoi(argv[++i]); 
     1340#endif 
     1341  } else if ( strcmp(k, "--proto-codec") == 0 ) { 
     1342#ifdef ROAR_SUPPORT_LISTEN 
     1343   if ( (sock_info.codec = roar_str2codec(argv[++i])) == -1 ) { 
     1344    ROAR_ERR("Unknown codec: %s", argv[i]); 
     1345    return 1; 
     1346   } 
     1347#endif 
     1348 
     1349 
    13131350  } else if ( strcmp(k, "--list-proto") == 0 ) { 
    13141351   list_proto(); 
     
    13621399  } else if ( strcmp(k, "--new-sock") == 0 ) { 
    13631400#ifdef ROAR_SUPPORT_LISTEN 
    1364    if ( add_listen(sock_addr, port, sock_type, sock_user, sock_grp, sock_proto) != 0 ) { 
     1401   if ( add_listen(sock_addr, port, sock_type, sock_user, sock_grp, sock_proto, sock_dir, &sock_info) != 0 ) { 
    13651402    ROAR_ERR("Can not open listen socket!"); 
    13661403    return 1; 
     
    14571494 
    14581495#ifdef ROAR_SUPPORT_LISTEN 
    1459  if ( add_listen(sock_addr, port, sock_type, sock_user, sock_grp, sock_proto) != 0 ) { 
     1496 if ( add_listen(sock_addr, port, sock_type, sock_user, sock_grp, sock_proto, sock_dir, &sock_info) != 0 ) { 
    14601497  ROAR_ERR("Can not open listen socket!"); 
    14611498  return 1; 
Note: See TracChangeset for help on using the changeset viewer.