File: auddev.h

package info (click to toggle)
rat 4.2.22-2.2
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 2,896 kB
  • ctags: 3,717
  • sloc: ansic: 36,542; tcl: 2,740; sh: 2,675; makefile: 295
file content (72 lines) | stat: -rw-r--r-- 2,987 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/*
 * FILE:    auddev.h
 * PROGRAM: RAT
 * AUTHOR:  Orion Hodson
 *
 * Note: Original audio interface by Isidor Kouvelas, Colin Perkins, 
 * and OH.  OH has gone through and modularised this code so that RAT 
 * can detect and use multiple audio devices.
 *
 * Copyright (c) 1995-2001 University College London
 * All rights reserved.
 *
 * $Id: auddev.h,v 1.16 2001/01/08 20:29:47 ucaccsp Exp $
 */

#ifndef _AUDDEV_H_
#define _AUDDEV_H_

#include "audio_types.h"

/* Audio interface fn's for dealing with multiple devices/device interfaces */
int     audio_init_interfaces    (void);
int     audio_free_interfaces    (void);
uint32_t audio_get_device_count   (void);
const audio_device_details_t*
        audio_get_device_details (uint32_t idx);
int     audio_get_null_device    (void); /* gets null dev interface */
int     audio_device_supports    (audio_desc_t ad, uint16_t rate, uint16_t channels);
int     audio_device_is_open     (audio_desc_t ad);

/* Audio functions implemented by device interfaces */
int     audio_open          (audio_desc_t ad, audio_format *in_format, audio_format *out_format);
void	audio_close         (audio_desc_t ad);
void	audio_drain         (audio_desc_t ad);
void	audio_set_igain      (audio_desc_t ad, int gain);
int     audio_duplex        (audio_desc_t ad);
int	audio_get_igain      (audio_desc_t ad);
void	audio_set_ogain    (audio_desc_t ad, int vol);
int	audio_get_ogain    (audio_desc_t ad);
void    audio_loopback      (audio_desc_t ad, int gain);
int	audio_read          (audio_desc_t ad, sample *buf, int samples);
int	audio_write         (audio_desc_t ad, sample *buf, int samples);
void	audio_non_block     (audio_desc_t ad);
void	audio_block         (audio_desc_t ad);

void	                    audio_set_oport         (audio_desc_t ad, audio_port_t);
audio_port_t                audio_get_oport         (audio_desc_t ad);
int	                    audio_get_oport_count   (audio_desc_t ad);
const audio_port_details_t* audio_get_oport_details (audio_desc_t ad, int port_idx);

void	                    audio_set_iport         (audio_desc_t ad, audio_port_t);
audio_port_t                audio_get_iport         (audio_desc_t ad);
int	                    audio_get_iport_count   (audio_desc_t ad);
const audio_port_details_t* audio_get_iport_details (audio_desc_t ad, int port_idx);

int     audio_is_ready      (audio_desc_t ad);
void    audio_wait_for      (audio_desc_t ad, int granularity_ms);

const audio_format* audio_get_ifmt (audio_desc_t ad);
const audio_format* audio_get_ofmt (audio_desc_t ad);

/* audio_get_samples_{read,written} return the actual number of
 * sample instances that have been read/written.  audio_get_device_time
 * returns the number of samples read rounded down to the nearest
 * number of whole sample blocks.
 */

uint32_t audio_get_device_time     (audio_desc_t ad);
uint32_t audio_get_samples_written (audio_desc_t ad);
uint32_t audio_get_samples_read    (audio_desc_t ad);

#endif /* _AUDDEV_H_ */