Changeset 1549:835af2c223ac in roaraudio
- Timestamp:
- 04/12/09 22:53:54 (15 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
roard/driver_sndio.c
r1548 r1549 96 96 } 97 97 98 self->need_config = 1; 99 98 100 return 0; 99 101 } … … 139 141 } 140 142 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); 143 int driver_sndio_reopen_device(struct driver_sndio * self) { 144 return -1; 145 } 146 147 ssize_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 159 int 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; 144 165 145 166 int driver_sndio_ctl (struct roar_vio_calls * vio, int cmd, void * data) { 167 struct driver_sndio * self = vio->inst; 168 146 169 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; 148 186 } 149 187
Note: See TracChangeset
for help on using the changeset viewer.