[pulseaudio-discuss] pa_context_set_source_volume_by_index() failed

pfl pfl at messofts.be
Fri Oct 28 17:58:28 UTC 2016


I tried to implement it but I cant connect anymore

"context_state_callback" is called only once with the state 
PA_CONTEXT_CONNECTING and is never called back

I tried using pa_threaded_mainloop_lock(mainloop); and 
pa_threaded_mainloop_unlock(mainloop); around my waiting loop but it 
does not work either

Audio::Audio()
{
     mainloop=pa_threaded_mainloop_new();
     api = pa_threaded_mainloop_get_api(mainloop);

     pa_proplist *proplist = pa_proplist_new();
     pa_proplist_sets(proplist, PA_PROP_APPLICATION_NAME, "PulseAudio 
Volume Control");
     pa_proplist_sets(proplist, PA_PROP_APPLICATION_ID, 
"org.PulseAudio.pavucontrol");
     pa_proplist_sets(proplist, PA_PROP_APPLICATION_ICON_NAME, 
"audio-card");
     pa_proplist_sets(proplist, PA_PROP_APPLICATION_VERSION, "1.0");

     context = pa_context_new_with_proplist(api, NULL, proplist);
     pa_proplist_free(proplist);

     pa_context_set_state_callback(context, context_state_callback, NULL);

     pa_context_connect(context, NULL, PA_CONTEXT_NOFAIL, NULL);

     pa_threaded_mainloop_start(mainloop);

     do
     {
     }
     while(toTreat!=0);

}


Le 28/10/2016 à 17:54, pfl a écrit :
> I'll check it out thanks :-)
>
>
> Le 28/10/2016 à 17:32, Tanu Kaskinen a écrit :
>> On Fri, 2016-10-28 at 17:20 +0200, pfl wrote:
>>> ah yes, I forgot the main loop
>>>
>>> the problem is that the set volume part is only a small part of my 
>>> program
>>>
>>> so I'll have to put that lop in a thread
>> Note that libpulse is not thread-safe, so if you create a new thread
>> where you run pa_mainloop_run() and then call
>> pa_context_set_sink_volume_by_index() from another thread without first
>> somehow making sure that the mainloop thread is stopped, that's going
>> to break. One solution to this is to use the threaded main loop:
>> https://freedesktop.org/software/pulseaudio/doxygen/threaded_mainloop.html 
>>
>>
>
>
> ---
> L'absence de virus dans ce courrier électronique a été vérifiée par le 
> logiciel antivirus Avast.
> https://www.avast.com/antivirus
>
> _______________________________________________
> pulseaudio-discuss mailing list
> pulseaudio-discuss at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus



More information about the pulseaudio-discuss mailing list