aroarfw
audio.h
Go to the documentation of this file.
1 //audio.h:
2 
3 /*
4  * Copyright (C) Philipp 'ph3-der-loewe' Schafft - 2010-2013
5  *
6  * This file is part of aroarfw, a RoarAudio framework for
7  * embedded systems (µControlers).
8  *
9  * This file is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License version 3
11  * or (at your option) any later version as published by
12  * the Free Software Foundation.
13  *
14  * aroarfw is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this software; see the file COPYING. If not, write to
21  * the Free Software Foundation, 51 Franklin Street, Fifth Floor,
22  * Boston, MA 02110-1301, USA.
23  */
24 
25 #ifndef _AROARFW_AUDIO_H_
26 #define _AROARFW_AUDIO_H_
27 
29 typedef enum {
37 
39 typedef enum {
55  RCODEC_FLAC = 0x11,
65  RCODEC_OGG = 0x17,
77  RCODEC_RIFX = 0x22,
79  RCODEC_AU = 0x24,
81  RCODEC_AIFF = 0x28,
83  RCODEC_ALAW = 0x30,
91  RCODEC_MULAW = 0x34,
99  RCODEC_GSM = 0x38,
101  RCODEC_GSM49 = 0x39,
103  RCODEC_BRR = 0x3c,
107  RCODEC_MIDI = 0x60,
114 
116  RCODEC_RAUM = 0x1c,
146  RCODEC_RDS = 0x80,
148  RCODEC_USER0 = 0x90,
150  RCODEC_USER1 = 0x91,
152  RCODEC_USER2 = 0x92,
154  RCODEC_USER3 = 0x93,
156  RCODEC_USER4 = 0x94,
158  RCODEC_USER5 = 0x95,
160  RCODEC_USER6 = 0x96,
162  RCODEC_USER7 = 0x97,
164  RCODEC_USER8 = 0x98,
166  RCODEC_USER9 = 0x99,
178  RCODEC_USER15 = 0x9f
181 
183 typedef enum {
189  RSPEEX_MODE_UWB = 3
191 
193 #define RDEFAULT_AU_RATE 44100
194 
196 #define RDEFAULT_AU_BITS 16
197 
199 #define RDEFAULT_AU_CHANNELS RCHANNELS_STEREO
200 
202 #define RSPEEX_MAGIC "RoarSpeex"
203 #define RSPEEX_MAGIC_LEN 9
205 #define RCELT_MAGIC "RoarCELT0"
207 #define RCELT_MAGIC_LEN 9
209 
211 typedef struct raudio_info {
213  unsigned int rate;
215  unsigned int bits;
221 
222 #endif
223 
224 //ll
RCODEC_USER9
@ RCODEC_USER9
User defined codec 9.
Definition: audio.h:166
RCODEC_CONT_OPGPASC
@ RCODEC_CONT_OPGPASC
OpenPGP ascii armored container.
Definition: audio.h:142
rchannels_t
rchannels_t
Channel setups for RoarAudio.
Definition: audio.h:29
raudio_info
Struct to store Audio Signal information.
Definition: audio.h:211
RCODEC_MIDI
@ RCODEC_MIDI
MIDI (on-wire) protocol.
Definition: audio.h:107
RCODEC_OGG
@ RCODEC_OGG
Ogg container itself (to be used with virtual streams)
Definition: audio.h:65
RCODEC_AU
@ RCODEC_AU
Sun Audio file format (.au) (may be used with virtual streams)
Definition: audio.h:79
RCODEC_GSM
@ RCODEC_GSM
GSM Codec.
Definition: audio.h:99
RCHANNELS_MONO
@ RCHANNELS_MONO
Mono stream (one channel)
Definition: audio.h:33
RCODEC_RIFX
@ RCODEC_RIFX
Big endian RIFF WAVE file.
Definition: audio.h:77
raudio_info::codec
rcodec_t codec
Used codec.
Definition: audio.h:219
RCODEC_META_RALT
@ RCODEC_META_RALT
RoarAudio Like Text.
Definition: audio.h:124
RCODEC_META_RALB_LE
@ RCODEC_META_RALB_LE
RoarAudio Like Binary (little endian)
Definition: audio.h:128
RCODEC_USER11
@ RCODEC_USER11
User defined codec 11.
Definition: audio.h:170
RCODEC_ROAR_SPEEX
@ RCODEC_ROAR_SPEEX
RoarSpeex (.rs)
Definition: audio.h:73
RCODEC_RDS
@ RCODEC_RDS
RDS (on-wire) protocol.
Definition: audio.h:146
RCODEC_MIDI_FILE
@ RCODEC_MIDI_FILE
MIDI File.
Definition: audio.h:105
RCODEC_CONT_NULL
@ RCODEC_CONT_NULL
Null container.
Definition: audio.h:134
RCODEC_MUUTLAW_BE
@ RCODEC_MUUTLAW_BE
mu-Law alike 16 bit codec in big endian
Definition: audio.h:95
RCODEC_FLAC
@ RCODEC_FLAC
Native FLAC (.flac)
Definition: audio.h:55
RCODEC_USER6
@ RCODEC_USER6
User defined codec 6.
Definition: audio.h:160
RCODEC_BRR
@ RCODEC_BRR
SPC-700 Bit Rate Reduction of Super Nintendo Entertainment System (SNES)
Definition: audio.h:103
RCODEC_ROARMIDI
@ RCODEC_ROARMIDI
RoarMIDI protocol.
Definition: audio.h:109
RCODEC_USER12
@ RCODEC_USER12
User defined codec 12.
Definition: audio.h:172
RCODEC_CONT_OPGPBIN
@ RCODEC_CONT_OPGPBIN
OpenPGP binary data container.
Definition: audio.h:140
rcodec_t
rcodec_t
Codec used by streams or other audio data.
Definition: audio.h:39
RCODEC_OGG_OPUS
@ RCODEC_OGG_OPUS
Opus in Ogg.
Definition: audio.h:67
RCODEC_PCM_U_LE
@ RCODEC_PCM_U_LE
Unsigned PCM data in little endian.
Definition: audio.h:47
RCODEC_USER10
@ RCODEC_USER10
User defined codec 10.
Definition: audio.h:168
RCODEC_AIFF
@ RCODEC_AIFF
Audio Interchange File Format (may be used with virtual streams)
Definition: audio.h:81
RCODEC_META_RALB_BE
@ RCODEC_META_RALB_BE
RoarAudio Like Binary (big endian)
Definition: audio.h:130
rspeex_mode_t
rspeex_mode_t
RoarSpeex mode.
Definition: audio.h:183
RCODEC_USER14
@ RCODEC_USER14
User defined codec 14.
Definition: audio.h:176
RCODEC_MULAW
@ RCODEC_MULAW
mu-Law
Definition: audio.h:91
RCODEC_AUTLAW
@ RCODEC_AUTLAW
Alias for A-Law alike 16 bit codec.
Definition: audio.h:89
RCODEC_PCM_S_BE
@ RCODEC_PCM_S_BE
Signed PCM data in big endian.
Definition: audio.h:43
RCODEC_CONT_TAR
@ RCODEC_CONT_TAR
TAR container.
Definition: audio.h:144
RCODEC_PCM_U_BE
@ RCODEC_PCM_U_BE
Unsigned PCM data in big endian.
Definition: audio.h:49
RCODEC_USER2
@ RCODEC_USER2
User defined codec 2.
Definition: audio.h:152
RCODEC_CONT_GZIP
@ RCODEC_CONT_GZIP
GnuZIP Container.
Definition: audio.h:136
RCODEC_MUUTLAW
@ RCODEC_MUUTLAW
Alias for mu-Law alike 16 bit codec.
Definition: audio.h:97
RCODEC_USER4
@ RCODEC_USER4
User defined codec 4.
Definition: audio.h:156
RSPEEX_MODE_UWB
@ RSPEEX_MODE_UWB
Ultra-wideband (32 kHz)
Definition: audio.h:189
RCODEC_MUUTLAW_LE
@ RCODEC_MUUTLAW_LE
mu-Law alike 16 bit codec in little endian (uncommon)
Definition: audio.h:93
RCODEC_USER15
@ RCODEC_USER15
User defined codec 15.
Definition: audio.h:178
raudio_info::bits
unsigned int bits
Number of bits per sample.
Definition: audio.h:215
RCODEC_AUTLAW_BE
@ RCODEC_AUTLAW_BE
A-Law alike 16 bit codec in big endian.
Definition: audio.h:87
RCODEC_RAUM
@ RCODEC_RAUM
RAUM Files.
Definition: audio.h:116
RCODEC_PCM_S_PDP
@ RCODEC_PCM_S_PDP
Signed PCM data in PDP (middle) endian.
Definition: audio.h:45
raudio_info::channels
rchannels_t channels
Number of channels per frame.
Definition: audio.h:217
RCODEC_ROAR_CELT
@ RCODEC_ROAR_CELT
RoarCELT (.rc)
Definition: audio.h:71
RCODEC_PCM_U_PDP
@ RCODEC_PCM_U_PDP
Unsigned PCM data in PDP (middle) endian.
Definition: audio.h:51
RCODEC_OGG_GENERAL
@ RCODEC_OGG_GENERAL
General Ogg (mixed/unknown content)
Definition: audio.h:63
RCODEC_META_VCLT
@ RCODEC_META_VCLT
Vorbis Comment Like Text.
Definition: audio.h:122
RCODEC_META_RALB_PDP
@ RCODEC_META_RALB_PDP
RoarAudio Like Binary (PDP (middle) endian)
Definition: audio.h:132
RCODEC_ROARDMX
@ RCODEC_ROARDMX
RoarDMX.
Definition: audio.h:113
RCODEC_OGG_FLAC
@ RCODEC_OGG_FLAC
Ogg FLAC.
Definition: audio.h:59
raudio_info_t
struct raudio_info raudio_info_t
Struct to store Audio Signal information.
RCODEC_OGG_CELT
@ RCODEC_OGG_CELT
Ogg CELT.
Definition: audio.h:61
RCODEC_USER5
@ RCODEC_USER5
User defined codec 5.
Definition: audio.h:158
RCODEC_CONT_BZIP2
@ RCODEC_CONT_BZIP2
bzip2 container
Definition: audio.h:138
RCODEC_USER3
@ RCODEC_USER3
User defined codec 3.
Definition: audio.h:154
RCODEC_OGG_SPEEX
@ RCODEC_OGG_SPEEX
Ogg Speex (.spx)
Definition: audio.h:57
RCODEC_RIFF_WAVE
@ RCODEC_RIFF_WAVE
RIFF WAVE container (.wav) (may be used with virtual streams)
Definition: audio.h:75
RCODEC_RAUM_FLAC
@ RCODEC_RAUM_FLAC
RAUM Files with FLAC stream.
Definition: audio.h:120
RCODEC_OGG_VORBIS
@ RCODEC_OGG_VORBIS
Ogg Vorbis.
Definition: audio.h:53
RCODEC_PCM_S_LE
@ RCODEC_PCM_S_LE
Signed PCM data in little endian.
Definition: audio.h:41
raudio_info::rate
unsigned int rate
Sample rate.
Definition: audio.h:213
RCODEC_USER8
@ RCODEC_USER8
User defined codec 8.
Definition: audio.h:164
RCODEC_USER13
@ RCODEC_USER13
User defined codec 13.
Definition: audio.h:174
RCODEC_RAUM_VORBIS
@ RCODEC_RAUM_VORBIS
RAUM Files with Vorbis stream.
Definition: audio.h:118
RCODEC_ALAW
@ RCODEC_ALAW
A-Law.
Definition: audio.h:83
RCODEC_GSM49
@ RCODEC_GSM49
GSM Codec for RIFF_WAVE files.
Definition: audio.h:101
RCODEC_USER0
@ RCODEC_USER0
User defined codec 0.
Definition: audio.h:148
RCODEC_USER1
@ RCODEC_USER1
User defined codec 1.
Definition: audio.h:150
RCODEC_USER7
@ RCODEC_USER7
User defined codec 7.
Definition: audio.h:162
RSPEEX_MODE_WB
@ RSPEEX_MODE_WB
Wideband (16 kHz)
Definition: audio.h:187
RCODEC_DMX512
@ RCODEC_DMX512
DMX512.
Definition: audio.h:111
RSPEEX_MODE_NB
@ RSPEEX_MODE_NB
Narrowband (8 kHz)
Definition: audio.h:185
RCHANNELS_STEREO
@ RCHANNELS_STEREO
Stereo stream (two channels)
Definition: audio.h:35
RCODEC_ROAR_OPUS
@ RCODEC_ROAR_OPUS
RoarOpus (.ro)
Definition: audio.h:69
RCHANNELS_NONE
@ RCHANNELS_NONE
No channels.
Definition: audio.h:31
RCODEC_META_RALB
@ RCODEC_META_RALB
RoarAudio Like Binary.
Definition: audio.h:126
RCODEC_AUTLAW_LE
@ RCODEC_AUTLAW_LE
A-Law alike 16 bit codec in little endian (uncommon)
Definition: audio.h:85