Changeset 819:dbc032ac4849 in roaraudio for libroaryiff


Ignore:
Timestamp:
09/18/08 20:13:11 (16 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

use libroar's API

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroaryiff/audiocd.c

    r806 r819  
    2626 
    2727struct { 
    28  int fh; 
    29  int stream; 
    30  char * device; 
    31 } _g_roaryiff_cdrom = {-1, -1, NULL}; 
     28 int is_open; 
     29 int is_playing; 
     30 struct roar_cdrom cdrom[1]; 
     31} _g_roaryiff_cdrom = {0, 0, {}}; 
    3232 
    3333int YEjectAudioCD(YConnection *con) { 
     
    3838int YPlayAudioCDTrack(YConnection *con, int track_number) { 
    3939 struct roar_connection rcon; 
    40  int flags; 
    4140 
    4241 if ( con == NULL ) 
     
    4544 rcon.fh = con->fd; 
    4645 
    47  
    48  if ( _g_roaryiff_cdrom.fh == -1 ) { 
    49   // ok, we need to open the cdrom device 
    50   if ( _g_roaryiff_cdrom.device == NULL ) { 
    51    _g_roaryiff_cdrom.device = roar_cdromdevice(); 
    52    if ( _g_roaryiff_cdrom.device == NULL ) 
    53     return -1; 
    54   } 
    55   if ( (_g_roaryiff_cdrom.fh = open(_g_roaryiff_cdrom.device, O_RDONLY, 0644)) == -1 ) 
     46 if ( ! _g_roaryiff_cdrom.is_open ) { 
     47  if ( roar_cdrom_open(&rcon, _g_roaryiff_cdrom.cdrom, NULL) == -1 ) 
    5648   return -1; 
    57  
    58   if ( (flags = fcntl(_g_roaryiff_cdrom.fh, F_GETFL, 0)) == -1 ) { 
    59    close(_g_roaryiff_cdrom.fh); 
    60    _g_roaryiff_cdrom.fh = -1; 
    61    return -1; 
    62   } 
    63  
    64   flags |= FD_CLOEXEC; 
    65  
    66   if ( fcntl(_g_roaryiff_cdrom.fh, F_SETFL, flags) == -1 ) { 
    67    close(_g_roaryiff_cdrom.fh); 
    68    _g_roaryiff_cdrom.fh = -1; 
    69    return -1; 
    70   } 
    7149 } 
    7250 
    73  return -1; 
     51 return roar_cdrom_play(_g_roaryiff_cdrom.cdrom, track_number); 
    7452} 
    7553 
     
    8260 rcon.fh = con->fd; 
    8361 
    84  if ( _g_roaryiff_cdrom.fh != -1 ) { 
    85   close(_g_roaryiff_cdrom.fh); 
     62 if ( _g_roaryiff_cdrom.is_playing ) { 
     63  roar_cdrom_stop(_g_roaryiff_cdrom.cdrom); 
     64  _g_roaryiff_cdrom.is_playing = 0; 
    8665 } 
    8766 
    88  if ( _g_roaryiff_cdrom.stream != -1 ) { 
    89   roar_kick(&rcon, ROAR_OT_STREAM, _g_roaryiff_cdrom.stream); 
     67 if ( _g_roaryiff_cdrom.is_open ) { 
     68  roar_cdrom_close(_g_roaryiff_cdrom.cdrom); 
     69  _g_roaryiff_cdrom.is_open = 0; 
    9070 } 
    9171 
Note: See TracChangeset for help on using the changeset viewer.