Changeset 2275:1a4c460c2aba in roaraudio


Ignore:
Timestamp:
08/04/09 13:51:31 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

converted Raw source to the new interface and use VIO for operation, also use value of codec

Location:
roard
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • roard/include/sources.h

    r2273 r2275  
    5757                     char * options, int primary); 
    5858 
    59 int sources_add_raw  (char * driver, char * device, char * container, char * options, int primary); 
     59int sources_add_raw  (int stream   , char * device, int fh); 
    6060int sources_add_wav  (char * driver, char * device, char * container, char * options, int primary); 
    6161int sources_add_cf   (char * driver, char * device, char * container, char * options, int primary); 
  • roard/sources.c

    r2274 r2275  
    2626 
    2727struct roar_source g_source[] = { 
     28 {"raw",  "Raw source",                  "/some/file",     SRC_FLAG_FHSEC, ROAR_SUBSYS_WAVEFORM, NULL,  sources_add_raw}, 
    2829#ifdef ROAR_HAVE_IO_POSIX 
    29  {"raw",  "Old raw source",              "/some/file",     SRC_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, sources_add_raw,  NULL}, 
    30  {"wav",  "Old RIFF/WAVE source",        "/some/file.wav", SRC_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, sources_add_wav,  NULL}, 
     30 {"wav",  "Old RIFF/WAVE source",        "/some/file.wav", SRC_FLAG_NONE,  ROAR_SUBSYS_WAVEFORM, sources_add_wav,  NULL}, 
    3131#endif 
    32  {"cf",   "Old CF source",               "/some/file.ext", SRC_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, sources_add_cf,   NULL}, 
    33  {"roar", "Old simple RoarAudio source", "some.host",      SRC_FLAG_NONE, ROAR_SUBSYS_WAVEFORM, sources_add_roar, NULL}, 
     32 {"cf",   "Old CF source",               "/some/file.ext", SRC_FLAG_NONE,  ROAR_SUBSYS_WAVEFORM, sources_add_cf,   NULL}, 
     33 {"roar", "Old simple RoarAudio source", "some.host",      SRC_FLAG_NONE,  ROAR_SUBSYS_WAVEFORM, sources_add_roar, NULL}, 
    3434 {NULL, NULL, NULL, SRC_FLAG_NONE, 0, NULL, NULL} // EOL 
    3535}; 
     
    129129 memcpy(&(s->info), g_sa, sizeof(struct roar_audio_info)); 
    130130 
     131 codec = s->info.codec; 
     132 
    131133 if ( streams_set_dir(stream, ROAR_DIR_PLAY, 1) == -1 ) { 
    132134  streams_delete(stream); 
     
    193195 client_stream_add(g_source_client, stream); 
    194196 
     197 if ( codec == ROAR_CODEC_ALAW || codec == ROAR_CODEC_MULAW ) 
     198  s->info.bits = 8; // needed to open OSS driver, will be overriden by codecfilter 
     199 
     200 s->info.codec = codec; 
     201 ROAR_STREAM_SERVER(s)->codec_orgi = codec; 
     202 
    195203 if ( source->new_open(stream, device, fh) == -1 ) { 
    196204  streams_delete(stream); 
     
    213221} 
    214222 
    215 #ifdef ROAR_HAVE_IO_POSIX 
    216 int sources_add_raw (char * driver, char * device, char * container, char * options, int primary) { 
    217  int stream; 
    218  int fh; 
    219  struct roar_stream * s; 
    220  
    221  ROAR_WARN("sources_add_raw(*): The raw source is obsolete, use source 'cf' (default)!"); 
    222  
    223  if ( (fh = open(device, O_RDONLY, 0644)) == -1 ) { 
    224   return -1; 
    225  } 
    226  
    227  if ( (stream = streams_new()) == -1 ) { 
    228   close(fh); 
    229   return -1; 
    230  } 
    231  
    232  streams_get(stream, (struct roar_stream_server **)&s); 
    233  
    234  memcpy(&(s->info), g_sa, sizeof(struct roar_audio_info)); 
    235  
    236  if ( streams_set_dir(stream, ROAR_DIR_PLAY, 1) == -1 ) { 
    237   streams_delete(stream); 
    238   close(fh); 
    239   return -1; 
    240  } 
    241  
    242  s->pos_rel_id = -1; 
    243  
    244  streams_set_fh(stream, fh); 
    245  
    246  streams_set_flag(stream, ROAR_FLAG_SOURCE); 
    247  client_stream_add(g_source_client, stream); 
    248  
    249  return 0; 
    250 } 
    251 #endif 
     223int sources_add_raw  (int stream   , char * device, int fh) { 
     224 struct roar_stream_server * ss; 
     225 
     226 if ( fh > -1 ) 
     227  return streams_set_fh(stream, fh); 
     228 
     229 streams_get(stream, &ss); 
     230 
     231 if ( roar_vio_open_file(&(ss->vio), device, O_RDONLY, 0644) == -1 ) 
     232  return -1; 
     233 
     234 return streams_set_fh(stream, -2); 
     235} 
    252236 
    253237#ifdef ROAR_HAVE_IO_POSIX 
Note: See TracChangeset for help on using the changeset viewer.