I don't have a linux environment handy to test this on, but the recent
versions of the plugin perl script begain to be structured in a way
should make at least a minimal linux/brutefir implementation reasonably
straightforward.  Here a few notes on the bits you'll need to change to
move in that direction.

Looking at "plugin.pm" version 0.9.9:

#52: use Win32;
(now I wish I'd specified qw/ exactly which Win32 package methods are
called.  Anyhow; this line obviously needs to go away in a linux
version).

#75: my $convolver = "InguzDSP";
(change to "brutefir")

#153: return ($::VERSION ge '6.1') && Slim::Utils::OSDetect::OS() eq
'win';
(well, duh, change that)

160: my $appdata = Win32::GetFolderPath(Win32::CSIDL_COMMON_APPDATA);
(this returns the windows path for \Documents and Settings\All
Users\Application Data\ under which the InguzEQ\ folder is created -
this is where all the config stuff is saved to disk by the plugin and
read by the dsp.)
('mkdir' in the rest of that sub I think is part of the Win32::
package)

#970: [$CONVAPP$] -d 16 -id "$CLIENTID$" -r $RATE$
(from line 964 onward - the various transcode blocks pipe the audio
stream through the $CONVAPP$ process.  The other flags are commandline
parameters telling my dsp how to process the audio.  The important
flags below:)

-id <xx>: ID of the squeezebox, see below.
-d <nn>:  number of bits per sample in the convolver's output stream.
-r <nn>:  number of samples per second (44100, usually)
-wav:  flag saying to expect a WAV file header instead of raw PCM
-input <xx>:  read input from a file instead of stdin
-be:  flag saying to expect big-endian data instead of little-endian

The main flag a brutefir implementation will need some thought around
is the "-id" flag.  The value after this is the MAC address of the
squeezebox which is playing the current stream.  This ID is used to
find a configuration file "<id>.settings.conf" in the
$pluginSettingsDataDir directory.  (see 'sub getPrefFile').  That
settings file (xml) is where all the stuff like EQ bands, the path to
the currently selected impulse file, and so on.  Of course a trivial
implementation supporting only one squeezebox per server doesn't need
that flag quite so much - you could hardcode the filter path and so
on...


-- 
inguz
------------------------------------------------------------------------
inguz's Profile: http://forums.slimdevices.com/member.php?userid=1139
View this thread: http://forums.slimdevices.com/showthread.php?t=25381

_______________________________________________
audiophiles mailing list
[email protected]
http://lists.slimdevices.com/lists/listinfo/audiophiles

Reply via email to