libguac
0.8.2
Main Page
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
guacamole
audio.h
Go to the documentation of this file.
1
2
/* ***** BEGIN LICENSE BLOCK *****
3
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
4
*
5
* The contents of this file are subject to the Mozilla Public License Version
6
* 1.1 (the "License"); you may not use this file except in compliance with
7
* the License. You may obtain a copy of the License at
8
* http://www.mozilla.org/MPL/
9
*
10
* Software distributed under the License is distributed on an "AS IS" basis,
11
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12
* for the specific language governing rights and limitations under the
13
* License.
14
*
15
* The Original Code is libguac.
16
*
17
* The Initial Developer of the Original Code is
18
* Michael Jumper.
19
* Portions created by the Initial Developer are Copyright (C) 2010
20
* the Initial Developer. All Rights Reserved.
21
*
22
* Contributor(s):
23
*
24
* Alternatively, the contents of this file may be used under the terms of
25
* either the GNU General Public License Version 2 or later (the "GPL"), or
26
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
27
* in which case the provisions of the GPL or the LGPL are applicable instead
28
* of those above. If you wish to allow use of your version of this file only
29
* under the terms of either the GPL or the LGPL, and not to allow others to
30
* use your version of this file under the terms of the MPL, indicate your
31
* decision by deleting the provisions above and replace them with the notice
32
* and other provisions required by the GPL or the LGPL. If you do not delete
33
* the provisions above, a recipient may use your version of this file under
34
* the terms of any one of the MPL, the GPL or the LGPL.
35
*
36
* ***** END LICENSE BLOCK ***** */
37
38
#ifndef __GUAC_AUDIO_H
39
#define __GUAC_AUDIO_H
40
41
#include <
guacamole/client.h
>
42
#include <
guacamole/stream.h
>
43
50
typedef
struct
guac_audio_stream
guac_audio_stream
;
51
55
typedef
void
guac_audio_encoder_begin_handler
(
guac_audio_stream
* audio);
56
60
typedef
void
guac_audio_encoder_end_handler
(
guac_audio_stream
* audio);
61
65
typedef
void
guac_audio_encoder_write_handler
(
guac_audio_stream
* audio,
66
const
unsigned
char
*
pcm_data
,
int
length
);
67
71
typedef
struct
guac_audio_encoder
{
72
77
const
char
*
mimetype
;
78
82
guac_audio_encoder_begin_handler
*
begin_handler
;
83
87
guac_audio_encoder_write_handler
*
write_handler
;
88
92
guac_audio_encoder_end_handler
*
end_handler
;
93
94
}
guac_audio_encoder
;
95
101
struct
guac_audio_stream
{
102
106
unsigned
char
*
pcm_data
;
107
111
int
used
;
112
116
int
length
;
117
121
unsigned
char
*
encoded_data
;
122
126
int
encoded_data_used
;
127
131
int
encoded_data_length
;
132
137
guac_audio_encoder
*
encoder
;
138
142
guac_client
*
client
;
143
147
guac_stream
*
stream
;
148
152
int
rate
;
153
158
int
channels
;
159
164
int
bps
;
165
169
int
pcm_bytes_written
;
170
174
void
*
data
;
175
176
};
177
192
guac_audio_stream
*
guac_audio_stream_alloc
(
guac_client
* client,
193
guac_audio_encoder
* encoder);
194
200
void
guac_audio_stream_free
(
guac_audio_stream
* stream);
201
212
void
guac_audio_stream_begin
(
guac_audio_stream
* stream,
int
rate,
int
channels,
int
bps);
213
221
void
guac_audio_stream_end
(
guac_audio_stream
* stream);
222
233
void
guac_audio_stream_write_pcm
(
guac_audio_stream
* stream,
234
const
unsigned
char
* data,
int
length);
235
241
void
guac_audio_stream_flush
(
guac_audio_stream
* stream);
242
253
void
guac_audio_stream_write_encoded
(
guac_audio_stream
* audio,
254
const
unsigned
char
* data,
int
length);
255
256
#endif
257
Generated on Fri Mar 28 2014 21:41:58 for libguac by
1.8.1.2