summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2014-12-22 09:45:51 -0600
committerWaldemar Brodkorb <wbx@openadk.org>2014-12-22 09:46:18 -0600
commit6d2c9a84bd15a1ac2213e94ab3170d9b8336726e (patch)
tree6d206ab771dc5cb030b54a8cd615f7a32feca2d7
parentd18bf841d7c4867c06862147122de5cc2f01b4c6 (diff)
add some improvements to lms
-rw-r--r--package/logitechmediaserver/patches/patch-Slim_Utils_OS_Linux_pm13
-rw-r--r--package/logitechmediaserver/src/Slim/Utils/OS/OpenADK.pm100
2 files changed, 113 insertions, 0 deletions
diff --git a/package/logitechmediaserver/patches/patch-Slim_Utils_OS_Linux_pm b/package/logitechmediaserver/patches/patch-Slim_Utils_OS_Linux_pm
new file mode 100644
index 000000000..6561fe08c
--- /dev/null
+++ b/package/logitechmediaserver/patches/patch-Slim_Utils_OS_Linux_pm
@@ -0,0 +1,13 @@
+--- logitechmediaserver-7.9.0-1418119409-noCPAN.orig/Slim/Utils/OS/Linux.pm 2014-12-08 22:00:23.000000000 -0600
++++ logitechmediaserver-7.9.0-1418119409-noCPAN/Slim/Utils/OS/Linux.pm 2014-12-13 02:11:35.032418001 -0600
+@@ -27,6 +27,10 @@ sub getFlavor {
+
+ return 'Netgear RAIDiator';
+
++ } elsif (-f '/etc/.adktarget') {
++
++ return 'OpenADK';
++
+ } elsif (-f '/etc/squeezeos.version') {
+
+ return 'SqueezeOS';
diff --git a/package/logitechmediaserver/src/Slim/Utils/OS/OpenADK.pm b/package/logitechmediaserver/src/Slim/Utils/OS/OpenADK.pm
new file mode 100644
index 000000000..d82807b05
--- /dev/null
+++ b/package/logitechmediaserver/src/Slim/Utils/OS/OpenADK.pm
@@ -0,0 +1,100 @@
+package Slim::Utils::OS::OpenADK;
+
+# Logitech Media Server Copyright 2001-2011 Logitech.
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License,
+# version 2.
+
+use strict;
+use FindBin qw($Bin);
+
+use base qw(Slim::Utils::OS::Linux);
+
+sub initDetails {
+ my $class = shift;
+
+ $class->{osDetails} = $class->SUPER::initDetails();
+
+ # package specific addition to @INC to cater for plugin locations
+ $class->{osDetails}->{isDebian} = 1 ;
+
+ unshift @INC, '/usr/share/logitechmediaserver';
+ unshift @INC, '/usr/share/logitechmediaserver/CPAN';
+
+ return $class->{osDetails};
+}
+
+=head2 dirsFor( $dir )
+
+Return OS Specific directories.
+
+Argument $dir is a string to indicate which of the server directories we
+need information for.
+
+=cut
+
+sub dirsFor {
+ my ($class, $dir) = @_;
+
+ my @dirs = ();
+
+ if ($dir =~ /^(?:oldprefs|updates)$/) {
+
+ push @dirs, $class->SUPER::dirsFor($dir);
+
+ } elsif ($dir =~ /^(?:Firmware|Graphics|HTML|IR|MySQL|SQL|lib|Bin)$/) {
+
+ push @dirs, "/usr/share/logitechmediaserver/$dir";
+
+ } elsif ($dir eq 'Plugins') {
+
+ push @dirs, $class->SUPER::dirsFor($dir);
+ push @dirs, "/usr/share/perl5/Slim/Plugin", "/usr/share/logitechmediaserver/Plugins";
+
+ } elsif ($dir =~ /^(?:strings|revision)$/) {
+
+ push @dirs, "/usr/share/logitechmediaserver";
+
+ } elsif ($dir eq 'libpath') {
+
+ push @dirs, "/usr/share/logitechmediaserver";
+
+ } elsif ($dir =~ /^(?:types|convert)$/) {
+
+ push @dirs, "/etc/logitechmediaserver";
+
+ } elsif ($dir =~ /^(?:prefs)$/) {
+
+ push @dirs, $::prefsdir || "/var/lib/logitechmediaserver/prefs";
+
+ } elsif ($dir eq 'log') {
+
+ push @dirs, $::logdir || "/var/log/logitechmediaserver";
+
+ } elsif ($dir eq 'cache') {
+
+ push @dirs, $::cachedir || "/var/lib/logitechmediaserver/cache";
+
+ } elsif ($dir =~ /^(?:music|playlists)$/) {
+
+ push @dirs, '';
+
+ } else {
+
+ warn "dirsFor: Didn't find a match request: [$dir]\n";
+ }
+
+ return wantarray() ? @dirs : $dirs[0];
+}
+
+# Bug 9488, always decode on Ubuntu/Debian
+sub decodeExternalHelperPath {
+ return Slim::Utils::Unicode::utf8decode_locale($_[1]);
+}
+
+sub scanner {
+ return '/usr/sbin/logitechmediaserver-scanner';
+}
+
+
+1;