本文整理汇总了C++中pa_context_disconnect函数的典型用法代码示例。如果您正苦于以下问题:C++ pa_context_disconnect函数的具体用法?C++ pa_context_disconnect怎么用?C++ pa_context_disconnect使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了pa_context_disconnect函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: quisk_close_sound_pulseaudio
// Close all streams/contexts/loops and return
void quisk_close_sound_pulseaudio() {
int i = 0;
if (quisk_sound_state.verbose_pulse)
printf("Closing Pulseaudio interfaces \n ");
while (OpenPulseDevices[i]) {
pa_stream_disconnect(OpenPulseDevices[i]);
pa_stream_unref(OpenPulseDevices[i]);
OpenPulseDevices[i] = '\0';
i++;
}
if (quisk_sound_state.verbose_pulse)
printf("Waiting for %d streams to disconnect\n", streams_ready);
while(streams_ready > 0);
if (pa_IQ_ctx) {
pa_context_disconnect(pa_IQ_ctx);
pa_context_unref(pa_IQ_ctx);
}
if (pa_ctx) {
pa_context_disconnect(pa_ctx);
pa_context_unref(pa_ctx);
}
if (pa_ml) {
pa_threaded_mainloop_stop(pa_ml);
pa_threaded_mainloop_free(pa_ml);
}
}
开发者ID:gonesurfing,项目名称:quisk-main,代码行数:35,代码来源:sound_pulseaudio.c
示例2: pa_get_devicelist
int pa_get_devicelist(pa_devicelist_t *output)
{
pa_mainloop *pa_ml = NULL;
pa_mainloop_api *pa_mlapi = NULL;
pa_operation *pa_op = NULL;
pa_context *pa_ctx = NULL;
uint8_t state = 0;
int pa_ready = 0;
memset(output, 0, sizeof(pa_devicelist_t) * 16);
if ( (pa_ml = pa_mainloop_new()) == NULL) return -1;
if ( (pa_mlapi = pa_mainloop_get_api(pa_ml)) == NULL ) return -2;
if ( (pa_ctx = pa_context_new(pa_mlapi, "test")) == NULL) return -3;
pa_context_connect(pa_ctx, NULL, 0, NULL);
pa_context_set_state_callback(pa_ctx, pa_state_cb, &pa_ready);
while (1) {
if (pa_ready == 0) {
pa_mainloop_iterate(pa_ml, 1, NULL);
continue;
}
if (pa_ready == 2) {
pa_context_disconnect(pa_ctx);
pa_context_unref(pa_ctx);
pa_mainloop_free(pa_ml);
return -1;
}
switch (state) {
case 0:
pa_op = pa_context_get_sink_info_list(pa_ctx, pa_sinklist_cb, output);
state++;
break;
case 1:
if (pa_operation_get_state(pa_op) == PA_OPERATION_DONE) {
pa_operation_unref(pa_op);
pa_context_disconnect(pa_ctx);
pa_context_unref(pa_ctx);
pa_mainloop_free(pa_ml);
return 0;
}
break;
default:
return -1;
}
pa_mainloop_iterate(pa_ml, 1, NULL);
}
}
开发者ID:atanyukevich,项目名称:dwmstatusd,代码行数:52,代码来源:pulseaudiovol.c
示例3: main
int main(int argc, const char *argv[])
{
pa_mainloop *pa_ml = NULL;
pa_mainloop_api *pa_mlapi = NULL;
pa_operation *pa_op = NULL;
pa_context *pa_ctx = NULL;
int pa_ready = 0;
int state = 0;
pa_ml = pa_mainloop_new();
pa_mlapi = pa_mainloop_get_api(pa_ml);
pa_ctx = pa_context_new(pa_mlapi, "deepin");
pa_context_connect(pa_ctx, NULL, 0, NULL);
pa_context_set_state_callback(pa_ctx, pa_state_cb, &pa_ready);
for (;;) {
if (pa_ready == 0) {
pa_mainloop_iterate(pa_ml, 1, NULL);
continue;
}
if (pa_ready == 2) {
pa_context_disconnect(pa_ctx);
pa_context_unref(pa_ctx);
pa_mainloop_free(pa_ml);
return -1;
}
switch (state) {
case 0:
pa_op = pa_context_get_source_output_info_list(pa_ctx, pa_source_output_cb, NULL);
state++;
break;
case 1:
if (pa_operation_get_state(pa_op) == PA_OPERATION_DONE) {
pa_operation_unref(pa_op);
pa_context_disconnect(pa_ctx);
pa_context_unref(pa_ctx);
pa_mainloop_free(pa_ml);
return 0;
}
break;
default:
fprintf(stderr, "in state %d\n", state);
return -1;
}
pa_mainloop_iterate(pa_ml, 1, NULL);
}
return 0;
}
开发者ID:martyr-deepin,项目名称:pypulseaudio,代码行数:50,代码来源:pulsesource.c
示例4: pulse_close
static void pulse_close(ALCdevice *device) //{{{
{
pulse_data *data = device->ExtraData;
pa_threaded_mainloop_lock(data->loop);
if(data->stream)
{
pa_stream_disconnect(data->stream);
pa_stream_unref(data->stream);
}
pa_context_disconnect(data->context);
pa_context_unref(data->context);
pa_threaded_mainloop_unlock(data->loop);
pa_threaded_mainloop_stop(data->loop);
pa_threaded_mainloop_free(data->loop);
DestroyRingBuffer(data->ring);
free(data->device_name);
device->ExtraData = NULL;
pa_xfree(data);
} //}}}
开发者ID:siana,项目名称:2p-openal,代码行数:26,代码来源:pulseaudio.c
示例5: rdpsnd_pulse_free
static void
rdpsnd_pulse_free(rdpsndDevicePlugin * devplugin)
{
struct pulse_device_data * pulse_data;
pulse_data = (struct pulse_device_data *) devplugin->device_data;
LLOGLN(10, ("rdpsnd_pulse_free:"));
if (!pulse_data)
return;
rdpsnd_pulse_close(devplugin);
if (pulse_data->mainloop)
{
pa_threaded_mainloop_stop(pulse_data->mainloop);
}
if (pulse_data->context)
{
pa_context_disconnect(pulse_data->context);
pa_context_unref(pulse_data->context);
pulse_data->context = NULL;
}
if (pulse_data->mainloop)
{
pa_threaded_mainloop_free(pulse_data->mainloop);
pulse_data->mainloop = NULL;
}
free(pulse_data);
devplugin->device_data = NULL;
}
开发者ID:nidelius,项目名称:FreeRDP,代码行数:28,代码来源:rdpsnd_pulse.c
示例6: pa_threaded_mainloop_lock
void AudioOutputPulseAudio::CloseDevice()
{
if (mainloop)
pa_threaded_mainloop_lock(mainloop);
if (pstream)
{
FlushStream("CloseDevice");
pa_stream_disconnect(pstream);
pa_stream_unref(pstream);
pstream = NULL;
}
if (pcontext)
{
pa_context_drain(pcontext, NULL, NULL);
pa_context_disconnect(pcontext);
pa_context_unref(pcontext);
pcontext = NULL;
}
if (mainloop)
{
pa_threaded_mainloop_unlock(mainloop);
pa_threaded_mainloop_stop(mainloop);
mainloop = NULL;
}
}
开发者ID:microe,项目名称:mythtv,代码行数:28,代码来源:audiooutputpulse.cpp
示例7: lock
void CAESinkPULSE::Deinitialize()
{
CSingleLock lock(m_sec);
m_IsAllocated = false;
m_passthrough = false;
m_periodSize = 0;
if (m_Stream)
Drain();
if (m_MainLoop)
pa_threaded_mainloop_stop(m_MainLoop);
if (m_Stream)
{
pa_stream_disconnect(m_Stream);
pa_stream_unref(m_Stream);
m_Stream = NULL;
m_IsStreamPaused = false;
}
if (m_Context)
{
pa_context_disconnect(m_Context);
pa_context_unref(m_Context);
m_Context = NULL;
}
if (m_MainLoop)
{
pa_threaded_mainloop_free(m_MainLoop);
m_MainLoop = NULL;
}
}
开发者ID:Karlson2k,项目名称:xbmc,代码行数:34,代码来源:AESinkPULSE.cpp
示例8: RemoveSound
////////////////////////////////////////////////////////////////////////
// REMOVE SOUND
////////////////////////////////////////////////////////////////////////
void RemoveSound (void)
{
if (device.mainloop != NULL)
pa_threaded_mainloop_stop (device.mainloop);
// Release in reverse order of acquisition
if (device.stream != NULL)
{
pa_stream_unref (device.stream);
device.stream = NULL;
}
if (device.context != NULL)
{
pa_context_disconnect (device.context);
pa_context_unref (device.context);
device.context = NULL;
}
if (device.mainloop != NULL)
{
pa_threaded_mainloop_free (device.mainloop);
device.mainloop = NULL;
}
}
开发者ID:DAOWAce,项目名称:pcsxr,代码行数:29,代码来源:pulseaudio.c
示例9: sa_stream_destroy
int
sa_stream_destroy(sa_stream_t *s) {
if (s == NULL) {
return SA_SUCCESS;
}
pthread_mutex_lock(&s->mutex);
s->thread_id = 0;
pthread_mutex_unlock(&s->mutex);
pa_threaded_mainloop_lock(s->m);
pa_stream_disconnect(s->stream);
s->stream = NULL;
pa_context_disconnect(s->context);
pa_context_unref(s->context);
s->context = NULL;
pa_threaded_mainloop_unlock(s->m);
pa_threaded_mainloop_stop(s->m);
pa_threaded_mainloop_free(s->m);
pthread_mutex_destroy(&s->mutex);
while (s->bl_head != NULL) {
sa_buf * next = s->bl_head->next;
free(s->bl_head);
s->bl_head = next;
}
free(s);
return SA_SUCCESS;
}
开发者ID:MozillaOnline,项目名称:gecko-dev,代码行数:32,代码来源:sydney_audio_pulseaudio.c
示例10: finish
/*
* clean up and disconnect
* args:
* pa_ctx - pointer to pulse context
* pa_ml - pointer to pulse mainloop
*
* asserts:
* none
*
* returns:
* none
*/
static void finish(pa_context *pa_ctx, pa_mainloop *pa_ml)
{
/* clean up and disconnect */
pa_context_disconnect(pa_ctx);
pa_context_unref(pa_ctx);
pa_mainloop_free(pa_ml);
}
开发者ID:ChanceLuo,项目名称:rubbish,代码行数:19,代码来源:audio_pulseaudio.c
示例11: pulse_conn_close
void pulse_conn_close(struct pulse_conn_t *conn)
{
int err;
unsigned int i;
uint8_t cmd;
cmd = 1;
err = write(conn->pipe[1], &cmd, 1);
if(err < 0)
fprintf(stderr, "Failed to write to descriptor. %s.", strerror(errno)), exit(1);
pthread_join(conn->thread, NULL);
pa_context_disconnect(conn->context);
pa_context_unref(conn->context);
pa_mainloop_free(conn->loop);
for(i = 0; i < conn->width; i++)
free(conn->buf[i]);
free(conn->buf);
close(conn->pipe[0]);
close(conn->pipe[1]);
free(conn);
}
开发者ID:marcandrysco,项目名称:AudioManipProg,代码行数:25,代码来源:conn.c
示例12: swfdec_playback_close
void
swfdec_playback_close (SwfdecPlayback *sound)
{
pa_operation *op;
#define REMOVE_HANDLER_FULL(obj,func,data,count) G_STMT_START {\
if (g_signal_handlers_disconnect_by_func ((obj), \
G_CALLBACK (func), (data)) != (count)) { \
g_assert_not_reached (); \
} \
} G_STMT_END
#define REMOVE_HANDLER(obj,func,data) REMOVE_HANDLER_FULL (obj, func, data, 1)
while (sound->streams)
swfdec_playback_stream_close (sound->streams->data);
REMOVE_HANDLER (sound->player, advance_before, sound);
REMOVE_HANDLER (sound->player, audio_added, sound);
REMOVE_HANDLER (sound->player, audio_removed, sound);
if (sound->pa != NULL) {
op = pa_context_drain (sound->pa, context_drain_complete, NULL);
if (op == NULL) {
pa_context_disconnect (sound->pa);
pa_context_unref (sound->pa);
} else {
pa_operation_unref (op);
}
pa_glib_mainloop_free (sound->pa_mainloop);
}
g_main_context_unref (sound->context);
g_free (sound);
}
开发者ID:fengye,项目名称:swfdec,代码行数:33,代码来源:swfdec_playback_pulse.c
示例13: Java_com_harrcharr_pulse_PulseContext_disconnect
JNIEXPORT void JNICALL
Java_com_harrcharr_pulse_PulseContext_disconnect(
JNIEnv *jenv, jobject jobj) {
pa_context *c = (pa_context *)get_obj_ptr(jenv, jobj);
pa_context_disconnect(c);
pa_context_unref(c);
}
开发者ID:Amaliya,项目名称:libpulse-android,代码行数:7,代码来源:context.c
示例14: pulse_close
static void pulse_close(void)
{
connected = 0;
if (mainloop)
pa_threaded_mainloop_stop(mainloop);
if (stream) {
pa_stream_disconnect(stream);
pa_stream_unref(stream);
stream = NULL;
}
if (context) {
pa_context_disconnect(context);
pa_context_unref(context);
context = NULL;
}
if (mainloop) {
pa_threaded_mainloop_free(mainloop);
mainloop = NULL;
}
volume_time_event = NULL;
volume_valid = 0;
}
开发者ID:Pitxyoki,项目名称:audacious-plugins,代码行数:27,代码来源:pulse_audio.c
示例15: pulse_close
static void pulse_close(ALCdevice *device)
{
pulse_data *data = device->ExtraData;
pa_threaded_mainloop_lock(data->loop);
if(data->stream)
{
#if PA_CHECK_VERSION(0,9,15)
if(pa_stream_set_buffer_attr_callback)
pa_stream_set_buffer_attr_callback(data->stream, NULL, NULL);
#endif
pa_stream_disconnect(data->stream);
pa_stream_unref(data->stream);
}
pa_context_disconnect(data->context);
pa_context_unref(data->context);
pa_threaded_mainloop_unlock(data->loop);
pa_threaded_mainloop_stop(data->loop);
pa_threaded_mainloop_free(data->loop);
free(data->device_name);
device->ExtraData = NULL;
pa_xfree(data);
}
开发者ID:24BitGames,项目名称:LoomSDK,代码行数:29,代码来源:pulseaudio.c
示例16: gst_pulsemixer_ctrl_close
static void
gst_pulsemixer_ctrl_close (GstPulseMixerCtrl * c)
{
g_assert (c);
if (c->mainloop)
pa_threaded_mainloop_stop (c->mainloop);
if (c->context) {
pa_context_disconnect (c->context);
pa_context_unref (c->context);
c->context = NULL;
}
if (c->mainloop) {
pa_threaded_mainloop_free (c->mainloop);
c->mainloop = NULL;
c->time_event = NULL;
}
if (c->tracklist) {
g_list_free (c->tracklist);
c->tracklist = NULL;
}
if (c->track) {
GST_PULSEMIXER_TRACK (c->track)->control = NULL;
g_object_unref (c->track);
c->track = NULL;
}
}
开发者ID:JJCG,项目名称:gst-plugins-good,代码行数:31,代码来源:pulsemixerctrl.c
示例17: pa_context_disconnect
bool PulseDeviceFinder::Reconnect() {
if (context_) {
pa_context_disconnect(context_);
pa_context_unref(context_);
}
context_ = pa_context_new(pa_mainloop_get_api(mainloop_),
"Clementine device finder");
if (!context_) {
qLog(Warning) << "Failed to create pulseaudio context";
return false;
}
if (pa_context_connect(context_, nullptr, PA_CONTEXT_NOFLAGS, nullptr) < 0) {
qLog(Warning) << "Failed to connect pulseaudio context";
return false;
}
// Wait for the context to be connected.
forever {
const pa_context_state state = pa_context_get_state(context_);
if (state == PA_CONTEXT_FAILED || state == PA_CONTEXT_TERMINATED) {
qLog(Warning) << "Connection to pulseaudio failed";
return false;
}
if (state == PA_CONTEXT_READY) {
return true;
}
pa_mainloop_iterate(mainloop_, true, nullptr);
}
}
开发者ID:Aceler,项目名称:Clementine,代码行数:33,代码来源:pulsedevicefinder.cpp
示例18: uninit
static void uninit(struct ao *ao, bool cut_audio)
{
struct priv *priv = ao->priv;
if (priv->stream && !cut_audio) {
pa_threaded_mainloop_lock(priv->mainloop);
waitop(priv, pa_stream_drain(priv->stream, success_cb, ao));
}
if (priv->mainloop)
pa_threaded_mainloop_stop(priv->mainloop);
if (priv->stream) {
pa_stream_disconnect(priv->stream);
pa_stream_unref(priv->stream);
priv->stream = NULL;
}
if (priv->context) {
pa_context_disconnect(priv->context);
pa_context_unref(priv->context);
priv->context = NULL;
}
if (priv->mainloop) {
pa_threaded_mainloop_free(priv->mainloop);
priv->mainloop = NULL;
}
}
开发者ID:Newbleeto,项目名称:mplayer2,代码行数:28,代码来源:ao_pulse.c
示例19: GM_DEBUG_PRINT
void PulseOutput::close() {
#ifdef DEBUG
context->getReactor().debug();
#endif
if (stream) {
GM_DEBUG_PRINT("[pulse] disconnecting stream\n");
pa_stream_disconnect(stream);
pa_stream_unref(stream);
stream=nullptr;
}
if (pulse_context) {
GM_DEBUG_PRINT("[pulse] disconnecting context\n");
pa_context_disconnect(pulse_context);
pa_context_unref(pulse_context);
pulse_context=nullptr;
}
#ifdef DEBUG
context->getReactor().debug();
#endif
delete pa_io_event::recycle;
delete pa_time_event::recycle;
delete pa_defer_event::recycle;
pa_io_event::recycle = nullptr;
pa_time_event::recycle = nullptr;
pa_defer_event::recycle = nullptr;
pulsevolume = PA_VOLUME_MUTED;
af.reset();
}
开发者ID:gogglesmm,项目名称:gogglesmm,代码行数:31,代码来源:ap_pulse.cpp
示例20: tsmf_pulse_free
static void
tsmf_pulse_free(ITSMFAudioDevice * audio)
{
TSMFPulseAudioDevice * pulse = (TSMFPulseAudioDevice *) audio;
LLOGLN(0, ("tsmf_pulse_free:"));
tsmf_pulse_close_stream(pulse);
if (pulse->mainloop)
{
pa_threaded_mainloop_stop(pulse->mainloop);
}
if (pulse->context)
{
pa_context_disconnect(pulse->context);
pa_context_unref(pulse->context);
pulse->context = NULL;
}
if (pulse->mainloop)
{
pa_threaded_mainloop_free(pulse->mainloop);
pulse->mainloop = NULL;
}
free(pulse);
}
开发者ID:FreeRDP,项目名称:FreeRDP-old,代码行数:25,代码来源:tsmf_pulse.c
注:本文中的pa_context_disconnect函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论