Changeset 465:82fd66e50dc3 in roaraudio for libroar/stream.c


Ignore:
Timestamp:
08/12/08 15:37:57 (16 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added support to get the size of optimal read() and write()s

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroar/stream.c

    r134 r465  
    138138} 
    139139 
     140int roar_stream_get_info (struct roar_connection * con, struct roar_stream * s, struct roar_stream_info * info) { 
     141 struct roar_message m; 
     142 uint16_t * data = (uint16_t *) m.data; 
     143 int i; 
     144 
     145 m.cmd     = ROAR_CMD_GET_STREAM_PARA; 
     146 m.stream  = s->id; 
     147 m.datalen = 4; 
     148 m.pos     = 0; 
     149 
     150 data[0] = 0; // Version and reserved 
     151 data[1] = 1; // stream 
     152 
     153 for (i = 0; i < m.datalen/2; i++) { 
     154  data[i] = ROAR_HOST2NET16(data[i]); 
     155 } 
     156 
     157 if ( roar_req(con, &m, NULL) == -1 ) 
     158  return -1; 
     159 
     160 if ( m.cmd != ROAR_CMD_OK ) 
     161  return -1; 
     162 
     163 for (i = 0; i < m.datalen/2; i++) { 
     164  data[i] = ROAR_NET2HOST16(data[i]); 
     165 } 
     166 
     167 if ( m.datalen < 3*2 ) 
     168  return -1; 
     169 
     170 if ( data[0] != 0 || data[1] != 1 ) 
     171  return -1; 
     172 
     173 info->block_size = data[2]; 
     174 
     175 return 0; 
     176} 
    140177 
    141178#define _ROAR_STREAM_MESSAGE_LEN ((5+1)*4) 
     
    181218  data[i] = ROAR_NET2HOST32(data[i]); 
    182219 
     220 s->id            = m->stream; 
    183221 s->dir           = data[0]; 
    184222 s->pos_rel_id    = data[1]; 
Note: See TracChangeset for help on using the changeset viewer.