Changeset 1130:f09016f2d64f in roaraudio for roarclients/roarmonhttp.c


Ignore:
Timestamp:
01/17/09 18:08:32 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added support to roarmonhttp to get source stream via libshout

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roarclients/roarmonhttp.c

    r1027 r1130  
    136136int parse_http (void) { 
    137137 char buf[1024]; 
    138  char * qs, *str; 
     138 char * qs = buf, *str; 
    139139 ssize_t len; 
     140 int dir = ROAR_DIR_MONITOR; 
    140141 
    141142 if ( (len = read(ROAR_STDIN, buf, 1023)) == -1 ) 
     
    144145 buf[len] = 0; 
    145146 
    146  if ( strncmp(buf, "GET /", 5) ) 
    147   return -1; 
    148  
    149  qs = buf+5; 
     147 if ( strncmp(buf, "GET /", 5) ) { 
     148  if ( strncmp(buf, "SOURCE /", 8) ) { 
     149   return -1; 
     150  } else { 
     151   dir = ROAR_DIR_PLAY; 
     152   qs += 3;  
     153  } 
     154 } 
     155 
     156 qs += 5; 
    150157 
    151158 if ( (str = strstr(qs, " ")) == NULL ) 
     
    168175 setenv("QUERY_STRING", qs, 1); 
    169176 
    170  return 0; 
     177 return dir; 
    171178} 
    172179 
     
    181188 char * c, * k, * v; 
    182189 char * sp0, * sp1; 
     190 int dir = ROAR_DIR_MONITOR; 
    183191 
    184192 alarm(0); // reset alarm timers from httpd  
     
    186194 if ( argc > 1 ) 
    187195  if ( ! strcmp(argv[1], "--inetd") ) 
    188    if ( parse_http() == -1 ) 
     196   if ( (dir = parse_http()) == -1 ) 
    189197    return 1; 
    190198 
     
    212220 
    213221 
    214  if ( (fh = roar_simple_monitor(rate, channels, bits, codec, server, "roarmon")) == -1 ) { 
     222 if ( (fh = roar_simple_stream(rate, channels, bits, codec, server, dir, "roarmonhttp")) == -1 ) { 
    215223//  fprintf(stderr, "Error: can not start monitoring\n"); 
    216224  return 1; 
     
    225233*/ 
    226234 
    227  stream(ROAR_STDOUT, fh); 
     235 switch (dir) { 
     236  case ROAR_DIR_PLAY: 
     237    stream(fh, ROAR_STDIN); 
     238   break; 
     239  case ROAR_DIR_MONITOR: 
     240    stream(ROAR_STDOUT, fh); 
     241   break; 
     242 } 
    228243 
    229244 roar_simple_close(fh); 
Note: See TracChangeset for help on using the changeset viewer.