blob: 2de7410123852c238eb6214ecc226a67bda22ef2 [file] [log] [blame]
// Copyright 2019 The Cobalt Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef STARBOARD_SHARED_PULSE_PULSE_DYNAMIC_LOAD_DISPATCHER_H_
#define STARBOARD_SHARED_PULSE_PULSE_DYNAMIC_LOAD_DISPATCHER_H_
#include <pulse/pulseaudio.h>
#include "starboard/shared/internal_only.h"
namespace starboard {
namespace shared {
namespace pulse {
bool pulse_load_library();
void pulse_unload_library();
extern int (*pa_context_connect)(pa_context*,
const char*,
pa_context_flags_t,
const pa_spawn_api*);
extern void (*pa_context_disconnect)(pa_context*);
extern pa_context_state_t (*pa_context_get_state)(pa_context*);
extern pa_context* (*pa_context_new)(pa_mainloop_api*, const char*);
extern void (*pa_context_set_state_callback)(pa_context*,
pa_context_notify_cb_t,
void*);
extern void (*pa_context_unref)(pa_context*);
extern size_t (*pa_frame_size)(const pa_sample_spec*);
extern void (*pa_mainloop_free)(pa_mainloop*);
extern pa_mainloop_api* (*pa_mainloop_get_api)(pa_mainloop*);
extern int (*pa_mainloop_iterate)(pa_mainloop*, int, int*);
extern pa_mainloop* (*pa_mainloop_new)(void);
extern void (*pa_operation_unref)(pa_operation*);
extern int (*pa_stream_connect_playback)(pa_stream*,
const char*,
const pa_buffer_attr*,
pa_stream_flags_t,
const pa_cvolume*,
pa_stream*);
extern pa_operation* (*pa_stream_cork)(pa_stream*,
int,
pa_stream_success_cb_t,
void*);
extern int (*pa_stream_disconnect)(pa_stream*);
extern pa_stream_state_t (*pa_stream_get_state)(pa_stream*);
extern int (*pa_stream_get_time)(pa_stream*, pa_usec_t*);
extern int (*pa_stream_is_corked)(pa_stream*);
extern pa_stream* (*pa_stream_new)(pa_context*,
const char*,
const pa_sample_spec*,
const pa_channel_map*);
extern void (*pa_stream_set_underflow_callback)(pa_stream*,
pa_stream_notify_cb_t,
void*);
extern void (*pa_stream_set_write_callback)(pa_stream*,
pa_stream_request_cb_t,
void*);
extern void (*pa_stream_unref)(pa_stream*);
extern size_t (*pa_stream_writable_size)(pa_stream*);
extern int (*pa_stream_write)(pa_stream*,
const void*,
size_t,
pa_free_cb_t,
int64_t,
pa_seek_mode_t);
} // namespace pulse
} // namespace shared
} // namespace starboard
#endif // STARBOARD_SHARED_PULSE_PULSE_DYNAMIC_LOAD_DISPATCHER_H_