package MP3::Album::Layout; use strict; our $VERSION = '0.01'; sub new { my $s = shift; my $b = { title => 'unknown', artist => 'unknown', genre => 'unknown', year => '', comment => '', location => '', tracks => [] }; return bless $b, $s; } sub edit_track { my $s = shift; my %a = @_; unless ($a{position}) { $@ = "missing param position"; return undef; } unless ($a{artist} || $a{title}) { $@ = "missing param title or artist"; } $s->{tracks}->[$a{position}+1]->{artist} = $a{artist} if $a{artist}; $s->{tracks}->[$a{position}+1]->{artist} = $a{title} if $a{title}; return 1; } sub info { my $s = shift; return $s; } sub add_track { my $s = shift; my %a = @_; push @{$s->{tracks}}, { 'artist' => $a{artist}, 'title' => $a{title}, 'lenght' => $a{lenght} }; return 1; } sub artist { my $s = shift; $s->{artist} = $_[0] if @_; return $s->{artist}; } sub genre { my $s = shift; $s->{genre} = $_[0] if @_; return $s->{genre}; } sub comment { my $s = shift; $s->{comment} = $_[0] if @_; return $s->{comment}; } sub title { my $s = shift; $s->{title} = $_[0] if @_; return $s->{title}; } 1;