/usr/local/CPAN/Test-C2FIT/Test/C2FIT/eg/music/Music.pm


# Music.pm
#
# Copyright (c) 2002 Cunningham & Cunningham, Inc.
# Released under the terms of the GNU General Public License version 2 or later.
#
# Perl translation by Dave W. Smith <dws@postcognitive.com>

package Test::C2FIT::eg::music::Music;

use strict;

use vars qw($status);
$status = "ready";

sub new {
    my $pkg = shift;

    return bless {
        title       => undef,
        artist      => undef,
        album       => undef,
        genre       => undef,
        size        => undef,
        seconds     => undef,
        trackNumber => undef,
        trackCount  => undef,
        year        => undef,
        date        => undef,
        selected    => 0,
        @_
    }, $pkg;
}

sub title {
    my $self = shift;

    return $self->{'title'};
}

sub artist {
    my $self = shift;

    return $self->{'artist'};
}

sub album {
    my $self = shift;

    return $self->{'album'};
}

sub track {
    my $self = shift;

    return $self->{'trackNumber'} . " of " . $self->{'trackCount'};
}

sub seconds {
    my $self = shift;

    return $self->{'seconds'};
}

sub time {
    my $self = shift;

    return int( $self->{'seconds'} / 0.6 + 0.5 ) / 100;
}

sub year {
    my $self = shift;

    return $self->{'year'};
}

sub toString {
    my $self = shift;

    return $self->{'title'} ? $self->{'title'} : "Music";
}

# Factor method

sub parse {
    my ($string) = @_;

    my $m = new Test::C2FIT::eg::music::Music();
    my @parts = ( split( "\t", $string ) )[ 0 .. 9 ];
    $m->{'title'}       = $parts[0];
    $m->{'artist'}      = $parts[1];
    $m->{'album'}       = $parts[2];
    $m->{'genre'}       = $parts[3];
    $m->{'size'}        = $parts[4];
    $m->{'seconds'}     = $parts[5];
    $m->{'trackNumber'} = $parts[6];
    $m->{'trackCount'}  = $parts[7];
    $m->{'year'}        = $parts[8];
    $m->{'date'}        = $parts[9];

    return $m;
}

1;

__END__