Ignore:
Timestamp:
2012-07-11T12:05:30Z (12 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
039337e8
Parents:
94694a4
Message:

audio: Use enum for sample format.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/drv/generic/remote_audio_pcm.c

    r94694a4 r346643c  
    118118}
    119119
    120 int audio_pcm_start_playback(async_exch_t *exch, unsigned id,
    121     unsigned parts, unsigned sample_rate, uint16_t sample_size,
    122     uint8_t channels, bool sign)
     120int audio_pcm_start_playback(async_exch_t *exch, unsigned id, unsigned parts,
     121    unsigned channels, unsigned sample_rate, pcm_sample_format_t format)
    123122{
    124123        if (!exch)
    125124                return EINVAL;
     125        if (parts > UINT8_MAX || channels > UINT8_MAX)
     126                return EINVAL;
     127        assert((format & UINT16_MAX) == format);
    126128        const sysarg_t packed =
    127             (sample_size << 16) | (channels << 8) |
    128             ((parts & 0x7f) << 1) | (sign ? 1 : 0);
     129            (parts << 24) | (channels << 16) | (format & UINT16_MAX);
    129130        return async_req_4_0(exch, DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE),
    130131            IPC_M_AUDIO_PCM_START_PLAYBACK, id, sample_rate, packed);
     
    139140}
    140141
    141 int audio_pcm_start_record(async_exch_t *exch, unsigned id,
    142     unsigned parts, unsigned sample_rate, uint16_t sample_size,
    143     uint8_t channels, bool sign)
     142int audio_pcm_start_record(async_exch_t *exch, unsigned id, unsigned parts,
     143    unsigned channels, unsigned sample_rate, pcm_sample_format_t format)
    144144{
    145145        if (!exch)
    146146                return EINVAL;
    147         sysarg_t packed =
    148             (sample_size << 16) | (channels << 8) |
    149             ((parts & 0x7f) << 1) | (sign ? 1 : 0);
     147        if (parts > UINT8_MAX || channels > UINT8_MAX)
     148                return EINVAL;
     149        assert((format & UINT16_MAX) == format);
     150        const sysarg_t packed =
     151            (parts << 24) | (channels << 16) | (format & UINT16_MAX);
    150152        return async_req_4_0(exch, DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE),
    151153            IPC_M_AUDIO_PCM_START_RECORD, id, sample_rate, packed);
     
    309311        const unsigned id = DEV_IPC_GET_ARG1(*call);
    310312        const unsigned rate = DEV_IPC_GET_ARG2(*call);
    311         const unsigned size = DEV_IPC_GET_ARG3(*call) >> 16;
    312         const unsigned channels = (DEV_IPC_GET_ARG3(*call) >> 8) & UINT8_MAX;
    313         const unsigned parts = (DEV_IPC_GET_ARG3(*call) >> 1) & 0x7f;
    314         const bool sign = (bool)(DEV_IPC_GET_ARG3(*call) & 1);
     313        const unsigned parts = (DEV_IPC_GET_ARG3(*call) >> 24) & UINT8_MAX;
     314        const unsigned channels = (DEV_IPC_GET_ARG3(*call) >> 16) & UINT8_MAX;
     315        const pcm_sample_format_t format =DEV_IPC_GET_ARG3(*call) & UINT16_MAX;
    315316
    316317        const int ret = pcm_iface->start_playback
    317             ? pcm_iface->start_playback(fun, id, parts, rate, size, channels, sign)
     318            ? pcm_iface->start_playback(fun, id, parts, channels, rate, format)
    318319            : ENOTSUP;
    319320        async_answer_0(callid, ret);
     
    338339        const unsigned id = DEV_IPC_GET_ARG1(*call);
    339340        const unsigned rate = DEV_IPC_GET_ARG2(*call);
    340         const unsigned size = DEV_IPC_GET_ARG3(*call) >> 16;
    341         const unsigned channels = (DEV_IPC_GET_ARG3(*call) >> 8) & UINT8_MAX;
    342         const unsigned parts = (DEV_IPC_GET_ARG3(*call) >> 1) & 0x7f;
    343         const bool sign = (bool)(DEV_IPC_GET_ARG3(*call) & 1);
     341        const unsigned parts = (DEV_IPC_GET_ARG3(*call) >> 24) & UINT8_MAX;
     342        const unsigned channels = (DEV_IPC_GET_ARG3(*call) >> 16) & UINT8_MAX;
     343        const pcm_sample_format_t format =DEV_IPC_GET_ARG3(*call) & UINT16_MAX;
    344344
    345345        const int ret = pcm_iface->start_record
    346             ? pcm_iface->start_record(fun, id, parts, rate, size, channels, sign)
     346            ? pcm_iface->start_record(fun, id, parts, channels, rate, format)
    347347            : ENOTSUP;
    348348        async_answer_0(callid, ret);
Note: See TracChangeset for help on using the changeset viewer.