Ignore:
Timestamp:
2012-07-15T15:13:34Z (12 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
2cc5c835
Parents:
44d1311
Message:

Drop id parameter from audio_pcm interface.

Independent buffer should have separate nodes.

File:
1 edited

Legend:

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

    r44d1311 rb497018  
    8383
    8484int audio_pcm_get_buffer(async_exch_t *exch, void **buffer, size_t *size,
    85     unsigned *id, async_client_conn_t event_rec, void* arg)
    86 {
    87         if (!exch || !buffer || !size || !id)
    88                 return EINVAL;
    89 
    90         sysarg_t buffer_size = *size, buffer_id = 0;
    91         const int ret = async_req_2_2(exch,
     85    async_client_conn_t event_rec, void* arg)
     86{
     87        if (!exch || !buffer || !size)
     88                return EINVAL;
     89
     90        sysarg_t buffer_size = *size;
     91        const int ret = async_req_2_1(exch,
    9292            DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE), IPC_M_AUDIO_PCM_GET_BUFFER,
    93             (sysarg_t)buffer_size, &buffer_size, &buffer_id);
     93            (sysarg_t)buffer_size, &buffer_size);
    9494        if (ret == EOK) {
    9595                void *dst = NULL;
     
    105105                *buffer = dst;
    106106                *size = buffer_size;
    107                 *id = buffer_id;
    108107        }
    109108        return ret;
    110109}
    111110
    112 int audio_pcm_release_buffer(async_exch_t *exch, unsigned id)
     111int audio_pcm_release_buffer(async_exch_t *exch)
    113112{
    114113        if (!exch)
    115114                return EINVAL;
    116         return async_req_2_0(exch, DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE),
    117             IPC_M_AUDIO_PCM_RELEASE_BUFFER, id);
    118 }
    119 
    120 int audio_pcm_start_playback(async_exch_t *exch, unsigned id, unsigned parts,
     115        return async_req_1_0(exch, DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE),
     116            IPC_M_AUDIO_PCM_RELEASE_BUFFER);
     117}
     118
     119int audio_pcm_start_playback(async_exch_t *exch, unsigned parts,
    121120    unsigned channels, unsigned sample_rate, pcm_sample_format_t format)
    122121{
     
    128127        const sysarg_t packed =
    129128            (parts << 24) | (channels << 16) | (format & UINT16_MAX);
    130         return async_req_4_0(exch, DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE),
    131             IPC_M_AUDIO_PCM_START_PLAYBACK, id, sample_rate, packed);
    132 }
    133 
    134 int audio_pcm_stop_playback(async_exch_t *exch, unsigned id)
     129        return async_req_3_0(exch, DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE),
     130            IPC_M_AUDIO_PCM_START_PLAYBACK, sample_rate, packed);
     131}
     132
     133int audio_pcm_stop_playback(async_exch_t *exch)
    135134{
    136135        if (!exch)
    137136                return EINVAL;
    138         return async_req_2_0(exch, DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE),
    139             IPC_M_AUDIO_PCM_STOP_PLAYBACK, id);
    140 }
    141 
    142 int audio_pcm_start_record(async_exch_t *exch, unsigned id, unsigned parts,
     137        return async_req_1_0(exch, DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE),
     138            IPC_M_AUDIO_PCM_STOP_PLAYBACK);
     139}
     140
     141int audio_pcm_start_record(async_exch_t *exch, unsigned parts,
    143142    unsigned channels, unsigned sample_rate, pcm_sample_format_t format)
    144143{
     
    150149        const sysarg_t packed =
    151150            (parts << 24) | (channels << 16) | (format & UINT16_MAX);
    152         return async_req_4_0(exch, DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE),
    153             IPC_M_AUDIO_PCM_START_RECORD, id, sample_rate, packed);
    154 }
    155 
    156 int audio_pcm_stop_record(async_exch_t *exch, unsigned id)
     151        return async_req_3_0(exch, DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE),
     152            IPC_M_AUDIO_PCM_START_RECORD, sample_rate, packed);
     153}
     154
     155int audio_pcm_stop_record(async_exch_t *exch)
    157156{
    158157        if (!exch)
    159158                return EINVAL;
    160         return async_req_2_0(exch, DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE),
    161             IPC_M_AUDIO_PCM_STOP_RECORD, id);
     159        return async_req_1_0(exch, DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE),
     160            IPC_M_AUDIO_PCM_STOP_RECORD);
    162161}
    163162
     
    233232        void *buffer = NULL;
    234233        size_t size = DEV_IPC_GET_ARG1(*call);
    235         unsigned id = 0;
    236         int ret = pcm_iface->get_buffer(fun, &buffer, &size, &id);
    237         async_answer_2(callid, ret, size, id);
     234        int ret = pcm_iface->get_buffer(fun, &buffer, &size);
     235        async_answer_1(callid, ret, size);
    238236        if (ret != EOK || size == 0)
    239237                return;
     
    246244        if (!async_share_in_receive(&share_id, &share_size)) {
    247245                ddf_msg(LVL_DEBUG, "Failed to share pcm buffer.");
    248                 pcm_iface->release_buffer(fun, id);
     246                pcm_iface->release_buffer(fun);
    249247                async_answer_0(share_id, EPARTY);
    250248                return;
     
    254252        if (share_size != size) {
    255253                ddf_msg(LVL_DEBUG, "Incorrect pcm buffer size requested.");
    256                 pcm_iface->release_buffer(fun, id);
     254                pcm_iface->release_buffer(fun);
    257255                async_answer_0(share_id, ELIMIT);
    258256                return;
     
    264262        if (ret != EOK) {
    265263                ddf_msg(LVL_DEBUG, "Failed to share buffer.");
    266                 pcm_iface->release_buffer(fun, id);
     264                pcm_iface->release_buffer(fun);
    267265                return;
    268266        }
     
    277275                if (sess == NULL) {
    278276                        ddf_msg(LVL_DEBUG, "Failed to create event callback");
    279                         pcm_iface->release_buffer(fun, id);
     277                        pcm_iface->release_buffer(fun);
    280278                        async_answer_0(callid, EAGAIN);
    281279                        return;
    282280                }
    283                 ret = pcm_iface->set_event_session(fun, id, sess);
     281                ret = pcm_iface->set_event_session(fun, sess);
    284282                if (ret != EOK) {
    285283                        ddf_msg(LVL_DEBUG, "Failed to set event callback.");
    286                         pcm_iface->release_buffer(fun, id);
     284                        pcm_iface->release_buffer(fun);
    287285                        async_answer_0(callid, ret);
    288286                        return;
     
    298296        const audio_pcm_iface_t *pcm_iface = iface;
    299297
    300         const unsigned id = DEV_IPC_GET_ARG1(*call);
    301298        const int ret = pcm_iface->release_buffer ?
    302             pcm_iface->release_buffer(fun, id) : ENOTSUP;
     299            pcm_iface->release_buffer(fun) : ENOTSUP;
    303300        async_answer_0(callid, ret);
    304301}
     
    309306        const audio_pcm_iface_t *pcm_iface = iface;
    310307
    311         const unsigned id = DEV_IPC_GET_ARG1(*call);
    312         const unsigned rate = DEV_IPC_GET_ARG2(*call);
    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;
     308        const unsigned rate = DEV_IPC_GET_ARG1(*call);
     309        const unsigned parts = (DEV_IPC_GET_ARG2(*call) >> 24) & UINT8_MAX;
     310        const unsigned channels = (DEV_IPC_GET_ARG2(*call) >> 16) & UINT8_MAX;
     311        const pcm_sample_format_t format = DEV_IPC_GET_ARG2(*call) & UINT16_MAX;
    316312
    317313        const int ret = pcm_iface->start_playback
    318             ? pcm_iface->start_playback(fun, id, parts, channels, rate, format)
     314            ? pcm_iface->start_playback(fun, parts, channels, rate, format)
    319315            : ENOTSUP;
    320316        async_answer_0(callid, ret);
     
    326322        const audio_pcm_iface_t *pcm_iface = iface;
    327323
    328         const unsigned id = DEV_IPC_GET_ARG1(*call);
    329324        const int ret = pcm_iface->stop_playback ?
    330             pcm_iface->stop_playback(fun, id) : ENOTSUP;
     325            pcm_iface->stop_playback(fun) : ENOTSUP;
    331326        async_answer_0(callid, ret);
    332327}
     
    337332        const audio_pcm_iface_t *pcm_iface = iface;
    338333
    339         const unsigned id = DEV_IPC_GET_ARG1(*call);
    340         const unsigned rate = DEV_IPC_GET_ARG2(*call);
    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;
     334        const unsigned rate = DEV_IPC_GET_ARG1(*call);
     335        const unsigned parts = (DEV_IPC_GET_ARG2(*call) >> 24) & UINT8_MAX;
     336        const unsigned channels = (DEV_IPC_GET_ARG2(*call) >> 16) & UINT8_MAX;
     337        const pcm_sample_format_t format = DEV_IPC_GET_ARG2(*call) & UINT16_MAX;
    344338
    345339        const int ret = pcm_iface->start_record
    346             ? pcm_iface->start_record(fun, id, parts, channels, rate, format)
     340            ? pcm_iface->start_record(fun, parts, channels, rate, format)
    347341            : ENOTSUP;
    348342        async_answer_0(callid, ret);
     
    354348        const audio_pcm_iface_t *pcm_iface = iface;
    355349
    356         const unsigned id = DEV_IPC_GET_ARG1(*call);
    357350        const int ret = pcm_iface->stop_record ?
    358             pcm_iface->stop_record(fun, id) : ENOTSUP;
     351            pcm_iface->stop_record(fun) : ENOTSUP;
    359352        async_answer_0(callid, ret);
    360353}
Note: See TracChangeset for help on using the changeset viewer.