[Slim-Checkins] r11757 - in /trunk/server/Slim/Plugin/iTunes: Common.pm HTML/EN/plugins/iTunes/settings/itunes.html Importer.pm Plugin.pm Settings.pm
adrian at svn.slimdevices.com
adrian at svn.slimdevices.com
Thu Apr 12 15:01:22 PDT 2007
Author: adrian
Date: Thu Apr 12 15:01:21 2007
New Revision: 11757
URL: http://svn.slimdevices.com?rev=11757&view=rev
Log:
Bug: N/A
Description: migrate itunes to new prefs
Modified:
trunk/server/Slim/Plugin/iTunes/Common.pm
trunk/server/Slim/Plugin/iTunes/HTML/EN/plugins/iTunes/settings/itunes.html
trunk/server/Slim/Plugin/iTunes/Importer.pm
trunk/server/Slim/Plugin/iTunes/Plugin.pm
trunk/server/Slim/Plugin/iTunes/Settings.pm
Modified: trunk/server/Slim/Plugin/iTunes/Common.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Plugin/iTunes/Common.pm?rev=11757&r1=11756&r2=11757&view=diff
==============================================================================
--- trunk/server/Slim/Plugin/iTunes/Common.pm (original)
+++ trunk/server/Slim/Plugin/iTunes/Common.pm Thu Apr 12 15:01:21 2007
@@ -35,8 +35,11 @@
use Slim::Utils::Log;
use Slim::Utils::Misc;
use Slim::Utils::Strings qw(string);
+use Slim::Utils::Prefs;
my $log = logger('plugin.itunes');
+
+my $prefs = preferences('plugin.itunes');
{
my $class = __PACKAGE__;
@@ -56,10 +59,10 @@
my $newValue = shift;
if (defined($newValue)) {
- Slim::Utils::Prefs::set('itunes', $newValue);
- }
-
- my $use = Slim::Utils::Prefs::get('itunes');
+ $prefs->set('itunes', $newValue);
+ }
+
+ my $use = $prefs->get('itunes');
my $can = $class->canUseiTunesLibrary();
Slim::Music::Import->useImporter($class, $use && $can);
@@ -147,7 +150,7 @@
sub findMusicLibraryFile {
my $class = shift;
- my $explicit_xml_path = Slim::Utils::Prefs::get('itunes_library_xml_path');
+ my $explicit_xml_path = $prefs->get('xml_file');
if ($explicit_xml_path) {
@@ -170,7 +173,7 @@
$log->info("Found path via iTunes preferences at: $path");
- Slim::Utils::Prefs::set( 'itunes_library_xml_path', $path );
+ $prefs->set('xml_file', $path );
return $path;
}
@@ -181,7 +184,7 @@
$log->info("Found path via Windows registry at: $path");
- Slim::Utils::Prefs::set( 'itunes_library_xml_path', $path );
+ $prefs->set('xml_file', $path );
return $path;
}
@@ -238,7 +241,7 @@
if ($fileMTime > $lastiTunesChange) {
- my $scanInterval = Slim::Utils::Prefs::get('itunesscaninterval');
+ my $scanInterval = $prefs->get('scan_interval');
$log->debug("lastiTunesChange: " . scalar localtime($lastiTunesChange));
$log->debug("lastScanTime : $lastScanTime");
@@ -283,7 +286,7 @@
my $stripped = $class->strip_automounter($location);
# on non-mac or windows, we need to substitute the itunes library path for the one in the iTunes xml file
- my $explicit_path = Slim::Utils::Prefs::get('itunes_library_music_path');
+ my $explicit_path = $prefs->get('music_path');
if ( $explicit_path && !$fallback ) {
@@ -333,29 +336,28 @@
sub checkDefaults {
my $class = shift;
- if (!Slim::Utils::Prefs::isDefined('itunesscaninterval')) {
-
- Slim::Utils::Prefs::set('itunesscaninterval', $class->iTunesScanInterval);
- }
-
- if (!Slim::Utils::Prefs::isDefined('iTunesplaylistprefix')) {
- Slim::Utils::Prefs::set('iTunesplaylistprefix','iTunes: ');
- }
-
- if (!Slim::Utils::Prefs::isDefined('iTunesplaylistsuffix')) {
- Slim::Utils::Prefs::set('iTunesplaylistsuffix','');
- }
-
- if (!Slim::Utils::Prefs::isDefined('ignoredisableditunestracks')) {
- Slim::Utils::Prefs::set('ignoredisableditunestracks',0);
- }
-
- if (!Slim::Utils::Prefs::isDefined('lastITunesMusicLibraryDate')) {
- Slim::Utils::Prefs::set('lastITunesMusicLibraryDate',0);
- }
-
- if (!Slim::Utils::Prefs::isDefined('itunes') && defined findMusicLibraryFile()) {
- Slim::Utils::Prefs::set('itunes', 1);
+ if (!defined $prefs->get('scan_interval')) {
+ $prefs->set('scan_interval', $class->iTunesScanInterval);
+ }
+
+ if (!defined $prefs->get('playlist_prefix')) {
+ $prefs->set('playlist_prefix','iTunes: ');
+ }
+
+ if (!defined $prefs->get('playlist_suffix')) {
+ $prefs->set('playlist_suffix','');
+ }
+
+ if (!defined $prefs->get('ignore_disabled')) {
+ $prefs->set('ignore_disabled',0);
+ }
+
+ if (!defined $prefs->get('lastITunesMusicLibraryDate')) {
+ $prefs->set('lastITunesMusicLibraryDate',0);
+ }
+
+ if (!defined $prefs->get('itunes') && defined findMusicLibraryFile()) {
+ $prefs->set('itunes', 1);
}
}
Modified: trunk/server/Slim/Plugin/iTunes/HTML/EN/plugins/iTunes/settings/itunes.html
URL: http://svn.slimdevices.com/trunk/server/Slim/Plugin/iTunes/HTML/EN/plugins/iTunes/settings/itunes.html?rev=11757&r1=11756&r2=11757&view=diff
==============================================================================
--- trunk/server/Slim/Plugin/iTunes/HTML/EN/plugins/iTunes/settings/itunes.html (original)
+++ trunk/server/Slim/Plugin/iTunes/HTML/EN/plugins/iTunes/settings/itunes.html Thu Apr 12 15:01:21 2007
@@ -4,19 +4,15 @@
<div class="prefHead">[% "ITUNES" | string | upper %]</div>
<div class="prefDesc">[% "SETUP_ITUNES_DESC" | string %]</div>
- <input type="checkbox" [% IF prefs.itunes %]checked [% END %] class="stdedit" name="itunes" id="itunes" />
+ <input type="checkbox" [% IF prefs.itunes %]checked [% END %] class="stdedit" name="itunes" />
- <!--
- <option [% IF NOT prefs.itunes %]selected [% END %]value="0">[% 'DONT_USE_ITUNES' | getstring %]</option>
- <option [% IF prefs.itunes %]selected [% END %]value="1">[% 'USE_ITUNES' | getstring %]</option>
- -->
</div>
<div class="settingSection">
<div class="prefHead">[% "SETUP_ITUNESSCANINTERVAL" | string | upper %]</div>
<div class="prefDesc">[% "SETUP_ITUNESSCANINTERVAL_DESC" | string %]</div>
- <input type="text" class="stdedit" name="itunesscaninterval" id="itunesscaninterval" value="[% prefs.itunesscaninterval %]" size="5">
+ <input type="text" class="stdedit" name="scan_interval" value="[% prefs.scan_interval %]" size="5">
</div>
<div class="settingSection">
@@ -24,13 +20,13 @@
<div class="groupHead">[% "SETUP_IGNOREDISABLEDITUNESTRACKS" | string | upper %]</div>
<div class="groupDesc">[% "SETUP_IGNOREDISABLEDITUNESTRACKS_DESC" | string %]</div>
- <select class="stdedit" name="ignoredisableditunestracks" id="rescantype">
+ <select class="stdedit" name="ignore_disabled" id="rescantype">
- <option value="0" [% IF NOT prefs.ignoredisableditunestracks %]selected[% END %]>
+ <option value="0" [% IF NOT prefs.ignore_disabled %]selected[% END %]>
[% "SETUP_IGNOREDISABLEDITUNESTRACKS_0" | string %]
</option>
- <option value="1" [% IF prefs.ignoredisableditunestracks %]selected[% END %]>
+ <option value="1" [% IF prefs.ignore_disabled %]selected[% END %]>
[% "SETUP_IGNOREDISABLEDITUNESTRACKS_1" | string %]
</option>
@@ -42,23 +38,23 @@
<div class="prefHead">[% "SETUP_ITUNES_LIBRARY_XML_PATH" | string | upper %]</div>
<div class="prefDesc">[% "SETUP_ITUNES_LIBRARY_XML_PATH_DESC" | string %]</div>
- <input type="text" class="stdedit" name="itunes_library_xml_path" id="itunes_library_xml_path" value="[% prefs.itunes_library_xml_path %]" size="40">
+ <input type="text" class="stdedit" name="xml_file" value="[% prefs.xml_file %]" size="40">
</div>
<div class="settingSection">
<div class="prefHead">[% "SETUP_ITUNES_LIBRARY_MUSIC_PATH" | string | upper %]</div>
<div class="prefDesc">[% "SETUP_ITUNES_LIBRARY_MUSIC_PATH_DESC" | string %]</div>
- <input type="text" class="stdedit" name="itunes_library_music_path" id="itunes_library_music_path" value="[% prefs.itunes_library_music_path %]" size="40">
+ <input type="text" class="stdedit" name="music_path" value="[% prefs.music_path %]" size="40">
</div>
<div class="settingSection">
<div class="groupHead">[% "SETUP_ITUNESPLAYLISTFORMAT" | string | upper %]</div>
<div class="groupDesc">[% "SETUP_ITUNESPLAYLISTFORMAT_DESC" | string %]</div>
- [% "SETUP_PLAYLISTPREFIX_CHOOSE" | string %]<input type="text" class="stdedit" name="iTunesplaylistprefix" id="iTunesplaylistprefix" value="[% prefs.iTunesplaylistprefix %]" size="40">
+ [% "SETUP_PLAYLISTPREFIX_CHOOSE" | string %]<input type="text" class="stdedit" name="playlist_prefix" value="[% prefs.playlist_prefix %]" size="40">
<br>
- [% "SETUP_PLAYLISTSUFFIX_CHOOSE" | string %]<input type="text" class="stdedit" name="iTunesplaylistsuffix" id="iTunesplaylistsuffix" value="[% prefs.iTunesplaylistsuffix %]" size="40">
+ [% "SETUP_PLAYLISTSUFFIX_CHOOSE" | string %]<input type="text" class="stdedit" name="playlist_suffix" value="[% prefs.playlist_suffix %]" size="40">
</div>
[% PROCESS settings/footer.html %]
Modified: trunk/server/Slim/Plugin/iTunes/Importer.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Plugin/iTunes/Importer.pm?rev=11757&r1=11756&r2=11757&view=diff
==============================================================================
--- trunk/server/Slim/Plugin/iTunes/Importer.pm (original)
+++ trunk/server/Slim/Plugin/iTunes/Importer.pm Thu Apr 12 15:01:21 2007
@@ -23,6 +23,7 @@
use Slim::Utils::Log;
use Slim::Utils::Misc;
use Slim::Utils::Strings qw(string);
+use Slim::Utils::Prefs;
my $lastMusicLibraryFinishTime = undef;
my $lastITunesMusicLibraryDate = 0;
@@ -40,6 +41,8 @@
'category' => 'plugin.itunes',
'defaultLevel' => 'WARN',
});
+
+my $prefs = preferences('plugin.itunes');
# mac file types
our %filetypes = (
@@ -72,7 +75,7 @@
Slim::Music::Import->addImporter($class, {
'reset' => \&resetState,
'playlistOnly' => 1,
- 'use' => Slim::Utils::Prefs::get('itunes'),
+ 'use' => $prefs->get('itunes'),
});
Slim::Player::ProtocolHandlers->registerHandler('itunesplaylist', 0);
@@ -245,7 +248,7 @@
# we want to fall back to the real file path from the XML file
#
# Bug 3717 - check this after we've checked the locale above.
- if (!-e $file && Slim::Utils::Prefs::get('itunes_library_music_path')) {
+ if (!-e $file && $prefs->get('music_path')) {
$url = $class->normalize_location($location, 'fallback');
$file = Slim::Utils::Misc::pathFromFileURL($url);
@@ -264,7 +267,7 @@
$tracks{$id} = $url;
# skip track if Disabled in iTunes
- if ($curTrack->{'Disabled'} && !Slim::Utils::Prefs::get('ignoredisableditunestracks')) {
+ if ($curTrack->{'Disabled'} && !$prefs->get('ignore_disabled')) {
$log->info("Deleting disabled track $url");
@@ -436,8 +439,8 @@
$cacheEntry->{'CT'} = 'itu';
$cacheEntry->{'TITLE'} = join($name,
- Slim::Utils::Prefs::get('iTunesplaylistprefix'),
- Slim::Utils::Prefs::get('iTunesplaylistsuffix')
+ $prefs->get('playlist_prefix'),
+ $prefs->get('playlist_suffix')
);
Slim::Music::Info::updateCacheEntry($url, $cacheEntry);
Modified: trunk/server/Slim/Plugin/iTunes/Plugin.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Plugin/iTunes/Plugin.pm?rev=11757&r1=11756&r2=11757&view=diff
==============================================================================
--- trunk/server/Slim/Plugin/iTunes/Plugin.pm (original)
+++ trunk/server/Slim/Plugin/iTunes/Plugin.pm Thu Apr 12 15:01:21 2007
@@ -14,22 +14,17 @@
use Slim::Utils::Log;
use Slim::Utils::Misc;
use Slim::Utils::Strings qw(string);
+use Slim::Utils::Prefs;
my $log = Slim::Utils::Log->addLogCategory({
'category' => 'plugin.itunes',
'defaultLevel' => 'WARN',
});
+my $prefs = preferences('plugin.itunes');
+
sub getDisplayName {
return 'SETUP_ITUNES';
-}
-
-sub enabled {
- return ($::VERSION ge '6.1');
-}
-
-sub getFunctions {
- return '';
}
sub initPlugin {
@@ -72,7 +67,7 @@
my $class = shift;
my $firstTime = shift || 0;
- if (!Slim::Utils::Prefs::get('itunes')) {
+ if (!$prefs->get('itunes')) {
return 0;
}
@@ -85,7 +80,7 @@
# make sure we aren't doing this more than once...
Slim::Utils::Timers::killTimers(0, \&checker);
- my $interval = Slim::Utils::Prefs::get('itunesscaninterval') || 3600;
+ my $interval = $prefs->get('scan_interval') || 3600;
# the very first time, we do want to scan right away
if ($firstTime) {
Modified: trunk/server/Slim/Plugin/iTunes/Settings.pm
URL: http://svn.slimdevices.com/trunk/server/Slim/Plugin/iTunes/Settings.pm?rev=11757&r1=11756&r2=11757&view=diff
==============================================================================
--- trunk/server/Slim/Plugin/iTunes/Settings.pm (original)
+++ trunk/server/Slim/Plugin/iTunes/Settings.pm Thu Apr 12 15:01:21 2007
@@ -11,66 +11,61 @@
use Slim::Utils::Log;
use Slim::Utils::Misc;
use Slim::Utils::Strings qw(string);
+use Slim::Utils::Prefs;
my $log = Slim::Utils::Log->addLogCategory({
'category' => 'plugin.itunes',
'defaultLevel' => 'WARN',
});
+my $prefs = preferences('plugin.itunes');
+
+$prefs->migrate(1, sub {
+ $prefs->set('itunes', Slim::Utils::Prefs::OldPrefs->get('itunes'));
+ $prefs->set('scan_interval', Slim::Utils::Prefs::OldPrefs->get('itunesscaninterval') || 3600 );
+ $prefs->set('ignore_disabled', Slim::Utils::Prefs::OldPrefs->get('ignoredisableditunestracks') || 0 );
+ $prefs->set('xml_file', Slim::Utils::Prefs::OldPrefs->get('itunes_library_xml_path') );
+ $prefs->set('music_path', Slim::Utils::Prefs::OldPrefs->get('itunes_library_music_path') );
+ $prefs->set('playlist_prefix', Slim::Utils::Prefs::OldPrefs->get('iTunesplaylistprefix') || 'iTunes: ');
+ $prefs->set('playlist_suffix', Slim::Utils::Prefs::OldPrefs->get('iTunesplaylistsuffix') || '' );
+
+ $prefs->set('itunes', 1) unless defined $prefs->get('itunes'); # default to on if not previously set
+ 1;
+});
+
+$prefs->setValidate('num', 'scan_interval');
+$prefs->setValidate( sub { !$_[1] || -e $_[1] }, 'xml_file'); # empty or a file
+$prefs->setValidate( sub { !$_[1] || -d $_[1] }, 'music_path'); # empty or a directory
+
+$prefs->setChange(
+ sub {
+ Slim::Music::Import->useImporter('Plugin::iTunes::Plugin', $_[1]);
+
+ for my $c (Slim::Player::Client::clients()) {
+ Slim::Buttons::Home::updateMenu($c);
+ }
+ },
+'itunes');
+
sub name {
- return 'ITUNES';
+ return 'ITUNES';
}
sub page {
- return 'plugins/iTunes/settings/itunes.html';
+ return 'plugins/iTunes/settings/itunes.html';
+}
+
+sub prefs {
+ return ($prefs, qw(itunes scan_interval ignore_disabled xml_file music_path playlist_prefix playlist_suffix));
}
sub handler {
- my ($class, $client, $params) = @_;
-
- # These are lame preference names.
- my @prefs = qw(
- itunes
- itunesscaninterval
- ignoredisableditunestracks
- itunes_library_xml_path
- itunes_library_music_path
- iTunesplaylistprefix
- iTunesplaylistsuffix
- );
+ my ($class, $client, $params) = @_;
# Cleanup the checkbox
$params->{'itunes'} = defined $params->{'itunes'} ? 1 : 0;
- if ($params->{'saveSettings'}) {
-
- if ($params->{'itunes'} != Slim::Utils::Prefs::get('itunes')) {
-
- for my $c (Slim::Player::Client::clients()) {
-
- Slim::Buttons::Home::updateMenu($c);
- }
-
- Slim::Music::Import->useImporter('Plugin::iTunes::Plugin', $params->{'itunes'});
- }
-
- for my $pref (@prefs) {
-
- # XXX - need validation!
- #'itunesscaninterval' => { 'validate' => \&Slim::Utils::Validate::number, },
- #'itunes_library_xml_path' => { 'validate' => \&Slim::Utils::Validate::isFile, },
- #'itunes_library_music_path' => { 'validate' => \&Slim::Utils::Validate::isDir, },
-
- Slim::Utils::Prefs::set($pref, $params->{$pref});
- }
- }
-
- for my $pref (@prefs) {
-
- $params->{'prefs'}->{$pref} = Slim::Utils::Prefs::get($pref);
- }
-
- return $class->SUPER::handler($client, $params);
+ return $class->SUPER::handler($client, $params);
}
1;
More information about the checkins
mailing list