Changeset 1842:8c8a003773ca in roaraudio for roard/req.c


Ignore:
Timestamp:
05/23/09 04:17:05 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

support for names on server streams, added roar_stream_get_name()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/req.c

    r1840 r1842  
    508508 uint16_t * d = (uint16_t *) mes->data; 
    509509 int i; 
     510 char * str; 
    510511 
    511512 if ( mes->datalen != 4 ) 
     
    516517 } 
    517518 
    518  if ( streams_get(mes->stream, &ss) == -1 ) { 
    519   ROAR_WARN("req_on_get_stream_para(*): request on non existing (or other error?) stream %i", mes->stream); 
    520   return -1; 
    521  } 
    522  
    523  if ( streams_calc_delay(mes->stream) == -1 ) { 
    524   ROAR_WARN("req_on_get_stream_para(*): can not calc delay for stream %i", mes->stream); 
    525  } 
    526  
    527  s = ROAR_STREAM(ss); 
    528  
    529  audio_info = &(s->info); 
    530  
    531  if ( d[0] != 0 || d[1] != 1 ) { 
     519 if ( d[0] != 0 ) { 
    532520  ROAR_WARN("req_on_get_stream_para(*): unsupported command version: %i, %i", d[0], d[1]); 
    533521  return -1; 
    534522 } 
    535523 
    536  mes->datalen = 2*8; 
    537  
    538  d[2] = ROAR_OUTPUT_CALC_OUTBUFSIZE(audio_info); 
    539  d[3] = ss->pre_underruns; 
    540  d[4] = ss->post_underruns; 
    541  d[5] = ss->codec_orgi; 
    542  d[6] = ss->flags | (ss->primary ? ROAR_FLAG_PRIMARY : 0) | (ss->driver_id != -1 ? ROAR_FLAG_OUTPUT : 0); 
    543  d[7] = ss->delay/1000; 
    544  
    545  ROAR_DBG("req_on_get_stream_para(*): ss->driver_id=%i", ss->driver_id); 
    546  
    547  ROAR_DBG("req_on_get_stream_para(*): delay=%i, send delay=%i", ss->delay, d[7]); 
    548  
    549  for (i = 0; i < mes->datalen/2; i++) { 
    550   d[i] = ROAR_HOST2NET16(d[i]); 
    551  } 
    552  
    553  mes->pos = s->pos; 
     524 switch (d[1]) { 
     525  case ROAR_STREAM_PARA_INFO: 
     526    if ( streams_get(mes->stream, &ss) == -1 ) { 
     527     ROAR_WARN("req_on_get_stream_para(*): request on non existing (or other error?) stream %i", mes->stream); 
     528     return -1; 
     529    } 
     530 
     531    if ( streams_calc_delay(mes->stream) == -1 ) { 
     532     ROAR_WARN("req_on_get_stream_para(*): can not calc delay for stream %i", mes->stream); 
     533    } 
     534 
     535    s = ROAR_STREAM(ss); 
     536 
     537    audio_info = &(s->info); 
     538 
     539    mes->datalen = 2*8; 
     540 
     541    d[2] = ROAR_OUTPUT_CALC_OUTBUFSIZE(audio_info); 
     542    d[3] = ss->pre_underruns; 
     543    d[4] = ss->post_underruns; 
     544    d[5] = ss->codec_orgi; 
     545    d[6] = ss->flags | (ss->primary ? ROAR_FLAG_PRIMARY : 0) | (ss->driver_id != -1 ? ROAR_FLAG_OUTPUT : 0); 
     546    d[7] = ss->delay/1000; 
     547 
     548    ROAR_DBG("req_on_get_stream_para(*): ss->driver_id=%i", ss->driver_id); 
     549 
     550    ROAR_DBG("req_on_get_stream_para(*): delay=%i, send delay=%i", ss->delay, d[7]); 
     551 
     552    for (i = 0; i < mes->datalen/2; i++) { 
     553     d[i] = ROAR_HOST2NET16(d[i]); 
     554    } 
     555 
     556    mes->pos = s->pos; 
     557   break; 
     558 
     559  case ROAR_STREAM_PARA_NAME: 
     560   str = streams_get_name(mes->stream); 
     561 
     562   if ( str == NULL ) 
     563    return -1; 
     564 
     565    mes->datalen = 4 + strlen(str); 
     566 
     567    if ( mes->datalen > LIBROAR_BUFFER_MSGDATA ) 
     568     return -1; 
     569 
     570    strncpy(((char*)&(mes->data))+4, str, mes->datalen); 
     571 
     572    d[0] = ROAR_HOST2NET16(d[0]); 
     573    d[1] = ROAR_HOST2NET16(d[1]); 
     574   break; 
     575 
     576  default: 
     577    ROAR_WARN("req_on_get_stream_para(*): unsupported command: %i", d[1]); 
     578    return -1; 
     579 } 
    554580 
    555581 mes->cmd = ROAR_CMD_OK; 
     
    568594 } 
    569595 
    570  if ( d[0] != 0 || d[1] != 2 ) { 
     596 if ( d[0] != 0 || d[1] != ROAR_STREAM_PARA_FLAGS ) { 
    571597  ROAR_WARN("req_on_set_stream_para(*): unsupported command version: %i, %i", d[0], d[1]); 
    572598  return -1; 
Note: See TracChangeset for help on using the changeset viewer.