Changeset 1043:1ca27ba72398 in roaraudio for roard


Ignore:
Timestamp:
12/23/08 09:26:22 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added support to set flags via roarctl, update meta data on change of meta flag

Location:
roard
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • roard/commands.c

    r768 r1043  
    5555  {ROAR_CMD_GET_VOL,      "GET_VOL",      req_on_get_vol}, 
    5656  {ROAR_CMD_GET_STREAM_PARA, "GET_STREAM_PARA", req_on_get_stream_para}, 
     57  {ROAR_CMD_SET_STREAM_PARA, "SET_STREAM_PARA", req_on_set_stream_para}, 
    5758 
    5859  {ROAR_CMD_ADD_DATA,     "ADD_DATA",     req_on_add_data}, 
  • roard/include/req.h

    r768 r1043  
    5656 
    5757int req_on_get_stream_para (int client, struct roar_message * mes, char * data); 
     58int req_on_set_stream_para (int client, struct roar_message * mes, char * data); 
    5859 
    5960int req_on_kick        (int client, struct roar_message * mes, char * data); 
  • roard/req.c

    r1038 r1043  
    501501} 
    502502 
     503int req_on_set_stream_para (int client, struct roar_message * mes, char * data) { 
     504 uint16_t * d = (uint16_t *) mes->data; 
     505 int i; 
     506 
     507 if ( mes->datalen != 8 ) 
     508  return -1; 
     509 
     510 for (i = 0; i < mes->datalen/2; i++) { 
     511  d[i] = ROAR_NET2HOST16(d[i]); 
     512 } 
     513 
     514 if ( d[0] != 0 || d[1] != 2 ) { 
     515  ROAR_WARN("req_on_set_stream_para(*): unsupported command version: %i, %i", d[0], d[1]); 
     516  return -1; 
     517 } 
     518 
     519 mes->cmd     = ROAR_CMD_OK; 
     520 mes->datalen = 0; 
     521 
     522 ROAR_WARN("req_on_set_stream_para(*): request seems to be valid"); 
     523 
     524 if ( d[2] == ROAR_RESET_FLAG ) { 
     525  return streams_reset_flag(mes->stream, d[3]); 
     526 } else { 
     527  return streams_set_flag(mes->stream, d[3]); 
     528 } 
     529 
     530 return -1; 
     531} 
     532 
    503533int req_on_kick (int client, struct roar_message * mes, char * data) { 
    504534 uint16_t * info = (uint16_t *) mes->data; 
  • roard/streams.c

    r1042 r1043  
    267267  return -1; 
    268268 
     269 if ( flag & ROAR_FLAG_PRIMARY ) { 
     270  streams_set_primary(id, 1); 
     271  flag -= ROAR_FLAG_PRIMARY; 
     272 } 
     273 
    269274 g_streams[id]->flags |= flag; 
    270275 
     276 if ( flag & ROAR_FLAG_META ) 
     277  stream_meta_finalize(id); 
     278 
    271279 return 0; 
    272280} 
     
    275283 if ( g_streams[id] == NULL ) 
    276284  return -1; 
     285 
     286 if ( flag & ROAR_FLAG_PRIMARY ) { 
     287  streams_set_primary(id, 0); 
     288  flag -= ROAR_FLAG_PRIMARY; 
     289 } 
    277290 
    278291 g_streams[id]->flags |= flag; 
Note: See TracChangeset for help on using the changeset viewer.