[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] initial gr-audio-portaudio
From: |
Martin Dvh |
Subject: |
Re: [Discuss-gnuradio] initial gr-audio-portaudio |
Date: |
Mon, 13 Mar 2006 15:52:25 +0100 |
User-agent: |
Debian Thunderbird 1.0.2 (X11/20051002) |
Stephane Fillod wrote:
> On Sun, Mar 12, 2006 at 02:36:21PM -0500, Robert McGwier wrote:
>
>>That is why I put the message out. It will be good to have a working
>>starting point.
>
>
> Okay, there it is. Just checked in to gr-audio-portaudio repository.
> It's somewhat working, but there's still some static in the audio
> output (tested with ALSA playback, mono and stereo). Some more work
> is needed.
>
> You will need the attached patchs:
>
> - against gnuradio-core: ot_gri_ringbuffer.patch
> * src/lib/omnithread/omnithread.h: add omni_mutex::trylock
> * src/lib/general/gri_ringbuffer.{cc,h},
> src/lib/general/Makefile.am: new lockless ringbuffer (single
> reader/single writer) taken from JACK software (GPL).
>
> - against portaudio-V19(CVS): portaudio-pkg-config.patch
> * pkg-config .pc file with proper THREAD_FLAGS
>
> The code should be portable. I was missing the native Win32 call for
> mutex_trylock, so someone will have to find it, and define
> OMNI_MUTEX_TRYLOCK_IMPLEMENTATION in src/lib/omnithread/ot_nt.h,
> with appropriate semantic (return value).
I think you can do this with TryEnterCriticalSection
You could also use the omni_semaphore class defined in
gnuradio-core/src/lib/omnithread/nt.cc
This latter one uses CreateSemaphore and WaitForSingleObject with some wrapper
code.
(you probably have to change all defines if you change to using omni_semaphore)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/tryentercriticalsection.asp
http://msdn.microsoft.com/library/en-us/dllproc/base/createsemaphore.asp?frame=true
http://msdn.microsoft.com/library/en-us/dllproc/base/waitforsingleobject.asp?frame=true
Another example of how it can be used (very much like our omni_semaphore class)
http://users.pandora.be/robert.deblier/beecrypt/mutex_8h-source.html
I don't have time to implement and test right now.
(I am working hard on finishing my gnuradio presentation for wednessday in
Limburg)
If nobody implements it this week I will have a look next week.
greetings,
Martin
> The gri_pa_find_device_by_name() function will have to be made more
> smart, like accepting which HostApi (ALSA, JACK, ..) is to be chosen,
> and which device from this API. A syntax will have to be agreed upon,
> like "ALSA:hw:0" or "OSS:/dev/dsp1".
>
> Have fun,
- Re: [Discuss-gnuradio] gri_ringbuffer.{h,cc}, (continued)
- Re: [Discuss-gnuradio] gri_ringbuffer.{h,cc}, Stephane Fillod, 2006/03/13
- Re: [Discuss-gnuradio] initial gr-audio-portaudio, Thomas Schmid, 2006/03/12
- Re: [Discuss-gnuradio] initial gr-audio-portaudio, Robert McGwier, 2006/03/12
- Re: [Discuss-gnuradio] initial gr-audio-portaudio, Stephane Fillod, 2006/03/13
- Re: [Discuss-gnuradio] initial gr-audio-portaudio, Thomas Schmid, 2006/03/12
- Re: [Discuss-gnuradio] initial gr-audio-portaudio, Stephane Fillod, 2006/03/13
- Re: [Discuss-gnuradio] initial gr-audio-portaudio, Thomas Schmid, 2006/03/13
- Re: [Discuss-gnuradio] initial gr-audio-portaudio,
Martin Dvh <=
- Re: [Discuss-gnuradio] initial gr-audio-portaudio, Stephane Fillod, 2006/03/13
- Re: [Discuss-gnuradio] initial gr-audio-portaudio, Robert McGwier, 2006/03/13
Re: [Discuss-gnuradio] FFTW 3.1/ PortAudio, Martin Dvh, 2006/03/12