Changeset 3542:4a10d68e4c70 in roaraudio for roard/req.c


Ignore:
Timestamp:
02/20/10 01:28:43 (14 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

support to set channel map

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/req.c

    r3539 r3542  
    664664 int i; 
    665665 
    666  if ( mes->datalen != 8 ) 
    667   return -1; 
    668  
    669  for (i = 0; i < mes->datalen/2; i++) { 
     666 if ( mes->datalen < 2*2 ) 
     667  return -1; 
     668 
     669 for (i = 0; i < 2; i++) { 
    670670  d[i] = ROAR_NET2HOST16(d[i]); 
    671671 } 
    672672 
    673  if ( d[0] != 0 || d[1] != ROAR_STREAM_PARA_FLAGS ) { 
    674   ROAR_WARN("req_on_set_stream_para(*): unsupported command version: %i, %i", d[0], d[1]); 
    675   return -1; 
    676  } 
    677  
    678  mes->cmd     = ROAR_CMD_OK; 
    679  mes->datalen = 0; 
    680  
    681  ROAR_DBG("req_on_set_stream_para(*): request seems to be valid"); 
    682  
    683  if ( d[2] == ROAR_RESET_FLAG ) { 
    684   return streams_reset_flag(mes->stream, d[3]); 
    685  } else { 
    686   return streams_set_flag(mes->stream, d[3]); 
    687  } 
    688  
    689  return -1; 
     673 if ( d[0] != 0 ) 
     674  return -1; 
     675 
     676 switch (d[1]) { 
     677  case ROAR_STREAM_PARA_FLAGS: 
     678    if ( mes->datalen != 2*4 ) 
     679     return -1; 
     680 
     681    d[2] = ROAR_NET2HOST16(d[2]); 
     682    d[3] = ROAR_NET2HOST16(d[3]); 
     683 
     684    ROAR_DBG("req_on_set_stream_para(*): request seems to be valid"); 
     685 
     686    if ( d[2] == ROAR_RESET_FLAG ) { 
     687     if ( streams_reset_flag(mes->stream, d[3]) == -1 ) 
     688      return -1; 
     689    } else { 
     690     if ( streams_set_flag(mes->stream, d[3]) == -1 ) 
     691      return -1; 
     692    } 
     693   break; 
     694  case ROAR_STREAM_PARA_CHANMAP: 
     695    if ( streams_set_map(mes->stream, &(mes->data[4]), mes->datalen - 4) == -1 ) 
     696     return -1; 
     697   break; 
     698  default: 
     699    ROAR_WARN("req_on_set_stream_para(*): unsupported command version: %i, %i", d[0], d[1]); 
     700    return -1; 
     701   break; 
     702 } 
     703 
     704 mes->cmd     = ROAR_CMD_OK; 
     705 mes->datalen = 0; 
     706 
     707 return 0; 
    690708} 
    691709 
Note: See TracChangeset for help on using the changeset viewer.