1 /* 2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #ifndef WEBRTC_SOUND_PULSEAUDIOSYMBOLTABLE_H_ 12 #define WEBRTC_SOUND_PULSEAUDIOSYMBOLTABLE_H_ 13 14 #include <pulse/context.h> 15 #include <pulse/def.h> 16 #include <pulse/error.h> 17 #include <pulse/introspect.h> 18 #include <pulse/stream.h> 19 #include <pulse/thread-mainloop.h> 20 21 #include "webrtc/base/latebindingsymboltable.h" 22 23 namespace rtc { 24 25 #define PULSE_AUDIO_SYMBOLS_CLASS_NAME PulseAudioSymbolTable 26 // The PulseAudio symbols we need, as an X-Macro list. 27 // This list must contain precisely every libpulse function that is used in 28 // pulseaudiosoundsystem.cc. 29 #define PULSE_AUDIO_SYMBOLS_LIST \ 30 X(pa_bytes_per_second) \ 31 X(pa_context_connect) \ 32 X(pa_context_disconnect) \ 33 X(pa_context_errno) \ 34 X(pa_context_get_protocol_version) \ 35 X(pa_context_get_server_info) \ 36 X(pa_context_get_sink_info_list) \ 37 X(pa_context_get_sink_input_info) \ 38 X(pa_context_get_source_info_by_index) \ 39 X(pa_context_get_source_info_list) \ 40 X(pa_context_get_state) \ 41 X(pa_context_new) \ 42 X(pa_context_set_sink_input_volume) \ 43 X(pa_context_set_source_volume_by_index) \ 44 X(pa_context_set_state_callback) \ 45 X(pa_context_unref) \ 46 X(pa_cvolume_set) \ 47 X(pa_operation_get_state) \ 48 X(pa_operation_unref) \ 49 X(pa_stream_connect_playback) \ 50 X(pa_stream_connect_record) \ 51 X(pa_stream_disconnect) \ 52 X(pa_stream_drop) \ 53 X(pa_stream_get_device_index) \ 54 X(pa_stream_get_index) \ 55 X(pa_stream_get_latency) \ 56 X(pa_stream_get_sample_spec) \ 57 X(pa_stream_get_state) \ 58 X(pa_stream_new) \ 59 X(pa_stream_peek) \ 60 X(pa_stream_readable_size) \ 61 X(pa_stream_set_buffer_attr) \ 62 X(pa_stream_set_overflow_callback) \ 63 X(pa_stream_set_read_callback) \ 64 X(pa_stream_set_state_callback) \ 65 X(pa_stream_set_underflow_callback) \ 66 X(pa_stream_set_write_callback) \ 67 X(pa_stream_unref) \ 68 X(pa_stream_writable_size) \ 69 X(pa_stream_write) \ 70 X(pa_strerror) \ 71 X(pa_threaded_mainloop_free) \ 72 X(pa_threaded_mainloop_get_api) \ 73 X(pa_threaded_mainloop_lock) \ 74 X(pa_threaded_mainloop_new) \ 75 X(pa_threaded_mainloop_signal) \ 76 X(pa_threaded_mainloop_start) \ 77 X(pa_threaded_mainloop_stop) \ 78 X(pa_threaded_mainloop_unlock) \ 79 X(pa_threaded_mainloop_wait) 80 81 #define LATE_BINDING_SYMBOL_TABLE_CLASS_NAME PULSE_AUDIO_SYMBOLS_CLASS_NAME 82 #define LATE_BINDING_SYMBOL_TABLE_SYMBOLS_LIST PULSE_AUDIO_SYMBOLS_LIST 83 #include "webrtc/base/latebindingsymboltable.h.def" 84 85 } // namespace rtc 86 87 #endif // WEBRTC_SOUND_PULSEAUDIOSYMBOLTABLE_H_ 88