Changeset 2212:de532e283c21 in roaraudio


Ignore:
Timestamp:
07/27/09 18:42:23 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

wrote open and close, need to write write()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/driver_sysclock.c

    r2209 r2212  
    2727#ifdef ROAR_HAVE_DRIVER_SYSCLOCK 
    2828int 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; 
    2933 
    3034 if ( device != NULL ) { 
     
    3236 } 
    3337 
     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 
     77int     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 
     88ssize_t driver_sysclock_write   (struct roar_vio_calls * vio, void *buf, size_t count) { 
     89 struct driver_sysclock * self = vio->inst; 
    3490 return -1; 
    3591} 
     92 
    3693#endif 
    3794 
Note: See TracChangeset for help on using the changeset viewer.