--- Slim/Formats/Parse.pm 2005-04-05 11:32:21.703125000 -0700 +++ server/Slim/Formats/Parse.pm 2005-04-07 15:04:19.062500000 -0700 @@ -1,6 +1,6 @@ package Slim::Formats::Parse; -# $Id: Parse.pm 2839 2005-04-02 00:34:45Z michael $ +# $Id: Parse.pm 2900 2005-04-07 02:58:29Z michael $ # SlimServer Copyright (c) 2001-2004 Sean Adams, Slim Devices Inc. # This program is free software; you can redistribute it and/or @@ -336,7 +336,7 @@ sub parseCUE { my $ds = Slim::Music::Info::getCurrentDataStore(); my $track = $ds->updateOrCreate({ 'url' => $filename, - 'attributes' => {}, +# 'attributes' => {}, 'readTags' => 1, }); @@ -487,10 +487,15 @@ sub readCUE { push @items, $track->{'URI'}; #url; - # our tracks won't be visible if we don't include this - $track->{'fs'} = $basetrack->{'fs'}; - $track->{'age'} = $basetrack->{'age'}; - + # our tracks won't be visible if we don't include some data from the base file + for my $attribute (keys %$basetrack) { + next if $attribute eq 'id'; + next if $attribute eq 'url'; + next if $attribute =~ /^_/; + next unless $basetrack->{$attribute}; + $track->{$attribute} = $basetrack->{$attribute} unless exists $track->{uc $attribute}; + } + # Do the actual data store # Skip readTags since we'd just be reading the same file over and over $ds->updateOrCreate({ @@ -512,7 +517,7 @@ sub writePLS { my $filename = shift; my $string = ''; - my $output = _filehandleFromNameOrString($filename, $string) || return; + my $output = _filehandleFromNameOrString($filename, \$string) || return; print $output "[playlist]\nPlaylistName=$playlistname\n"; @@ -538,7 +543,7 @@ sub writePLS { print $output "NumberOfItems=$itemnum\nVersion=2\n"; - close $output; + close $output if $filename; return $string; } @@ -550,7 +555,7 @@ sub writeM3U { my $resumetrack = shift; my $string = ''; - my $output = _filehandleFromNameOrString($filename, $string) || return; + my $output = _filehandleFromNameOrString($filename, \$string) || return; print $output "#CURTRACK $resumetrack\n" if defined($resumetrack); print $output "#EXTM3U\n" if $addTitles; @@ -582,7 +587,8 @@ sub writeM3U { print $output "$path\n"; } - close $output; + close $output if $filename; + return $string; } @@ -684,8 +690,8 @@ sub writeWPL { my $string; - my $output = _filehandleFromNameOrString($filename, $string) || return; - print $output $wplfile; + my $output = _filehandleFromNameOrString($filename, \$string) || return; + print $output $wplfile if $filename; close $output; return $string; @@ -821,7 +827,7 @@ sub _filehandleFromNameOrString { } else { - $output = IO::String->new($outstring); + $output = IO::String->new($$outstring); } return $output;