diff -ur SlimServer_v6.1.1.orig/HTML/Default/songinfo.html SlimServer_v6.1.1/HTML/Default/songinfo.html
--- SlimServer_v6.1.1.orig/HTML/Default/songinfo.html 2005-07-22 02:04:16.000000000 +0200
+++ SlimServer_v6.1.1/HTML/Default/songinfo.html 2005-08-28 15:47:22.705383402 +0200
@@ -80,6 +80,13 @@
[% END %]
+ [% IF track.album.shelfmark %]
+
+ [% "SHELFMARK" | string; "COLON" | string %] |
+ [% track.album.shelfmark | html %] |
+
+ [% END %]
+
[% IF track.album.disc %]
[% "DISC" | string; "COLON" | string %] |
@@ -90,7 +97,14 @@
[% IF track.tracknum %]
[% "TRACK" | string; "COLON" | string %] |
- [% track.tracknum | html %] |
+ [% track.tracknum | html %][% IF track.tracktotal %]/[% track.tracktotal | html %][% END %] |
+
+ [% END %]
+
+ [% IF track.indexnum %]
+
+ [% "INDEX" | string; "COLON" | string %] |
+ [% track.indexnum | html %][% IF track.indexmax %]/[% track.indexmax | html %][% END %] |
[% END %]
diff -ur SlimServer_v6.1.1.orig/HTML/Fishbone/songinfo.html SlimServer_v6.1.1/HTML/Fishbone/songinfo.html
--- SlimServer_v6.1.1.orig/HTML/Fishbone/songinfo.html 2005-07-22 02:04:17.000000000 +0200
+++ SlimServer_v6.1.1/HTML/Fishbone/songinfo.html 2005-08-28 15:44:33.017426638 +0200
@@ -72,6 +72,16 @@
[% END %]
+ [% IF track.album.shelfmark %]
+
+
+ [% "SHELFMARK" | string; "COLON" | string %]
+ |
+
+ [% track.album.shelfmark | html %]
+ |
+
+ [% END %]
[% IF track.album.disc %]
@@ -88,7 +98,17 @@
[% "TRACK" | string; "COLON" | string %]
|
- [% track.tracknum %]
+ [% track.tracknum | html %][% IF track.tracktotal %]/[% track.tracktotal | html %][% END %]
+ |
+
+ [% END %]
+ [% IF track.indexnum %]
+
+
+ [% "INDEX" | string; "COLON" | string %]
+ |
+
+ [% track.indexnum | html %][% IF track.indexmax %]/[% track.indexmax | html %][% END %]
|
[% END %]
diff -ur SlimServer_v6.1.1.orig/Slim/Buttons/TrackInfo.pm SlimServer_v6.1.1/Slim/Buttons/TrackInfo.pm
--- SlimServer_v6.1.1.orig/Slim/Buttons/TrackInfo.pm 2005-07-22 02:04:15.000000000 +0200
+++ SlimServer_v6.1.1/Slim/Buttons/TrackInfo.pm 2005-08-28 14:42:57.000000000 +0200
@@ -281,9 +281,27 @@
push (@{$client->trackInfoLines}, $client->string('ALBUM') . ": $album");
push (@{$client->trackInfoContent}, 'ALBUM');
}
-
+
+ if (my $shelfmark = $track->album()->shelfmark()) {
+ push (@{$client->trackInfoLines}, $client->string('SHELFMARK') . ": $shelfmark");
+ push (@{$client->trackInfoContent}, undef);
+ }
+
if (my $tracknum = $track->tracknum()) {
- push (@{$client->trackInfoLines}, $client->string('TRACK') . ": $tracknum");
+ if (my $tracktotal = $track->tracktotal()) {
+ push (@{$client->trackInfoLines}, $client->string('TRACK') . ": $tracknum/$tracktotal");
+ } else {
+ push (@{$client->trackInfoLines}, $client->string('TRACK') . ": $tracknum");
+ }
+ push (@{$client->trackInfoContent}, undef);
+ }
+
+ if (my $indexnum = $track->indexnum()) {
+ if (my $indexmax = $track->indexmax()) {
+ push (@{$client->trackInfoLines}, $client->string('INDEX') . ": $indexnum/$indexmax");
+ } else {
+ push (@{$client->trackInfoLines}, $client->string('INDEX') . ": $indexnum");
+ }
push (@{$client->trackInfoContent}, undef);
}
diff -ur SlimServer_v6.1.1.orig/Slim/DataStores/DBI/Album.pm SlimServer_v6.1.1/Slim/DataStores/DBI/Album.pm
--- SlimServer_v6.1.1.orig/Slim/DataStores/DBI/Album.pm 2005-07-22 02:04:15.000000000 +0200
+++ SlimServer_v6.1.1/Slim/DataStores/DBI/Album.pm 2005-08-28 14:52:48.000000000 +0200
@@ -10,7 +10,7 @@
$class->table('albums');
- $class->columns(Essential => qw/id title titlesort contributors year artwork_path disc discc musicmagic_mixable/);
+ $class->columns(Essential => qw/id title titlesort contributors year artwork_path disc discc shelfmark musicmagic_mixable/);
$class->columns(Stringify => qw/title/);
diff -ur SlimServer_v6.1.1.orig/Slim/DataStores/DBI/DataModel.pm SlimServer_v6.1.1/Slim/DataStores/DBI/DataModel.pm
--- SlimServer_v6.1.1.orig/Slim/DataStores/DBI/DataModel.pm 2005-07-22 02:04:15.000000000 +0200
+++ SlimServer_v6.1.1/Slim/DataStores/DBI/DataModel.pm 2005-08-28 14:42:57.000000000 +0200
@@ -346,12 +346,12 @@
'album' => ['albums.titlesort','albums.disc'],
'contributor' => ['contributors.namesort'],
'artist' => ['contributors.namesort'],
- 'track' => ['tracks.multialbumsortkey', 'tracks.disc','tracks.tracknum','tracks.titlesort'],
- 'tracknum' => ['tracks.disc','tracks.tracknum','tracks.titlesort'],
+ 'track' => ['tracks.multialbumsortkey', 'tracks.disc','tracks.tracknum','tracks.indexnum','tracks.titlesort'],
+ 'tracknum' => ['tracks.disc','tracks.tracknum','tracks.indexnum','tracks.titlesort'],
'year' => ['tracks.year'],
'lastPlayed' => ['tracks.lastPlayed'],
'playCount' => ['tracks.playCount'],
- 'age' => ['tracks.age desc', 'tracks.disc', 'tracks.tracknum', 'tracks.titlesort'],
+ 'age' => ['tracks.age desc', 'tracks.disc', 'tracks.tracknum', 'tracks.indexnum', 'tracks.titlesort'],
);
# This is a weight table which allows us to do some basic table reordering,
diff -ur SlimServer_v6.1.1.orig/Slim/DataStores/DBI/DBIStore.pm SlimServer_v6.1.1/Slim/DataStores/DBI/DBIStore.pm
--- SlimServer_v6.1.1.orig/Slim/DataStores/DBI/DBIStore.pm 2005-07-22 02:04:15.000000000 +0200
+++ SlimServer_v6.1.1/Slim/DataStores/DBI/DBIStore.pm 2005-08-28 14:51:45.000000000 +0200
@@ -894,6 +894,15 @@
if (defined $attributesHash->{'TRACKNUM'}) {
$attributesHash->{'TRACKNUM'} = Slim::Music::Info::cleanTrackNumber($attributesHash->{'TRACKNUM'});
}
+ if (defined $attributesHash->{'TRACKTOTAL'}) {
+ $attributesHash->{'TRACKTOTAL'} = Slim::Music::Info::cleanTrackNumber($attributesHash->{'TRACKTOTAL'});
+ }
+ if (defined $attributesHash->{'INDEXNUM'}) {
+ $attributesHash->{'INDEXNUM'} = Slim::Music::Info::cleanTrackNumber($attributesHash->{'INDEXNUM'});
+ }
+ if (defined $attributesHash->{'INDEXMAX'}) {
+ $attributesHash->{'INDEXMAX'} = Slim::Music::Info::cleanTrackNumber($attributesHash->{'INDEXMAX'});
+ }
# Turn the tag SET into DISC and DISCC if it looks like # or #/#
if ($attributesHash->{'SET'} and $attributesHash->{'SET'} =~ /(\d+)(?:\/(\d+))?/) {
@@ -1174,7 +1183,7 @@
# Normalize ARTISTSORT in ContributorTrack->add() the tag may need to be split. See bug #295
#
# Push these back until we have a Track object.
- for my $tag (qw(COMMENT BAND COMPOSER CONDUCTOR GENRE ARTIST ARTISTSORT PIC APIC ALBUM ALBUMSORT DISCC)) {
+ for my $tag (qw(COMMENT BAND COMPOSER CONDUCTOR GENRE ARTIST ARTISTSORT PIC APIC ALBUM ALBUMSORT DISCC SHELFMARK)) {
next unless defined $attributes->{$tag};
@@ -1278,6 +1287,7 @@
my $album = $attributes->{'ALBUM'};
my $disc = $attributes->{'DISC'};
my $discc = $attributes->{'DISCC'};
+ my $shelfmark = $attributes->{'SHELFMARK'};
my $albumObj;
# Create a singleton for "No Album"
@@ -1379,6 +1389,7 @@
$albumObj->disc($disc) if $disc;
$albumObj->discc($discc) if $discc;
+ $albumObj->shelfmark($shelfmark) if $shelfmark;
$albumObj->year($track->year) if $track->year;
$albumObj->update();
@@ -1394,8 +1405,8 @@
my $albumName = defined($albumObj) ? $albumObj->titlesort : '';
my $primary_contributor = defined($contributors[0]) ? $contributors[0]->namesort : defined($albumObj) ? $albumObj->contributors : '';
- # Save 2 get calls
- my ($titlesort, $tracknum) = $track->get(qw(titlesort tracknum));
+ # Save 3 get calls
+ my ($titlesort, $tracknum, $indexnum) = $track->get(qw(titlesort tracknum indexnum));
my @keys = ();
@@ -1403,6 +1414,7 @@
push @keys, $albumName || '';
push @keys, $disc if defined($disc);
push @keys, sprintf("%03d", $tracknum) if defined $tracknum;
+ push @keys, sprintf("%03d", $indexnum) if defined($indexnum);
push @keys, $titlesort || '';
$track->multialbumsortkey(join ' ', @keys);
diff -ur SlimServer_v6.1.1.orig/Slim/DataStores/DBI/Track.pm SlimServer_v6.1.1/Slim/DataStores/DBI/Track.pm
--- SlimServer_v6.1.1.orig/Slim/DataStores/DBI/Track.pm 2005-07-22 02:04:15.000000000 +0200
+++ SlimServer_v6.1.1/Slim/DataStores/DBI/Track.pm 2005-08-28 14:42:57.000000000 +0200
@@ -31,6 +31,9 @@
our %otherColumns = (
'size' => 'audio_size',
'offset' => 'audio_offset',
+ 'tracktotal' => 'tracktotal',
+ 'indexnum' => 'indexnum',
+ 'indexmax' => 'indexmax',
'year' => 'year',
'secs' => 'secs',
'cover' => 'cover',
diff -ur SlimServer_v6.1.1.orig/Slim/Formats/FLAC.pm SlimServer_v6.1.1/Slim/Formats/FLAC.pm
--- SlimServer_v6.1.1.orig/Slim/Formats/FLAC.pm 2005-07-22 02:04:15.000000000 +0200
+++ SlimServer_v6.1.1/Slim/Formats/FLAC.pm 2005-08-28 14:55:09.000000000 +0200
@@ -24,13 +24,14 @@
use IO::Seekable qw(SEEK_SET);
my %tagMapping = (
+ 'INDEXNUMBER' => 'INDEXNUM',
'TRACKNUMBER' => 'TRACKNUM',
'DISCNUMBER' => 'DISC',
'URL' => 'URLTAG',
'musicbrainz_sortname' => 'ARTISTSORT',
);
-my @tagNames = qw(ALBUM ARTIST BAND COMPOSER CONDUCTOR DISCNUMBER TITLE TRACKNUMBER DATE);
+my @tagNames = qw(SHELFMARK ALBUM ARTIST BAND COMPOSER CONDUCTOR DISCNUMBER TITLE TRACKNUMBER TRACKTOTAL INDEXNUMBER INDEXMAX DATE);
# peem id (http://flac.sf.net/id.html http://peem.iconoclast.net/)
my $PEEM = 1885693293;
diff -ur SlimServer_v6.1.1.orig/Slim/Utils/Prefs.pm SlimServer_v6.1.1/Slim/Utils/Prefs.pm
--- SlimServer_v6.1.1.orig/Slim/Utils/Prefs.pm 2005-07-22 02:04:15.000000000 +0200
+++ SlimServer_v6.1.1/Slim/Utils/Prefs.pm 2005-08-28 15:23:01.000000000 +0200
@@ -91,21 +91,25 @@
'mDNSname' => 'SlimServer',
'titleFormat' => [
'TITLE',
- 'DISC-TRACKNUM. TITLE',
- 'TRACKNUM. TITLE',
- 'TRACKNUM. ARTIST - TITLE',
- 'TRACKNUM. TITLE (ARTIST)',
- 'TRACKNUM. TITLE - ARTIST - ALBUM',
+ 'DISC-TRACKNUM.INDEXNUM. TITLE',
+ 'TRACKNUM.INDEXNUM. TITLE',
+ 'TRACKNUM.INDEXNUM. ARTIST - TITLE',
+ 'TRACKNUM.INDEXNUM. TITLE (ARTIST)',
+ 'TRACKNUM.INDEXNUM. TITLE - ARTIST - ALBUM',
'FILE.EXT',
- 'TRACKNUM. TITLE from ALBUM by ARTIST',
+ 'TRACKNUM.INDEXNUM. TITLE from ALBUM by ARTIST',
'TITLE (ARTIST)',
'ARTIST - TITLE'
],
'guessFileFormats' => [
'(ARTIST - ALBUM) TRACKNUM - TITLE',
+ '(ARTIST - ALBUM) TRACKNUM.INDEXNUM - TITLE',
'/ARTIST/ALBUM/TRACKNUM - TITLE',
+ '/ARTIST/ALBUM/TRACKNUM.INDEXNUM - TITLE',
'/ARTIST/ALBUM/TRACKNUM TITLE',
- '/ARTIST/ALBUM/TRACKNUM. TITLE'
+ '/ARTIST/ALBUM/TRACKNUM.INDEXNUM TITLE',
+ '/ARTIST/ALBUM/TRACKNUM. TITLE',
+ '/ARTIST/ALBUM/TRACKNUM.INDEXNUM. TITLE'
],
'disabledplugins' => [],
'enabledfonts' => ['small', 'medium', 'large', 'huge'],
diff -ur SlimServer_v6.1.1.orig/SQL/SQLite/dbcreate.sql SlimServer_v6.1.1/SQL/SQLite/dbcreate.sql
--- SlimServer_v6.1.1.orig/SQL/SQLite/dbcreate.sql 2005-07-22 02:04:14.000000000 +0200
+++ SlimServer_v6.1.1/SQL/SQLite/dbcreate.sql 2005-08-28 14:42:57.000000000 +0200
@@ -20,6 +20,9 @@
titlesort varchar, -- version of title used for sorting
album integer, -- album object
tracknum integer, -- track number in album
+ tracktotal integer, -- total number of tracks in album
+ indexnum integer, -- index number in track
+ indexmax integer, -- number of last index in track (indices count from zero!)
ct varchar, -- content type of track
tag integer, -- have we read the tags yet
age integer, -- timestamp for listing
@@ -83,6 +86,7 @@
CREATE TABLE albums (
id integer UNIQUE PRIMARY KEY NOT NULL,
+ shelfmark varchar, -- (unique) mark for the media (CD, DVD, Tape etc.) this album is on
title varchar, -- title
titlesort varchar, -- version of title used for sorting
contributors varchar, -- stringified list of contributors
diff -ur SlimServer_v6.1.1.orig/strings.txt SlimServer_v6.1.1/strings.txt
--- SlimServer_v6.1.1.orig/strings.txt 2005-07-22 02:04:21.000000000 +0200
+++ SlimServer_v6.1.1/strings.txt 2005-08-28 14:42:57.000000000 +0200
@@ -6230,6 +6230,13 @@
PT Faixa
SE Spår
+INDEX
+ DE Index
+ EN Index
+ ES Índice
+ FR Index
+ IT Indice
+
SONGTITLE
CZ Název skladby
DE Liedertitel
@@ -6334,6 +6341,10 @@
PT Disco
SE Skiva
+SHELFMARK
+ DE Signatur
+ EN Shelfmark
+
LENGTH
CZ Délka
DE Dauer