~ubuntu-branches/ubuntu/vivid/sflphone/vivid

« back to all changes in this revision

Viewing changes to daemon/libs/pjproject-2.2.1/third_party/portaudio/include/pa_win_waveformat.h

  • Committer: Package Import Robot
  • Author(s): Jonathan Riddell
  • Date: 2015-01-07 14:51:16 UTC
  • mfrom: (4.3.5 sid)
  • Revision ID: package-import@ubuntu.com-20150107145116-yxnafinf4lrdvrmx
Tags: 1.4.1-0.1ubuntu1
* Merge with Debian, remaining changes:
 - Drop soprano, nepomuk build-dep
* Drop ubuntu patches, now upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef PA_WIN_WAVEFORMAT_H
 
2
#define PA_WIN_WAVEFORMAT_H
 
3
 
 
4
/*
 
5
 * PortAudio Portable Real-Time Audio Library
 
6
 * Windows WAVEFORMAT* data structure utilities
 
7
 * portaudio.h should be included before this file.
 
8
 *
 
9
 * Copyright (c) 2007 Ross Bencina
 
10
 *
 
11
 * Permission is hereby granted, free of charge, to any person obtaining
 
12
 * a copy of this software and associated documentation files
 
13
 * (the "Software"), to deal in the Software without restriction,
 
14
 * including without limitation the rights to use, copy, modify, merge,
 
15
 * publish, distribute, sublicense, and/or sell copies of the Software,
 
16
 * and to permit persons to whom the Software is furnished to do so,
 
17
 * subject to the following conditions:
 
18
 *
 
19
 * The above copyright notice and this permission notice shall be
 
20
 * included in all copies or substantial portions of the Software.
 
21
 *
 
22
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 
23
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 
24
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 
25
 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
 
26
 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
 
27
 * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 
28
 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
29
 */
 
30
 
 
31
/*
 
32
 * The text above constitutes the entire PortAudio license; however, 
 
33
 * the PortAudio community also makes the following non-binding requests:
 
34
 *
 
35
 * Any person wishing to distribute modifications to the Software is
 
36
 * requested to send the modifications to the original developer so that
 
37
 * they can be incorporated into the canonical version. It is also 
 
38
 * requested that these non-binding requests be included along with the 
 
39
 * license above.
 
40
 */
 
41
 
 
42
/** @file
 
43
 @ingroup public_header
 
44
 @brief Windows specific PortAudio API extension and utilities header file.
 
45
*/
 
46
 
 
47
#ifdef __cplusplus
 
48
extern "C" {
 
49
#endif
 
50
 
 
51
/*
 
52
        The following #defines for speaker channel masks are the same
 
53
        as those in ksmedia.h, except with PAWIN_ prepended, KSAUDIO_ removed
 
54
        in some cases, and casts to PaWinWaveFormatChannelMask added.
 
55
*/
 
56
 
 
57
typedef unsigned long PaWinWaveFormatChannelMask;
 
58
 
 
59
/* Speaker Positions: */
 
60
#define PAWIN_SPEAKER_FRONT_LEFT                                ((PaWinWaveFormatChannelMask)0x1)
 
61
#define PAWIN_SPEAKER_FRONT_RIGHT                               ((PaWinWaveFormatChannelMask)0x2)
 
62
#define PAWIN_SPEAKER_FRONT_CENTER                              ((PaWinWaveFormatChannelMask)0x4)
 
63
#define PAWIN_SPEAKER_LOW_FREQUENCY                             ((PaWinWaveFormatChannelMask)0x8)
 
64
#define PAWIN_SPEAKER_BACK_LEFT                                 ((PaWinWaveFormatChannelMask)0x10)
 
65
#define PAWIN_SPEAKER_BACK_RIGHT                                ((PaWinWaveFormatChannelMask)0x20)
 
66
#define PAWIN_SPEAKER_FRONT_LEFT_OF_CENTER              ((PaWinWaveFormatChannelMask)0x40)
 
67
#define PAWIN_SPEAKER_FRONT_RIGHT_OF_CENTER             ((PaWinWaveFormatChannelMask)0x80)
 
68
#define PAWIN_SPEAKER_BACK_CENTER                               ((PaWinWaveFormatChannelMask)0x100)
 
69
#define PAWIN_SPEAKER_SIDE_LEFT                                 ((PaWinWaveFormatChannelMask)0x200)
 
70
#define PAWIN_SPEAKER_SIDE_RIGHT                                ((PaWinWaveFormatChannelMask)0x400)
 
71
#define PAWIN_SPEAKER_TOP_CENTER                                ((PaWinWaveFormatChannelMask)0x800)
 
72
#define PAWIN_SPEAKER_TOP_FRONT_LEFT                    ((PaWinWaveFormatChannelMask)0x1000)
 
73
#define PAWIN_SPEAKER_TOP_FRONT_CENTER                  ((PaWinWaveFormatChannelMask)0x2000)
 
74
#define PAWIN_SPEAKER_TOP_FRONT_RIGHT                   ((PaWinWaveFormatChannelMask)0x4000)
 
75
#define PAWIN_SPEAKER_TOP_BACK_LEFT                             ((PaWinWaveFormatChannelMask)0x8000)
 
76
#define PAWIN_SPEAKER_TOP_BACK_CENTER                   ((PaWinWaveFormatChannelMask)0x10000)
 
77
#define PAWIN_SPEAKER_TOP_BACK_RIGHT                    ((PaWinWaveFormatChannelMask)0x20000)
 
78
 
 
79
/* Bit mask locations reserved for future use */
 
80
#define PAWIN_SPEAKER_RESERVED                                  ((PaWinWaveFormatChannelMask)0x7FFC0000)
 
81
 
 
82
/* Used to specify that any possible permutation of speaker configurations */
 
83
#define PAWIN_SPEAKER_ALL                                               ((PaWinWaveFormatChannelMask)0x80000000)
 
84
 
 
85
/* DirectSound Speaker Config */
 
86
#define PAWIN_SPEAKER_DIRECTOUT                                 0
 
87
#define PAWIN_SPEAKER_MONO                                              (PAWIN_SPEAKER_FRONT_CENTER)
 
88
#define PAWIN_SPEAKER_STEREO                                    (PAWIN_SPEAKER_FRONT_LEFT | PAWIN_SPEAKER_FRONT_RIGHT)
 
89
#define PAWIN_SPEAKER_QUAD                                              (PAWIN_SPEAKER_FRONT_LEFT | PAWIN_SPEAKER_FRONT_RIGHT | \
 
90
                                                                                                PAWIN_SPEAKER_BACK_LEFT  | PAWIN_SPEAKER_BACK_RIGHT)
 
91
#define PAWIN_SPEAKER_SURROUND                                  (PAWIN_SPEAKER_FRONT_LEFT | PAWIN_SPEAKER_FRONT_RIGHT | \
 
92
                                                                                                PAWIN_SPEAKER_FRONT_CENTER | PAWIN_SPEAKER_BACK_CENTER)
 
93
#define PAWIN_SPEAKER_5POINT1                                   (PAWIN_SPEAKER_FRONT_LEFT | PAWIN_SPEAKER_FRONT_RIGHT | \
 
94
                                                                                                PAWIN_SPEAKER_FRONT_CENTER | PAWIN_SPEAKER_LOW_FREQUENCY | \
 
95
                                                                                                PAWIN_SPEAKER_BACK_LEFT  | PAWIN_SPEAKER_BACK_RIGHT)
 
96
#define PAWIN_SPEAKER_7POINT1                                   (PAWIN_SPEAKER_FRONT_LEFT | PAWIN_SPEAKER_FRONT_RIGHT | \
 
97
                                                                                                PAWIN_SPEAKER_FRONT_CENTER | PAWIN_SPEAKER_LOW_FREQUENCY | \
 
98
                                                                                                PAWIN_SPEAKER_BACK_LEFT | PAWIN_SPEAKER_BACK_RIGHT | \
 
99
                                                                                                PAWIN_SPEAKER_FRONT_LEFT_OF_CENTER | PAWIN_SPEAKER_FRONT_RIGHT_OF_CENTER)
 
100
#define PAWIN_SPEAKER_5POINT1_SURROUND                  (PAWIN_SPEAKER_FRONT_LEFT | PAWIN_SPEAKER_FRONT_RIGHT | \
 
101
                                                                                                PAWIN_SPEAKER_FRONT_CENTER | PAWIN_SPEAKER_LOW_FREQUENCY | \
 
102
                                                                                                PAWIN_SPEAKER_SIDE_LEFT  | PAWIN_SPEAKER_SIDE_RIGHT)
 
103
#define PAWIN_SPEAKER_7POINT1_SURROUND                  (PAWIN_SPEAKER_FRONT_LEFT | PAWIN_SPEAKER_FRONT_RIGHT | \
 
104
                                                                                                PAWIN_SPEAKER_FRONT_CENTER | PAWIN_SPEAKER_LOW_FREQUENCY | \
 
105
                                                                                                PAWIN_SPEAKER_BACK_LEFT | PAWIN_SPEAKER_BACK_RIGHT | \
 
106
                                                                                                PAWIN_SPEAKER_SIDE_LEFT | PAWIN_SPEAKER_SIDE_RIGHT)
 
107
/*
 
108
 According to the Microsoft documentation:
 
109
 The following are obsolete 5.1 and 7.1 settings (they lack side speakers).  Note this means
 
110
 that the default 5.1 and 7.1 settings (KSAUDIO_SPEAKER_5POINT1 and KSAUDIO_SPEAKER_7POINT1 are
 
111
 similarly obsolete but are unchanged for compatibility reasons).
 
112
*/
 
113
#define PAWIN_SPEAKER_5POINT1_BACK                              PAWIN_SPEAKER_5POINT1
 
114
#define PAWIN_SPEAKER_7POINT1_WIDE                              PAWIN_SPEAKER_7POINT1
 
115
 
 
116
/* DVD Speaker Positions */
 
117
#define PAWIN_SPEAKER_GROUND_FRONT_LEFT                 PAWIN_SPEAKER_FRONT_LEFT
 
118
#define PAWIN_SPEAKER_GROUND_FRONT_CENTER               PAWIN_SPEAKER_FRONT_CENTER
 
119
#define PAWIN_SPEAKER_GROUND_FRONT_RIGHT                PAWIN_SPEAKER_FRONT_RIGHT
 
120
#define PAWIN_SPEAKER_GROUND_REAR_LEFT                  PAWIN_SPEAKER_BACK_LEFT
 
121
#define PAWIN_SPEAKER_GROUND_REAR_RIGHT                 PAWIN_SPEAKER_BACK_RIGHT
 
122
#define PAWIN_SPEAKER_TOP_MIDDLE                                PAWIN_SPEAKER_TOP_CENTER
 
123
#define PAWIN_SPEAKER_SUPER_WOOFER                              PAWIN_SPEAKER_LOW_FREQUENCY
 
124
 
 
125
 
 
126
/*
 
127
        PaWinWaveFormat is defined here to provide compatibility with
 
128
        compilation environments which don't have headers defining 
 
129
        WAVEFORMATEXTENSIBLE (e.g. older versions of MSVC, Borland C++ etc.
 
130
 
 
131
        The fields for WAVEFORMATEX and WAVEFORMATEXTENSIBLE are declared as an
 
132
    unsigned char array here to avoid clients who include this file having 
 
133
    a dependency on windows.h and mmsystem.h, and also to to avoid having
 
134
    to write separate packing pragmas for each compiler.
 
135
*/
 
136
#define PAWIN_SIZEOF_WAVEFORMATEX   18
 
137
#define PAWIN_SIZEOF_WAVEFORMATEXTENSIBLE (PAWIN_SIZEOF_WAVEFORMATEX + 22)
 
138
 
 
139
typedef struct{
 
140
    unsigned char fields[ PAWIN_SIZEOF_WAVEFORMATEXTENSIBLE ];
 
141
    unsigned long extraLongForAlignment; /* ensure that compiler aligns struct to DWORD */ 
 
142
} PaWinWaveFormat;
 
143
 
 
144
/*
 
145
    WAVEFORMATEXTENSIBLE fields:
 
146
    
 
147
    union  {
 
148
            WORD  wValidBitsPerSample;    
 
149
            WORD  wSamplesPerBlock;    
 
150
            WORD  wReserved;  
 
151
    } Samples;
 
152
    DWORD  dwChannelMask;  
 
153
    GUID  SubFormat;
 
154
*/
 
155
 
 
156
#define PAWIN_INDEXOF_WVALIDBITSPERSAMPLE       (PAWIN_SIZEOF_WAVEFORMATEX+0)
 
157
#define PAWIN_INDEXOF_DWCHANNELMASK                     (PAWIN_SIZEOF_WAVEFORMATEX+2)
 
158
#define PAWIN_INDEXOF_SUBFORMAT                         (PAWIN_SIZEOF_WAVEFORMATEX+6)
 
159
 
 
160
 
 
161
/*
 
162
    Valid values to pass for the waveFormatTag PaWin_InitializeWaveFormatEx and
 
163
    PaWin_InitializeWaveFormatExtensible functions below. These must match
 
164
    the standard Windows WAVE_FORMAT_* values.
 
165
*/
 
166
#define PAWIN_WAVE_FORMAT_PCM               (1)
 
167
#define PAWIN_WAVE_FORMAT_IEEE_FLOAT        (3)
 
168
#define PAWIN_WAVE_FORMAT_DOLBY_AC3_SPDIF   (0x0092)
 
169
#define PAWIN_WAVE_FORMAT_WMA_SPDIF         (0x0164)
 
170
 
 
171
 
 
172
/*
 
173
    returns PAWIN_WAVE_FORMAT_PCM or PAWIN_WAVE_FORMAT_IEEE_FLOAT
 
174
    depending on the sampleFormat parameter.
 
175
*/
 
176
int PaWin_SampleFormatToLinearWaveFormatTag( PaSampleFormat sampleFormat );
 
177
 
 
178
/*
 
179
        Use the following two functions to initialize the waveformat structure.
 
180
*/
 
181
 
 
182
void PaWin_InitializeWaveFormatEx( PaWinWaveFormat *waveFormat, 
 
183
                int numChannels, PaSampleFormat sampleFormat, int waveFormatTag, double sampleRate );
 
184
 
 
185
 
 
186
void PaWin_InitializeWaveFormatExtensible( PaWinWaveFormat *waveFormat, 
 
187
                int numChannels, PaSampleFormat sampleFormat, int waveFormatTag, double sampleRate,
 
188
            PaWinWaveFormatChannelMask channelMask );
 
189
 
 
190
 
 
191
/* Map a channel count to a speaker channel mask */
 
192
PaWinWaveFormatChannelMask PaWin_DefaultChannelMask( int numChannels );
 
193
 
 
194
 
 
195
#ifdef __cplusplus
 
196
}
 
197
#endif /* __cplusplus */
 
198
 
 
199
#endif /* PA_WIN_WAVEFORMAT_H */
 
 
b'\\ No newline at end of file'