Changeset 1313

Show
Ignore:
Timestamp:
01/13/08 17:22:36 (7 months ago)
Author:
aknudsen
Message:

Patch from Stelios Bounanos: set host error info more consistently in OSS

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • portaudio/branches/v19-devel/src/hostapi/oss/pa_unix_oss.c

    r1310 r1313  
    406406    { 
    407407        sr = 44100; 
    408         if( ioctl( devHandle, SNDCTL_DSP_SPEED, &sr ) < 0 ) 
    409         { 
    410             result = paUnanticipatedHostError; 
    411             goto error; 
    412         } 
     408        ENSURE_( ioctl( devHandle, SNDCTL_DSP_SPEED, &sr ), paUnanticipatedHostError ); 
    413409 
    414410        *defaultSampleRate = sr; 
     
    18721868                           unsigned long frames ) 
    18731869{ 
     1870    PaError result = paNoError; 
    18741871    PaOssStream *stream = (PaOssStream*)s; 
    18751872    int bytesRequested, bytesRead; 
     
    18921889 
    18931890        bytesRequested = framesRequested * PaOssStreamComponent_FrameSize( stream->capture ); 
    1894         bytesRead = read( stream->capture->fd, stream->capture->buffer, bytesRequested ); 
     1891        ENSURE_( (bytesRead = read( stream->capture->fd, stream->capture->buffer, bytesRequested )), 
     1892                 paUnanticipatedHostError ); 
    18951893        if ( bytesRequested != bytesRead ) 
     1894        { 
     1895            PA_DEBUG(( "Requested %d bytes, read %d\n", bytesRequested, bytesRead )); 
    18961896            return paUnanticipatedHostError; 
     1897        } 
    18971898 
    18981899        PaUtil_SetInputFrameCount( &stream->bufferProcessor, stream->capture->hostFrames ); 
     
    19011902        frames -= framesRequested; 
    19021903    } 
    1903     return paNoError; 
     1904 
     1905error: 
     1906    return result; 
    19041907} 
    19051908 
     
    19071910static PaError WriteStream( PaStream *s, const void *buffer, unsigned long frames ) 
    19081911{ 
     1912    PaError result = paNoError; 
    19091913    PaOssStream *stream = (PaOssStream*)s; 
    19101914    int bytesRequested, bytesWritten; 
     
    19321936 
    19331937        bytesRequested = framesConverted * PaOssStreamComponent_FrameSize( stream->playback ); 
    1934         bytesWritten = write( stream->playback->fd, stream->playback->buffer, bytesRequested ); 
     1938        ENSURE_( (bytesWritten = write( stream->playback->fd, stream->playback->buffer, bytesRequested )), 
     1939                 paUnanticipatedHostError ); 
    19351940 
    19361941        if ( bytesRequested != bytesWritten ) 
     1942        { 
     1943            PA_DEBUG(( "Requested %d bytes, wrote %d\n", bytesRequested, bytesWritten )); 
    19371944            return paUnanticipatedHostError; 
    1938     } 
    1939     return paNoError; 
     1945        } 
     1946    } 
     1947 
     1948error: 
     1949    return result; 
    19401950} 
    19411951 
     
    19431953static signed long GetStreamReadAvailable( PaStream* s ) 
    19441954{ 
     1955    PaError result = paNoError; 
    19451956    PaOssStream *stream = (PaOssStream*)s; 
    19461957    audio_buf_info info; 
    19471958 
    1948     if( ioctl( stream->capture->fd, SNDCTL_DSP_GETISPACE, &info ) < 0 ) 
    1949         return paUnanticipatedHostError; 
     1959    ENSURE_( ioctl( stream->capture->fd, SNDCTL_DSP_GETISPACE, &info ), paUnanticipatedHostError ); 
    19501960    return info.fragments * stream->capture->hostFrames; 
     1961 
     1962error: 
     1963    return result; 
    19511964} 
    19521965 
     
    19551968static signed long GetStreamWriteAvailable( PaStream* s ) 
    19561969{ 
     1970    PaError result = paNoError; 
    19571971    PaOssStream *stream = (PaOssStream*)s; 
    19581972    int delay = 0; 
    19591973 
    1960     if( ioctl( stream->playback->fd, SNDCTL_DSP_GETODELAY, &delay ) < 0 ) 
    1961         return paUnanticipatedHostError; 
    1962  
     1974    ENSURE_( ioctl( stream->playback->fd, SNDCTL_DSP_GETODELAY, &delay ), paUnanticipatedHostError ); 
    19631975    return (PaOssStreamComponent_BufferSize( stream->playback ) - delay) / PaOssStreamComponent_FrameSize( stream->playback ); 
    1964 } 
    1965  
     1976 
     1977error: 
     1978    return result; 
     1979} 
     1980