Radiator supports
plugins (finally ;-)
|
Downloads: Radiator SDK - development kit (28/04/2001 - 182 kB) - plugin tester, sample plugin with source (Delphi 4.0), commented use of direct port access Radiator command line utility (01/10/2001 - 18 kB) - sample application with source (Delphi 4.0) Radiator remote control sample application (30/09/2001 - 123 kB) - sample application with source (Delphi 4.0) Radiator global hot key control by Alexey Hakimzyanov (4 kB) bt8x8 plugin +
driver grappler (ver 1.2 - self installing
plugin + driver 179 kB) - plugin
created by Mike Crash bt8x8wdmfm plugin
(ver 1.1 - 31/05/2001 - 14 kB) - plugin created by Ivan Uskov
(latest universal bt8x8 WDM-drivers with FM-Mode support
available on http://ivus.tele-kom.ru
or here)
|
|
|
GemTek PCI
direct access plugin (ver. 1.1.2, 26/02/2002 - 5 kB) - plugin created by
Alex Brukhoff Plugin for IRAssistant made by Elso Andras with source (118 kB) RadioTrack
II plugin (07/09/2001 - 5 kB) - plugin created with possibility to
switch mono/stereo by Josef
Kucera (www
page) GemTek PCI plugin
(ver. 1.04, 04/06/2001 - 82 kB) - plugin created by Vasily Zaitsev SoundForte
SF64-PCE plugin (ver 1.00, 25/07/2001 - 23 kB) - plugin created by Peter Klyushkin (www
page) SoundForte
SF64-PCR plugin
(ver 1.03, 02/07/2001 - 58 kB) - plugin created by Alexey Hakimzyanov SoundForte
SF16-FMR plugin (04/06/2001 - 17 kB) - plugin created by Ladislav
Palider (Kefa) SoundForte
SF16-FMR2 plugin (ver 1.01, 02/07/2001 - 61 kB) - plugin created by Alexey Hakimzyanov ProVideo 951 plugin
(ver. 1.02, 30/09/2001 - 58 kB) - plugin created by Alexey Hakimzyanov ProVideo 951
alternative plugin (ver. 0.1 beta, 13/01/2003 - 124 kB) - plugin created by
Marek Ingr
|
|
Plugins directory:
Plugins should be stored in Radiator's subdirectory Plugins (for example c:\Program
Files\Radiator\Plugins).
If there are any file(s) that plugin needs they should be stored there also. If plugin needs to save its configuration PREFERABLY USE
plugins.ini file in Plugins subdirectory.
Items should be stored in plugins.ini file in the following form:
[name of the module] ;for example [sf16fmi] for sf16fmi.dll plugin
entry=value ;for example Port=$384
How to develop own driver (plugin) for Radiator:
The idea originally came from well-known MikeCrash. He made his own application (AFM radio) which was designed for BT878 based cards but his application could accept plugins for other cards as well.
Some time after we created the first proposal of the new plugins interface which included more functions and possibilities.
The Radiator plugins interface is strongly based on our given standard.
Interface:
Here is the list of functions and procedures which the Radiator plugin
exports.
The sentence Radiator does not use it yet.
means that although Radiator does not take benefit from these functions, it is
planned to do so in next versions.
| Required in all plugins | Description |
| function GetModuleName: PChar; stdcall; | Exported name of the module. Must not be empty for Radiator to recognize the plugin. |
| function GetModuleInfo: Cardinal; stdcall; | Gives info of plugin possibilities. The result
are ORed "module supports" constants: eg. FM_TUNE or FM_MUTEUNMUTE which is the same as FM_TUNE + FM_MUTEUNMUTE Result would be 1 + 4 = 5. |
| function HWInit: Boolean; stdcall; | Initializes hardware. |
| function HWDeInit: Boolean; stdcall; | Deinitializes hardware. |
| Optional | Description |
| function GetModuleComment: PChar; stdcall; | Description, copyright etc. |
| procedure TuneFreq (Freq: LongInt); stdcall; | Matches FM_TUNE. Frequency is given in kHz (88.2 MHz -> 88200 kHz). |
| procedure TuneFreqMuted (Freq: LongInt); stdcall; | Matches FM_TUNEMUTED. Frequency is given in kHz (88.2 MHz -> 88200 kHz). |
| procedure SetMute (Mute: Boolean); stdcall; | Matches FM_MUTEUNMUTE. |
| function ScanStation (DirectionUp:Boolean; FreqToSearchFrom: LongInt): LongInt;
stdcall; Radiator uses it since 1.6.1.0. |
Matches FM_SCANSTATION.
Parameters are direction (up to high range - True or down to low range - False) and current frequency to search from. Returns new frequency. |
| function GetVolume: Word; stdcall; Radiator does not use it yet. |
Matches GETVOLUME. |
| procedure SetVolume (Left,Right: Word);
stdcall; Radiator does not use it yet. |
Matches FM_SETVOLUMEBYVALUE. |
| procedure VolumeUpDown(Step: Integer); stdcall; | Matches FM_SETVOLUMEUPDOWN. |
| procedure SetBass(Bass: Word);
stdcall; Radiator does not use it yet. |
Matches FM_BASSTREBLE. |
| function GetBass: Word; stdcall; Radiator does not use it yet. |
Matches FM_BASSTREBLE. |
| procedure SetTreble(Treble: Word);
stdcall; Radiator does not use it yet. |
Matches FM_BASSTREBLE. |
| function GetTreble: Word; stdcall; Radiator does not use it yet. |
Matches FM_BASSTREBLE. |
| function IsStereo: Boolean; stdcall; Radiator does not use it yet. |
Matches FM_ISSTEREO. |
| procedure SetStereo (Stereo: Boolean); stdcall; | Matches FM_SETSTEREO. |
| function GetSignal: Word; stdcall; | Matches FM_GETSIGNAL. |
| procedure ConfigurationDialog; stdcall; | Matches FM_CONFIGURATIONDIALOG. |
Functions to use for direct port access:
Direct access to port is performed by dlportio.dll shipped and installed with Radiator.
DO NOT USE YOUR OWN DRIVERS NOR DIRECT ASM PORT DIRECTIVES - IT WOULD BE UNNECESSARY AND
REDUNDANT. Port access by asm directives does not work on NT based systems.
Default path where the plugins are installed is RADIATOR_PATH+PLUGINS_PATH (for
example in c:\Program Files\Radiator\Plugins)
Dlportio.dll is always in RADIATOR_PATH directory, where it can be
accessed.
function GetPortByte(Address : Word) : Byte;
procedure SetPortByte(Address : Word; Data : Byte);
function GetPortWord(Address : Word) : Word;
procedure SetPortWord(Address : Word; Data : Word);
function GetPortDWord(Address : Word) : Longword;
procedure SetPortDWord(Address : Word; Data : Longword);
function OpenDriver: Boolean;
procedure CloseDriver;
| Constant | Decimal value | Description |
| FM_TUNE= 1 shl 0; | 1 | Supports setting frequency. |
| FM_TUNEMUTED= 1 shl 1; | 2 | Supports setting frequency "silently". Output is muted, but frequency is set. Then just unmute to hear it. |
| FM_MUTEUNMUTE= 1 shl 2; | 4 | Supports muting/unmuting. |
| FM_GETVOLUME= 1 shl 3; | 8 | Supports GetVolume function. |
| FM_SETVOLUMEBYVALUE= 1 shl 4; | 16 | Supports setting volume "digitally" by setting a value. |
| FM_SETVOLUMEUPDOWN= 1 shl 5; | 32 | Supports setting volume up and down by discrete steps (this is how Radiator works now). |
| FM_BASSTREBLE= 1 shl 6; | 64 | Supports bass & treble. |
| FM_ISSTEREO= 1 shl 7; | 128 | Supports stereo identification. |
| FM_SETSTEREO= 1 shl 8; | 256 | Also called forced stereo or mono. |
| FM_GETSIGNAL= 1 shl 9; | 512 | Station is/is not tuned to signal. |
| FM_AMRANGE= 1 shl 10; | 1024 | Supports AM range (not prepared in Radiator now). |
| FM_RDS= 1 shl 11; | 2048 | Supports RDS - not prepared in any way yet ;-). |
| FM_SCANSTATION= 1 shl 12; | 4096 | Supports scanning - parameters are direction (up to high range - True or down to low range - False) and current frequency to search from. Return is new frequency. |
| FM_CONFIGURATIONDIALOG= 1 shl 16; | 65536 | Supports configuration dialog. |
There is sample sf16fmi plugin included in the developer pack together with its source code in Delphi (Object Pascal) so you can get inspiration from there.
How to make the plugin available for other users of Radiator:
Send it to [email protected] and I will add it for download :-)
Visitors since 14/02/1999
Statistics for the 1st year
Made in Czech Republic. © 1999 - 2004 Miroslav Flesko
Any comments and suggestions: [email protected]
Main site on flesko.cz / Mirror on
FortuneCity
Last updated: 14/01/03 08:51