Re: [LAD] Can someone add 2 features to Kluppe?

From: Robin Gareus <robin@email-addr-hidden>
Date: Tue Jul 20 2010 - 15:16:55 EEST

On 07/20/2010 01:48 PM, Patrick Shirkey wrote:
> On 07/20/2010 06:54 PM, Robin Gareus wrote:
>> On 07/20/2010 09:17 AM, Patrick Shirkey wrote:
>>
>>> On 07/20/2010 09:45 AM, Robin Gareus wrote:
>>>
>>>> On 07/20/2010 01:06 AM, Louigi Verona wrote:
>>>>
>>>>
>>>>> Hey guys!
>>>>>
>>>>> Some time ago I have asked someone to look into Kluppe and add a
>>>>> couple of
>>>>> features.
>>>>> My request was not ignored and Patrick Shirkey was kind enough to
>>>>> volunteer
>>>>> to try to help.
>>>>>
>>>>> However, he came upon a difficulty and that is - *how do you set up an
>>>>> asynchronous timer in C?*
>>>>>
>>>>>
>>>> It depends what you need that timer for.
>>>>
>>>>
>>>>
>>> The timer is needed to countdown the period between stopping and
>>> restarting the loop. The methods I have tried all halt the playback on a
>>> single frame and the ui also becomes unresponsive while the timer is in
>>> process.
>>>
>> That sounds like it needs to be be quite accurate, or not?
>>
>>
>
> It just needs to work ;-)

Are you really sure? :-p

>>> All I would like to do is pass a zero byte to the audio signal handling
>>> code while the timer is in progress. The rest of the interface should
>>> stay active.
>>>
>> A simple approach might be to just set a counter and have the
>> audio-process count it down (in audio-samples). Once it reaches zero:
>> play again.
>>
>>
>
> The problem is how to set a counter that doesn't block the rest of the
> app while it is in process.
>

Outline:

global:
static long int mycounter = 0;

main-thread:
 if (need_to pause) mycounter = time_to_pause * sample_rate;

audio-thread:
 if (mycounter > 0) { mycounter -= samples_processed_here; }
 if (mycounter > 0) mute;
 else play;

The 'mycounter' variable does not need to be global. It can be part of
the track struct or class eg. track->mutecounter.
..and eventually you implement it to be sample-accurate (the above is
just an outline).

Cheers!
robin

-- 
Robin Gareus                           mail: robin@email-addr-hidden
site: http://gareus.org/               chat: xmpp:rgareus@email-addr-hidden
blog: http://rg42.org/                 lab : http://citu.fr/
Public Key at http://pgp.mit.edu/
Fingerprint : 7107 840B 4DC9 C948 076D 6359 7955 24F1 4F95 2B42
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Received on Tue Jul 20 16:15:02 2010

This archive was generated by hypermail 2.1.8 : Tue Jul 20 2010 - 16:15:02 EEST