Changeset 3266:40be2c179060 in roaraudio


Ignore:
Timestamp:
01/31/10 15:57:14 (14 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

support for PulseAudio? Simple protocol

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roarclients/roarinterconnect.c

    r3121 r3266  
    3333#define MT_ROAR     0x10 
    3434#define MT_ESD      0x20 
     35#define MT_SIMPLE   0x30 
    3536#define MT_DEFAULT  MT_ROAR 
    3637 
     
    6162 printf("  roar               - RoarAudio Server\n" 
    6263        "  esd                - EsounD Server\n" 
     64        "  simple             - PulseAudio using simple protocol\n" 
    6365        "\n" 
    6466        "  bidir              - Connect bidirectional\n" 
     
    8789    ret -= ret & MT_MASK; 
    8890    ret += MT_ESD; 
     91   } else if ( !strcmp(type, "simple") ) { 
     92    ret -= ret & MT_MASK; 
     93    ret += MT_SIMPLE; 
    8994   } else if ( !strcmp(type, "bidir") ) { 
    9095    ret -= ret & ST_MASK; 
     
    112117 if ( (ret & ST_MASK) == ST_NONE ) { 
    113118  switch (ret & MT_MASK) { 
    114    case MT_ROAR: ret |= ST_BIDIR;  break; 
    115    case MT_ESD:  ret |= ST_FILTER; break; 
     119   case MT_ROAR:   ret |= ST_BIDIR;    break; 
     120   case MT_ESD:    ret |= ST_FILTER;   break; 
     121   case MT_SIMPLE: ret |= ST_TRANSMIT; break; 
    116122   default: 
    117123     return MT_NONE|ST_NONE; // error case 
     
    138144 int    i; 
    139145 int    localdir = ROAR_DIR_BIDIR; 
     146 int    rport; 
    140147 
    141148 for (i = 1; i < argc; i++) { 
     
    235242   break; 
    236243#endif 
     244  case MT_SIMPLE: 
     245    switch (type & ST_MASK) { 
     246     case ST_TRANSMIT: 
     247       tmp = SHUT_RD; 
     248       localdir = ROAR_DIR_MONITOR; 
     249      break; 
     250     case ST_RECEIVE: 
     251       tmp = SHUT_WR; 
     252       localdir = ROAR_DIR_PLAY; 
     253      break; 
     254     default: 
     255       fprintf(stderr, "Error: this type is not supported by PulseAudio\n"); 
     256       return 2; 
     257    } 
     258    // we guess INET here... 
     259    if ( strstr(remote, "/") == NULL && (k = strstr(remote, ":")) != NULL ) { 
     260     *k = 0; 
     261     k++; 
     262     rport = atoi(k); 
     263    } else { 
     264     rport = 4712; 
     265    } 
     266    rfh = roar_socket_connect(remote, rport); 
     267    ROAR_SHUTDOWN(rfh, tmp); 
     268   break; 
    237269  default: 
    238270    fprintf(stderr, "Error: unknown/not supported server type\n"); 
Note: See TracChangeset for help on using the changeset viewer.