Changeset 346643c in mainline for uspace/lib/drv/generic/remote_audio_pcm.c
- Timestamp:
- 2012-07-11T12:05:30Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 039337e8
- Parents:
- 94694a4
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/drv/generic/remote_audio_pcm.c
r94694a4 r346643c 118 118 } 119 119 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) 120 int audio_pcm_start_playback(async_exch_t *exch, unsigned id, unsigned parts, 121 unsigned channels, unsigned sample_rate, pcm_sample_format_t format) 123 122 { 124 123 if (!exch) 125 124 return EINVAL; 125 if (parts > UINT8_MAX || channels > UINT8_MAX) 126 return EINVAL; 127 assert((format & UINT16_MAX) == format); 126 128 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); 129 130 return async_req_4_0(exch, DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE), 130 131 IPC_M_AUDIO_PCM_START_PLAYBACK, id, sample_rate, packed); … … 139 140 } 140 141 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) 142 int audio_pcm_start_record(async_exch_t *exch, unsigned id, unsigned parts, 143 unsigned channels, unsigned sample_rate, pcm_sample_format_t format) 144 144 { 145 145 if (!exch) 146 146 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); 150 152 return async_req_4_0(exch, DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE), 151 153 IPC_M_AUDIO_PCM_START_RECORD, id, sample_rate, packed); … … 309 311 const unsigned id = DEV_IPC_GET_ARG1(*call); 310 312 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; 315 316 316 317 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) 318 319 : ENOTSUP; 319 320 async_answer_0(callid, ret); … … 338 339 const unsigned id = DEV_IPC_GET_ARG1(*call); 339 340 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; 344 344 345 345 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) 347 347 : ENOTSUP; 348 348 async_answer_0(callid, ret);
Note:
See TracChangeset
for help on using the changeset viewer.