Changeset 1549:835af2c223ac in roaraudio


Ignore:
Timestamp:
04/12/09 22:53:54 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

wort most of the basic driver

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/driver_sndio.c

    r1548 r1549  
    9696 } 
    9797 
     98 self->need_config = 1; 
     99 
    98100 return 0; 
    99101} 
     
    139141} 
    140142 
    141 int     driver_sndio_reopen_device(struct driver_sndio * self); 
    142 ssize_t driver_sndio_write        (struct roar_vio_calls * vio, void *buf, size_t count); 
    143 int     driver_sndio_sync         (struct roar_vio_calls * vio); 
     143int     driver_sndio_reopen_device(struct driver_sndio * self) { 
     144 return -1; 
     145} 
     146 
     147ssize_t driver_sndio_write        (struct roar_vio_calls * vio, void *buf, size_t count) { 
     148 struct driver_sndio * self = vio->inst; 
     149 
     150 if ( self->need_config ) { 
     151  if ( driver_sndio_config_device(vio->inst) == -1 ) { 
     152   return -1; 
     153  } 
     154 } 
     155 
     156 return sio_write(self->handle, buf, count); 
     157} 
     158 
     159int     driver_sndio_sync         (struct roar_vio_calls * vio) { 
     160 return -1; 
     161} 
     162 
     163#define data(x) x: if ( data == NULL ) return -1; 
     164#define no_data(x) x: if ( data != NULL ) return -1; 
    144165 
    145166int     driver_sndio_ctl          (struct roar_vio_calls * vio, int cmd, void * data) { 
     167 struct driver_sndio * self = vio->inst; 
     168 
    146169 switch (cmd) { 
    147   default: return -1; 
     170  case data(ROAR_VIO_CTL_SET_SSTREAMID) 
     171    self->ssid = *(int *)data; 
     172   break; 
     173  case data(ROAR_VIO_CTL_SET_SSTREAM) 
     174    self->stream = data; 
     175   break; 
     176  case data(ROAR_VIO_CTL_GET_AUINFO) 
     177    memcpy(data, &(self->info), sizeof(struct roar_audio_info)); 
     178   break; 
     179  case data(ROAR_VIO_CTL_SET_AUINFO) 
     180    memcpy(&(self->info), data, sizeof(struct roar_audio_info)); 
     181    return driver_sndio_reopen_device(self); 
     182   break; 
     183  default: 
     184    return -1; 
     185   break; 
    148186 } 
    149187 
Note: See TracChangeset for help on using the changeset viewer.