[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [linrad] RE: Architecture of Linrad
The porting of Linrad to a windowing environment is basically
breaking Linrad into threads and then changing the graphics calls
to something executable by the native windowing system such as
X windows, MS Windows, etc.
There needs to be a "sound system thread", a "dsp" thread(s),
"console" thread(s), "graphics display" thread(s).
sound system is obvious, it sends and receives buffers from the sound
system and the notifies all other threads that need to be notified
to "come and get it". The other threads that need data will be
blocked on or awaiting the data. The dsp thread would process data from the
sound thread and prepare data for the sound thread. The console thread
would handle all set up issues, human interaction issues, etc. The
graphics display thread(s) would prepare data for display and display it.
Written correctly under Linux these threads could easily be separate
processes. Under MS Windows, it is thread or forget it (everything is
I want to do this after the 1.0.0 SDR-1000 console for Windows comes out
and the DttSDR code for Linux comes out soon. Linrad contains many very
desirable features (algorithms) and displays that we could really use
and something besides svga would be nice. Linrad is a wealthy lode of
ore to be mined repeatedly!
I have had the pleasure of learning a lot about alsa, oss, jack, portaudio,
Qt, WxWidgets, MS.NET 2003, and other neat tools that would make this job
in both Linux and MS Windows. MS Windows would afford Linrad the largest
audience but it will require the most work to keep things synchronized and
humming as it is as far from a real time operating system as you can
Linux wasn't either except in embedded forms until the run-up to, and now
full existence of the 2.8 Kernel.
So long as we are not writing in Delphi (sorry Alberto!) I would love to
work on this. It will be easiest by far to do what Brickle (AB2KT)
has been instructing me on and that is do this first in Linux then do it in
Windows (glorified bootloader with Windows glued on).
I really want to have the tools in Linrad at the disposal of the various SDR
communities in a Windowing environment.
[mailto:owner-linrad@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of Bob AH7I
Sent: Saturday, October 23, 2004 8:35 PM
Subject: Re: [linrad] RE: Architecture of Linrad
If you port to windows, please use SDL for graphics.
We will then be able get away from svgalib on linux!
On Sat, 23 Oct 2004, Leif Åsbrink wrote:
> Hi Alberto,
> > Does it exist a documentation of the architecture of Linrad ?
> > Suppose that someone (and please don't read here more than it's written)
> > wants to evaluate the possibility, the effort required and the
> > of porting Linrad to Windows, he would need a detailed breakdown
> > of the functions performed by the umpteen modules of Linrad, together
> > with a description of the whole architecture, both from an eagle-view
> > vision and a more detailed one.
> Everything that exists is published. I think porting to Windows
> or anywhere else should be pretty straightforward because Linrad
> uses very few system calls.
> Basically Linrad needs a function setpixel(x,y,colour) to write the
> specified pixel on screen and another call xy_write(x,y,char) to write
> a character on the screen.
> > I browsed briefly the source code,
> > but the comments are almost non existant.
> I think this is a little unfair. There is a text block for each
> processing block describing what the block is intended to do.
> There are no comments at the level of individual instructions,
> I do not think it would be cost efficient. Far more work for me
> writing them than work they would save to others.
> > Does such document exist, even if unpublished?
> "such document" is a bit unspecific. I am not a programmer and
> I do not know what the word "architecture" stands for in this
> context. The block diagram of Linrad can be found at for
> example ....../linroot.htm. How to describe the code in terms
> of architecture is beyond my skils. To me it is just simple
> straight code.
> Leif / SM5BSZ