Changeset 018ab50 in mainline for uspace/app


Ignore:
Timestamp:
2012-08-20T11:28:46Z (13 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
fb6c98f
Parents:
20840922
Message:

audio: Move event callback into separate API calls.

Location:
uspace/app
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/drec/drec.c

    r20840922 r018ab50  
    173173
    174174        ret = audio_pcm_get_buffer(rec.device, &rec.buffer.base,
    175             &rec.buffer.size, device_event_callback, &rec);
     175            &rec.buffer.size);
    176176        if (ret != EOK) {
    177177                printf("Failed to get PCM buffer: %s.\n", str_error(ret));
    178178                goto close_session;
     179        }
     180        ret = audio_pcm_register_event_callback(rec.device,
     181            device_event_callback, &rec);
     182        if (ret != EOK) {
     183                printf("Failed to register for events: %s.\n", str_error(ret));
     184                goto cleanup;
    179185        }
    180186        printf("Buffer: %p %zu.\n", rec.buffer.base, rec.buffer.size);
     
    209215        munmap(rec.buffer.base, rec.buffer.size);
    210216        audio_pcm_release_buffer(rec.device);
     217        audio_pcm_unregister_event_callback(rec.device);
    211218close_session:
    212219        async_hangup(session);
  • uspace/app/wavplay/dplay.c

    r20840922 r018ab50  
    123123
    124124
    125 static void play(playback_t *pb, unsigned channels,  unsigned sampling_rate,
     125static void play(playback_t *pb, unsigned channels, unsigned sampling_rate,
    126126    pcm_sample_format_t format)
    127127{
     
    129129        assert(pb->device);
    130130        pb->buffer.position = pb->buffer.base;
     131        printf("Registering event callback\n");
     132        int ret = audio_pcm_register_event_callback(pb->device,
     133            device_event_callback, pb);
     134        if (ret != EOK) {
     135                printf("Failed to register event callback.\n");
     136                return;
     137        }
    131138        printf("Playing: %dHz, %s, %d channel(s).\n",
    132139            sampling_rate, pcm_sample_format_str(format), channels);
     
    139146        const unsigned frames = pb->buffer.size /
    140147            (BUFFER_PARTS * channels * pcm_sample_format_size(format));
    141         int ret = audio_pcm_start_playback(pb->device,
    142             frames, channels, sampling_rate, format);
     148        ret = audio_pcm_start_playback(pb->device, frames, channels,
     149            sampling_rate, format);
    143150        if (ret != EOK) {
    144151                fibril_mutex_unlock(&pb->mutex);
     
    152159        fibril_mutex_unlock(&pb->mutex);
    153160        printf("\n");
     161        audio_pcm_unregister_event_callback(pb->device);
    154162}
    155163
     
    177185        playback_initialize(&pb, session);
    178186
    179         ret = audio_pcm_get_buffer(pb.device, &pb.buffer.base,
    180             &pb.buffer.size, device_event_callback, &pb);
     187        ret = audio_pcm_get_buffer(pb.device, &pb.buffer.base, &pb.buffer.size);
    181188        if (ret != EOK) {
    182189                printf("Failed to get PCM buffer: %s.\n", str_error(ret));
Note: See TracChangeset for help on using the changeset viewer.