Changeset ea6c838 in mainline for uspace/srv/audio


Ignore:
Timestamp:
2012-07-17T08:26:49Z (13 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
e6bba8f
Parents:
950110ee
Message:

Create libpcm.

Move pcm related functions and definitions there.
Make other stuff use this library.
Rename most of it on the way.

Location:
uspace/srv/audio/hound
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/audio/hound/Makefile

    r950110ee rea6c838  
    3333        -DNAME="\"hound\"" \
    3434        -I$(LIBDRV_PREFIX)/include \
    35         -I$(LIBHOUND_PREFIX)/include
     35        -I$(LIBHOUND_PREFIX)/include \
     36        -I$(LIBPCM_PREFIX)/include
    3637
    3738LIBS = \
    3839        $(LIBDRV_PREFIX)/libdrv.a \
    39         $(LIBHOUND_PREFIX)/libhound.a
     40        $(LIBHOUND_PREFIX)/libhound.a \
     41        $(LIBPCM_PREFIX)/libpcm.a
    4042
    4143SOURCES = \
    4244        audio_client.c \
    4345        audio_device.c \
    44         audio_format.c \
    4546        audio_sink.c \
    4647        audio_source.c \
  • uspace/srv/audio/hound/audio_client.c

    r950110ee rea6c838  
    4343
    4444static void init_common(audio_client_t *client, const char *name,
    45     const audio_format_t *f, async_sess_t *sess)
     45    const pcm_format_t *f, async_sess_t *sess)
    4646{
    4747        link_initialize(&client->link);
     
    6060
    6161audio_client_t *audio_client_get_playback(
    62     const char *name, const audio_format_t *f, async_sess_t *sess)
     62    const char *name, const pcm_format_t *f, async_sess_t *sess)
    6363{
    6464        audio_client_t *client = malloc(sizeof(audio_client_t));
     
    7373
    7474audio_client_t *audio_client_get_recording(
    75     const char *name, const audio_format_t *f, async_sess_t *sess)
     75    const char *name, const pcm_format_t *f, async_sess_t *sess)
    7676{
    7777        audio_client_t *client = malloc(sizeof(audio_client_t));
  • uspace/srv/audio/hound/audio_client.h

    r950110ee rea6c838  
    3939#include <adt/list.h>
    4040#include <async.h>
     41#include <pcm/format.h>
    4142
    42 #include "audio_format.h"
    4343#include "audio_source.h"
    4444#include "audio_sink.h"
     
    4949        audio_source_t source;
    5050        audio_sink_t sink;
    51         audio_format_t format;
     51        pcm_format_t format;
    5252        async_sess_t *sess;
    5353        async_exch_t *exch;
     
    6262
    6363audio_client_t *audio_client_get_playback(
    64     const char *name, const audio_format_t *f, async_sess_t *sess);
     64    const char *name, const pcm_format_t *f, async_sess_t *sess);
    6565audio_client_t *audio_client_get_recording(
    66     const char *name, const audio_format_t *f, async_sess_t *sess);
     66    const char *name, const pcm_format_t *f, async_sess_t *sess);
    6767void audio_client_destroy(audio_client_t *client);
    6868
  • uspace/srv/audio/hound/audio_device.c

    r950110ee rea6c838  
    109109
    110110                const unsigned frames = dev->buffer.size /
    111                     (BUFFER_PARTS * audio_format_frame_size(&dev->sink.format));
     111                    (BUFFER_PARTS * pcm_format_frame_size(&dev->sink.format));
    112112                ret = audio_pcm_start_playback(dev->sess, frames,
    113113                    dev->sink.format.channels, dev->sink.format.sampling_rate,
     
    152152                }
    153153                const unsigned frames = dev->buffer.size /
    154                     (BUFFER_PARTS * audio_format_frame_size(&dev->sink.format));
     154                    (BUFFER_PARTS * pcm_format_frame_size(&dev->sink.format));
    155155                ret = audio_pcm_start_record(dev->sess, frames,
    156156                    dev->sink.format.channels, dev->sink.format.sampling_rate,
  • uspace/srv/audio/hound/audio_sink.c

    r950110ee rea6c838  
    4646int audio_sink_init(audio_sink_t *sink, const char *name,
    4747    void *private_data, int (*connection_change)(audio_sink_t *, bool),
    48     int (*check_format)(audio_sink_t *sink), const audio_format_t *f)
     48    int (*check_format)(audio_sink_t *sink), const pcm_format_t *f)
    4949{
    5050        assert(sink);
     
    7979        list_append(&source->link, &sink->sources);
    8080
    81         const audio_format_t old_format = sink->format;
     81        const pcm_format_t old_format = sink->format;
    8282
    8383        /* The first source for me */
    8484        if (list_count(&sink->sources) == 1) {
    8585                /* Set audio format according to the first source */
    86                 if (audio_format_is_any(&sink->format)) {
     86                if (pcm_format_is_any(&sink->format)) {
    8787                        int ret = audio_sink_set_format(sink, &source->format);
    8888                        if (ret != EOK)
     
    110110}
    111111
    112 int audio_sink_set_format(audio_sink_t *sink, const audio_format_t *format)
     112int audio_sink_set_format(audio_sink_t *sink, const pcm_format_t *format)
    113113{
    114114        assert(sink);
    115115        assert(format);
    116         if (!audio_format_is_any(&sink->format)) {
     116        if (!pcm_format_is_any(&sink->format)) {
    117117                log_debug("Sink %s already has a format", sink->name);
    118118                return EEXISTS;
    119119        }
    120         const audio_format_t old_format;
     120        const pcm_format_t old_format;
    121121
    122         if (audio_format_is_any(format)) {
     122        if (pcm_format_is_any(format)) {
    123123                log_verbose("Setting DEFAULT format for sink %s", sink->name);
    124124                sink->format = AUDIO_FORMAT_DEFAULT;
  • uspace/srv/audio/hound/audio_sink.h

    r950110ee rea6c838  
    4141#include <bool.h>
    4242#include <fibril.h>
     43#include <pcm/format.h>
    4344
    4445#include "audio_source.h"
    45 #include "audio_format.h"
    4646
    4747typedef struct audio_sink audio_sink_t;
     
    5151        list_t sources;
    5252        const char *name;
    53         audio_format_t format;
     53        pcm_format_t format;
    5454        void *private_data;
    5555        int (*connection_change)(audio_sink_t *, bool);
     
    6464int audio_sink_init(audio_sink_t *sink, const char *name,
    6565    void *private_data, int (*connection_change)(audio_sink_t *, bool),
    66     int (*check_format)(audio_sink_t *), const audio_format_t *f);
     66    int (*check_format)(audio_sink_t *), const pcm_format_t *f);
    6767void audio_sink_fini(audio_sink_t *sink);
    6868
    69 int audio_sink_set_format(audio_sink_t *sink, const audio_format_t *format);
     69int audio_sink_set_format(audio_sink_t *sink, const pcm_format_t *format);
    7070int audio_sink_add_source(audio_sink_t *sink, audio_source_t *source);
    7171int audio_sink_remove_source(audio_sink_t *sink, audio_source_t *source);
  • uspace/srv/audio/hound/audio_source.c

    r950110ee rea6c838  
    4949    int (*connection_change)(audio_source_t *),
    5050    int (*update_available_data)(audio_source_t *, size_t),
    51     const audio_format_t *f)
     51    const pcm_format_t *f)
    5252{
    5353        assert(source);
     
    8282        assert(source);
    8383        audio_sink_t *old_sink = source->connected_sink;
    84         const audio_format_t old_format = source->format;
     84        const pcm_format_t old_format = source->format;
    8585
    8686        source->connected_sink = sink;
    87         if (audio_format_is_any(&source->format)) {
     87        if (pcm_format_is_any(&source->format)) {
    8888                assert(sink);
    89                 assert(!audio_format_is_any(&sink->format));
     89                assert(!pcm_format_is_any(&sink->format));
    9090                source->format = sink->format;
    9191        }
     
    102102
    103103int audio_source_add_self(audio_source_t *source, void *buffer, size_t size,
    104     const audio_format_t *f)
     104    const pcm_format_t *f)
    105105{
    106106        assert(source);
     
    120120                return ENOTSUP;
    121121        }
    122         const size_t src_frame_size = audio_format_frame_size(&source->format);
    123         const size_t dst_frames = size / audio_format_frame_size(f);
     122        const size_t src_frame_size = pcm_format_frame_size(&source->format);
     123        const size_t dst_frames = size / pcm_format_frame_size(f);
    124124
    125125        if (source->available_data.position == NULL ||
     
    135135        }
    136136
    137         const int ret = audio_format_convert_and_mix(buffer, size,
     137        const int ret = pcm_format_convert_and_mix(buffer, size,
    138138               source->available_data.position, source->available_data.size,
    139139               &source->format, f);
  • uspace/srv/audio/hound/audio_source.h

    r950110ee rea6c838  
    3939#include <adt/list.h>
    4040#include <bool.h>
    41 #include <pcm_sample_format.h>
    42 
    43 
    44 #include "audio_format.h"
     41#include <pcm/format.h>
    4542
    4643struct audio_sink;
     
    5047        link_t link;
    5148        const char *name;
    52         audio_format_t format;
     49        pcm_format_t format;
    5350        void *private_data;
    5451        int (*connection_change)(audio_source_t *source);
     
    7067    int (*connection_change)(audio_source_t *),
    7168    int (*update_available_data)(audio_source_t *, size_t),
    72     const audio_format_t *f);
     69    const pcm_format_t *f);
    7370void audio_source_fini(audio_source_t *source);
    7471int audio_source_connected(audio_source_t *source, struct audio_sink *sink);
    7572int audio_source_add_self(audio_source_t *source, void *buffer, size_t size,
    76     const audio_format_t *f);
    77 static inline const audio_format_t *audio_source_format(const audio_source_t *s)
     73    const pcm_format_t *f);
     74static inline const pcm_format_t *audio_source_format(const audio_source_t *s)
    7875{
    7976        assert(s);
  • uspace/srv/audio/hound/hound.h

    r950110ee rea6c838  
    4242#include <errno.h>
    4343#include <fibril_synch.h>
     44#include <pcm/format.h>
    4445
    4546#include "audio_source.h"
    4647#include "audio_sink.h"
    47 #include "audio_format.h"
    4848
    4949
  • uspace/srv/audio/hound/main.c

    r950110ee rea6c838  
    7171        LIST_INITIALIZE(local_playback);
    7272        LIST_INITIALIZE(local_recording);
    73         audio_format_t format = {0};
     73        pcm_format_t format = {0};
    7474        const char *name = NULL;
    7575        async_sess_t *sess = NULL;
Note: See TracChangeset for help on using the changeset viewer.