GATE
audiosources.h File Reference

Audio devices and audio sample data formats. More...

#include "gate/io/gate_io_api.h"
#include "gate/gatetypes.h"
#include "gate/memalloc.h"
#include "gate/strings.h"
#include "gate/streams.h"
#include "gate/times.h"
#include "gate/objects.h"
#include "gate/arrays.h"
#include "gate/delegates.h"
#include "gate/comparers.h"

Classes

struct  gate_audio_format_class
 
struct  gate_audio_sample_class
 

Macros

#define GATE_INTERFACE_NAME_AUDIO_DEVICE   GATE_INTERFACE_NAME_OBJECT "/audiodevice"
 
#define gate_audio_device_get_id(obj)   (obj)->vtbl->get_id((obj))
 
#define gate_audio_device_get_name(obj)   (obj)->vtbl->get_name((obj))
 
#define gate_audio_device_get_handle(obj)   (obj)->vtbl->get_handle((obj))
 
#define gate_audio_device_get_device_type(obj)   (obj)->vtbl->get_device_type((obj))
 
#define gate_audio_device_get_supported_formats(obj, format_buffer, format_buffer_count)    (obj)->vtbl->get_supported_formats((obj), (format_buffer), (format_buffer_count))
 
#define gate_audio_device_open(obj, format, sample_count)   (obj)->vtbl->open((obj), (format), (sample_count))
 
#define gate_audio_device_close(obj)   (obj)->vtbl->close((obj))
 
#define gate_audio_device_read(obj, sample)   (obj)->vtbl->read((obj), (sample))
 
#define gate_audio_device_read_async(obj, completion)   (obj)->vtbl->read_async((obj), (completion))
 
#define gate_audio_device_write(obj, sample)   (obj)->vtbl->write((obj), (sample))
 
#define gate_audio_device_write_async(obj, completion)   (obj)->vtbl->write_async((obj), (completion))
 

Typedefs

typedef struct gate_audio_format_class gate_audio_format_t
 
typedef struct gate_audio_sample_class gate_audio_sample_t
 
typedef enum gate_audio_device_type_enum gate_audio_device_type_t
 

Enumerations

enum  gate_audio_device_type_enum { gate_audio_device_unknown = 0 , gate_audio_device_input = 1 , gate_audio_device_output = 2 }
 

Functions

GATE_IO_API int gate_compare_audio_format (void const *format1, void const *format2)
 
GATE_IO_API gate_audio_format_t const * gate_audio_format_choose (gate_audio_format_t const *formats, gate_size_t formats_count, gate_uint32_t const *desired_samples_per_second, gate_uint16_t const *desired_channels, gate_uint16_t const *desired_bits_per_sample)
 
GATE_IO_API gate_audio_sample_tgate_audio_sample_create (gate_audio_sample_t *new_sample, gate_audio_format_t const *format, void const *data, gate_size_t data_size, void const *meta_data, gate_size_t meta_data_size, gate_uint32_t sample_count, gate_int64_t record_time)
 
GATE_IO_API void gate_audio_sample_release (gate_audio_sample_t *sample)
 
 GATE_DELEGATE_DECLARE_2 (gate_audio_read_completed, gate_result_t, gate_audio_sample_t *)
 
 GATE_DELEGATE_DECLARE_2 (gate_audio_write_completed, gate_result_t, gate_audio_sample_t const *)
 
 GATE_INTERFACE (gate_audio_device)
 
 GATE_DELEGATE_DECLARE_2 (gate_audio_devices_enum, gate_audio_device_t *, void *)
 
GATE_IO_API gate_result_t gate_audio_create_wave_reader (gate_stream_t *input, gate_audio_device_t **ptr_reader)
 
GATE_IO_API gate_result_t gate_audio_create_wave_writer (gate_stream_t *output, gate_audio_device_t **ptr_writer)
 
GATE_IO_API gate_result_t gate_audio_devices_enum (gate_audio_device_type_t type, gate_delegate_t const *callback, void *param)
 
GATE_IO_API gate_result_t gate_audio_device_by_id (char const *id, gate_audio_device_t **ptr_device)
 

Detailed Description

Audio devices and audio sample data formats.