Changeset 1385

Show
Ignore:
Timestamp:
06/05/08 17:13:54 (3 months ago)
Author:
aknudsen
Message:

OSS: clear trigger direction bits at correct time

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • portaudio/trunk/src/hostapi/oss/pa_unix_oss.c

    r1380 r1385  
    783783} 
    784784 
     785/** Open input and output devices. 
     786 * 
     787 * @param idev: Returned input device file descriptor. 
     788 * @param odev: Returned output device file descriptor. 
     789 */ 
    785790static PaError OpenDevices( const char *idevName, const char *odevName, int *idev, int *odev ) 
    786791{ 
    787792    PaError result = paNoError; 
    788793    int flags = O_NONBLOCK, duplex = 0; 
    789     int enableBits = 0; 
    790794    *idev = *odev = -1; 
    791795 
     
    807811        ENSURE_( *idev = open( idevName, flags ), paDeviceUnavailable ); 
    808812        PA_ENSURE( ModifyBlocking( *idev, 1 ) ); /* Blocking */ 
    809  
    810         /* Initially disable */ 
    811         enableBits = ~PCM_ENABLE_INPUT; 
    812         ENSURE_( ioctl( *idev, SNDCTL_DSP_SETTRIGGER, &enableBits ), paUnanticipatedHostError ); 
    813813    } 
    814814    if( odevName ) 
     
    818818            ENSURE_( *odev = open( odevName, flags ), paDeviceUnavailable ); 
    819819            PA_ENSURE( ModifyBlocking( *odev, 1 ) ); /* Blocking */ 
    820  
    821             /* Initially disable */ 
    822             enableBits = ~PCM_ENABLE_OUTPUT; 
    823             ENSURE_( ioctl( *odev, SNDCTL_DSP_SETTRIGGER, &enableBits ), paUnanticipatedHostError ); 
    824820        } 
    825821        else 
     
    974970} 
    975971 
     972/** Configure stream component device parameters. 
     973 */ 
    976974static PaError PaOssStreamComponent_Configure( PaOssStreamComponent *component, double sampleRate, unsigned long 
    977975        framesPerBuffer, StreamMode streamMode, PaOssStreamComponent *master ) 
     
    14351433        return result; 
    14361434 
     1435    /* The OSS reference instructs us to clear direction bits before setting them.*/ 
     1436    if( stream->playback ) 
     1437        ENSURE_( ioctl( stream->playback->fd, SNDCTL_DSP_SETTRIGGER, &enableBits ), paUnanticipatedHostError ); 
     1438    if( stream->capture ) 
     1439        ENSURE_( ioctl( stream->capture->fd, SNDCTL_DSP_SETTRIGGER, &enableBits ), paUnanticipatedHostError ); 
     1440 
    14371441    if( stream->playback ) 
    14381442    {