Changeset 5276:0eb24ca6810e in roaraudio for roard/driver_alsa.c


Ignore:
Timestamp:
11/20/11 18:36:49 (12 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

merged VIO's _nonblock() into _ctl() (Closes: #135)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • roard/driver_alsa.c

    r5012 r5276  
    231231 inst->sync     = driver_alsa_sync; 
    232232 inst->ctl      = driver_alsa_ctl; 
    233  inst->nonblock = driver_dummy_nonblock; 
    234233 
    235234 ROAR_DBG("driver_alsa_open_vio(inst=%p, device='%s', info=%p, fh=%i, sstream=%p) = 0", inst, device, info, fh, sstream); 
     
    333332 switch (cmd) { 
    334333  case ROAR_VIO_CTL_GET_DELAY: 
    335    if ( snd_pcm_delay(device->handle, &alsa_delay) < 0 ) 
     334    if ( snd_pcm_delay(device->handle, &alsa_delay) < 0 ) 
     335     return -1; 
     336    else { 
     337     *(uint_least32_t *)data = snd_pcm_frames_to_bytes(device->handle, alsa_delay); 
     338     ROAR_DBG("driver_alsa_ctl(vio=%p, cmd=ROAR_VIO_CTL_GET_DELAY(0x%.8x), data=%p): %i bytes.", vio, cmd, data, (int)(*(uint_least32_t*)data)); 
     339    } 
     340   break; 
     341 
     342  case ROAR_VIO_CTL_SET_SSTREAMID: 
     343    device->ssid = *(int *)data; 
     344    ROAR_DBG("driver_alsa_ctl(vio=%p, cmd=ROAR_VIO_CTL_SET_SSTREAMID(0x%.8x), data=%p): ssid=%i", vio, cmd, data, device->ssid); 
     345   break; 
     346 
     347  case ROAR_VIO_CTL_SET_SSTREAM: 
     348    device->sstream = data; 
     349    ROAR_DBG("driver_alsa_ctl(vio=%p, cmd=ROAR_VIO_CTL_SET_SSTREAM(0x%.8x), data=%p): sstream=%p", vio, cmd, data, device->sstream); 
     350   break; 
     351 
     352  case ROAR_VIO_CTL_GET_AUINFO: 
     353    ROAR_DBG("driver_alsa_ctl(vio=%p, cmd=ROAR_VIO_CTL_GET_AUINFO(0x%.8x), data=%p) = ?", vio, cmd, data); 
     354    memcpy(data, &(device->info), sizeof(struct roar_audio_info)); 
     355   break; 
     356 
     357  case ROAR_VIO_CTL_SET_AUINFO: 
     358    ROAR_DBG("driver_alsa_ctl(vio=%p, cmd=ROAR_VIO_CTL_SET_AUINFO(0x%.8x), data=%p) = ?", vio, cmd, data); 
     359    memcpy(&(device->info), data, sizeof(struct roar_audio_info)); 
     360    return driver_alsa_reopen_device(device); 
     361   break; 
     362 
     363  case ROAR_VIO_CTL_NONBLOCK: 
     364    if ( *(int*)data == ROAR_SOCKET_BLOCK ) 
     365     return 0; 
     366    roar_err_set(ROAR_ERROR_NOTSUP); 
    336367    return -1; 
    337    else { 
    338     *(uint_least32_t *)data = snd_pcm_frames_to_bytes(device->handle, alsa_delay); 
    339     ROAR_DBG("driver_alsa_ctl(vio=%p, cmd=ROAR_VIO_CTL_GET_DELAY(0x%.8x), data=%p): %i bytes.", vio, cmd, data, (int)(*(uint_least32_t*)data)); 
    340    } 
    341    break; 
    342  
    343   case ROAR_VIO_CTL_SET_SSTREAMID: 
    344    device->ssid = *(int *)data; 
    345    ROAR_DBG("driver_alsa_ctl(vio=%p, cmd=ROAR_VIO_CTL_SET_SSTREAMID(0x%.8x), data=%p): ssid=%i", vio, cmd, data, device->ssid); 
    346    break; 
    347  
    348   case ROAR_VIO_CTL_SET_SSTREAM: 
    349    device->sstream = data; 
    350    ROAR_DBG("driver_alsa_ctl(vio=%p, cmd=ROAR_VIO_CTL_SET_SSTREAM(0x%.8x), data=%p): sstream=%p", vio, cmd, data, device->sstream); 
    351    break; 
    352  
    353   case ROAR_VIO_CTL_GET_AUINFO: 
    354    ROAR_DBG("driver_alsa_ctl(vio=%p, cmd=ROAR_VIO_CTL_GET_AUINFO(0x%.8x), data=%p) = ?", vio, cmd, data); 
    355    memcpy(data, &(device->info), sizeof(struct roar_audio_info)); 
    356    break; 
    357  
    358   case ROAR_VIO_CTL_SET_AUINFO: 
    359    ROAR_DBG("driver_alsa_ctl(vio=%p, cmd=ROAR_VIO_CTL_SET_AUINFO(0x%.8x), data=%p) = ?", vio, cmd, data); 
    360    memcpy(&(device->info), data, sizeof(struct roar_audio_info)); 
    361    return driver_alsa_reopen_device(device); 
     368   break; 
    362369 
    363370  default: 
Note: See TracChangeset for help on using the changeset viewer.