Changeset 2212:de532e283c21 in roaraudio
- Timestamp:
- 07/27/09 18:42:23 (15 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
roard/driver_sysclock.c
r2209 r2212 27 27 #ifdef ROAR_HAVE_DRIVER_SYSCLOCK 28 28 int driver_sysclock_open_vio(struct roar_vio_calls * inst, char * device, struct roar_audio_info * info, int fh) { 29 struct driver_sysclock * self = malloc(sizeof(struct driver_sysclock)); 30 31 if ( self == NULL ) 32 return -1; 29 33 30 34 if ( device != NULL ) { … … 32 36 } 33 37 38 memset(self, 0, sizeof(struct driver_sysclock)); 39 memset(inst, 0, sizeof(struct roar_vio_calls)); 40 41 inst->inst = self; 42 inst->close = driver_sysclock_close; 43 inst->write = driver_sysclock_write; 44 45 self->bsp = (info->bits / 8) * info->channels * info->rate; 46 47 if (!self->bsp) { 48 free(self); 49 return -1; 50 } 51 52 switch (info->codec) { 53 case ROAR_CODEC_PCM_S_LE: 54 case ROAR_CODEC_PCM_S_BE: 55 case ROAR_CODEC_PCM_S_PDP: 56 case ROAR_CODEC_PCM_U_LE: 57 case ROAR_CODEC_PCM_U_BE: 58 case ROAR_CODEC_PCM_U_PDP: 59 break; 60 case ROAR_CODEC_ALAW: 61 case ROAR_CODEC_MULAW: 62 // one byte per sample 63 self->bsp *= 8; 64 self->bsp /= info->bits; 65 break; 66 default: 67 free(self); 68 return -1; 69 break; 70 } 71 72 gettimeofday(&(self->lasttime), NULL); 73 74 return 0; 75 } 76 77 int driver_sysclock_close (struct roar_vio_calls * vio) { 78 struct driver_sysclock * self = vio->inst; 79 80 if ( self == NULL ) 81 return -1; 82 83 free(self); 84 85 return 0; 86 } 87 88 ssize_t driver_sysclock_write (struct roar_vio_calls * vio, void *buf, size_t count) { 89 struct driver_sysclock * self = vio->inst; 34 90 return -1; 35 91 } 92 36 93 #endif 37 94
Note: See TracChangeset
for help on using the changeset viewer.