Done a bit more digging and found 'this post'
(http://stackoverflow.com/questions/21094114/how-do-i-detect-the-os-name-in-perl-to-a-particular-version)
suggesting that archname is not the way to detect the running system as
Config only contains the details from the system where Perl was built,
not the one it's running on. In fact I've just noticed that typeing Perl
-V at the command prompt on both my Pi1 and Pi2 not only give identical
results, that it's armv7l, but also that it's an odroidu2 :confused:

So, I've used the suggestion there and now my Utils.pm starts like this:
Code:
--------------------
    package Plugins::ShairTunes2::Utils;
  
  use strict;
  use warnings;
  
  use Config;
  use Digest::MD5 qw(md5 md5_hex);
  
  use POSIX qw(uname);
  
  my %dmapData = (
  artist => '',
  title  => '',
  album  => '',
  );
  
  my %dmaptypes        = getDmapTypes();
  my %dmaptypeToUnpack = (
  '1'  => 'c',
  '3'  => 'n',
  '5'  => 'N',
  '7'  => 'Q',
  '9'  => 'a*',    # utf-8 encoded
  '10' => 'N',
  '11' => 'nn',
  '42' => 'a*',    # this is a local invention - 9 is
  # getting handled as utf-8, but for
  # dpap.picturedata that would be
  # bad m'kay
  );
  
  sub helperBinary {
  my ( $volume, $directory, $file ) = File::Spec->splitpath( __FILE__ );
  my $shairtunes_helper;
  
  if ( $Config{'archname'} =~ /solaris/ ) {
  $shairtunes_helper = $directory . 
"helperBinaries/shairport_helper-i86pc-solaris";
  }
  elsif ( $Config{'archname'} =~ /linux/ ) {
  # arm-linux-gnueabihf-thread-multi-64int
  if ( $Config{'archname'} =~ /arm/ ) {
  if ( uname() =~ /armv7l/ ) {
  $shairtunes_helper = $directory . 
"helperBinaries/shairport_helper-armv7l-linux";
  }
  else {
  $shairtunes_helper = $directory . 
"helperBinaries/shairport_helper-armv6l-linux";
  }
  }
  # x86_64-linux-gnu-thread-multi
  elsif ( $Config{'archname'} =~ /x86_64/ ) {
  $shairtunes_helper = $directory . "helperBinaries/shairport_helper-x64-linux";
  }
  else {
  $shairtunes_helper = $directory . 
"helperBinaries/shairport_helper-i386-linux";
  }
  }
  elsif ( $Config{'archname'} =~ /darwin/ ) {
  $shairtunes_helper = $directory . "helperBinaries/shairport_helper-x64-osx";
  }
  else {
  die( "No shairport_helper binary for your system available." );
  }
  return $shairtunes_helper;
  }
--------------------
Should I compile my helper binary though and send it to you? What's
changed in the source code from StuartUSA's version? I thought you just
changed stuff in the Perl plugin. It seems to work ok for me (artwork
shows up on my SBRadio for example), but if it will get improvements,
I'll remake it now.


------------------------------------------------------------------------
rickwookie's Profile: http://forums.slimdevices.com/member.php?userid=6397
View this thread: http://forums.slimdevices.com/showthread.php?t=100379

_______________________________________________
plugins mailing list
plugins@lists.slimdevices.com
http://lists.slimdevices.com/mailman/listinfo/plugins

Reply via email to