Changeset 62310d7 in mainline


Ignore:
Timestamp:
2013-08-19T12:28:21Z (11 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d337f74
Parents:
b7dd149
Message:

libdrv, audio_pcm: Name immediate stop explicitly

Add fragment stop functions.

Location:
uspace
Files:
3 edited

Legend:

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

    rb7dd149 r62310d7  
    469469 * @return Error code.
    470470 */
     471int audio_pcm_stop_playback_immediate(audio_pcm_sess_t *sess)
     472{
     473        async_exch_t *exch = async_exchange_begin(sess);
     474        const int ret = async_req_2_0(exch,
     475            DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE),
     476            IPC_M_AUDIO_PCM_STOP_PLAYBACK, true);
     477        async_exchange_end(exch);
     478        return ret;
     479}
     480
     481/**
     482 * Stops playback at the end of the current fragment.
     483 *
     484 * @param sess Audio device session.
     485 *
     486 * @return Error code.
     487 */
    471488int audio_pcm_stop_playback(audio_pcm_sess_t *sess)
    472489{
     
    474491        const int ret = async_req_2_0(exch,
    475492            DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE),
    476             IPC_M_AUDIO_PCM_STOP_PLAYBACK, true);
     493            IPC_M_AUDIO_PCM_STOP_PLAYBACK, false);
    477494        async_exchange_end(exch);
    478495        return ret;
     
    550567 * @return Error code.
    551568 */
     569int audio_pcm_stop_capture_immediate(audio_pcm_sess_t *sess)
     570{
     571        async_exch_t *exch = async_exchange_begin(sess);
     572        const int ret = async_req_2_0(exch,
     573            DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE),
     574            IPC_M_AUDIO_PCM_STOP_CAPTURE, true);
     575        async_exchange_end(exch);
     576        return ret;
     577}
     578
     579/**
     580 * Stops capture at the end of the current fragment.
     581 *
     582 * @param sess Audio device session.
     583 *
     584 * @return Error code.
     585 */
    552586int audio_pcm_stop_capture(audio_pcm_sess_t *sess)
    553587{
     
    555589        const int ret = async_req_2_0(exch,
    556590            DEV_IFACE_ID(AUDIO_PCM_BUFFER_IFACE),
    557             IPC_M_AUDIO_PCM_STOP_CAPTURE, true);
     591            IPC_M_AUDIO_PCM_STOP_CAPTURE, false);
    558592        async_exchange_end(exch);
    559593        return ret;
  • uspace/lib/drv/include/audio_pcm_iface.h

    rb7dd149 r62310d7  
    9898int audio_pcm_start_playback(audio_pcm_sess_t *,
    9999    unsigned, unsigned, pcm_sample_format_t);
     100int audio_pcm_stop_playback_immediate(audio_pcm_sess_t *);
    100101int audio_pcm_stop_playback(audio_pcm_sess_t *);
    101102
     
    106107int audio_pcm_start_capture(audio_pcm_sess_t *,
    107108    unsigned, unsigned, pcm_sample_format_t);
     109int audio_pcm_stop_capture_immediate(audio_pcm_sess_t *);
    108110int audio_pcm_stop_capture(audio_pcm_sess_t *);
    109111
  • uspace/srv/audio/hound/audio_device.c

    rb7dd149 r62310d7  
    191191                log_verbose("Removed last connection on device sink '%s'",
    192192                    sink->name);
    193                 int ret = audio_pcm_stop_playback(dev->sess);
     193                int ret = audio_pcm_stop_playback_immediate(dev->sess);
    194194                if (ret != EOK) {
    195195                        log_error("Failed to stop playback: %s",
     
    246246        if (list_count(&source->connections) == 0) { /* Disconnected */
    247247                assert(!new);
    248                 int ret = audio_pcm_stop_capture(dev->sess);
     248                int ret = audio_pcm_stop_capture_immediate(dev->sess);
    249249                if (ret != EOK) {
    250250                        log_error("Failed to start recording: %s",
Note: See TracChangeset for help on using the changeset viewer.