File: workman

package info (click to toggle)
libcdk-perl 4.9.10-3
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 884 kB
  • ctags: 414
  • sloc: perl: 6,419; makefile: 45; sh: 27
file content (128 lines) | stat: -rwxr-xr-x 2,954 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#!/usr/bin/perl -w
# $Id: workman,v 1.2 2002/07/27 20:07:47 tom Exp $

#
# Initialize Cdk.
#
use Cdk;
Cdk::init();

# Pop up the opening label.
popupLabel (["<C></16/B>Workman Database Editor.", "",
		"<C></24/B>Written By Mike Glover"]);

# Set a default name for the workman database.
my $workmandb = $ENV{'HOME'} . "/.workmandb";

# Open up the database and read in the contents.
my @cdList = readWorkmanDatabase ($workmandb);

# Let the user play with the given information.
playWithWorkManDatabase (@cdList);

#
# This allows the user to manipulate the workman database.
#
sub playWithWorkManDatabase
{
}

#
# This reads in the current contents of the workman database.
#
sub readWorkmanDatabase
{
   my $filename	= shift;
   my @contents	= ();
   my $count	= 0;
   my $x	= 0;

   # Return if we can't open the file.
   return if !(open (FILE, $filename));

   # Slurp in the file.
   my @workmandb = <FILE>;
   chomp @workmandb;

   # Strip out the contents of the database.
   for ($x=0; $x < $#workmandb; $x++)
   {
      # Remove comments and empty lines.
      next if $workmandb[$x] =~ /^#/;
      next if $workmandb[$x] =~ /^$/;

      # Is this a start of a CD listing.
      if ($workmandb[$x] =~ /^tracks (\d*)/)
      {
         my $trackCount	= $1;
         my $trackLine	= $workmandb[$x++];
         my $cdName	= $workmandb[$x++];
         my $artist	= $workmandb[$x++];
         my @tracks	= ();
         my $current	= 0;

         # Get each track from the database.
         for ($current=0; $current < $trackCount; $current++)
         {
            push (@tracks, $workmandb[$x++]);
         }
         $x--;

         # Create the database object and put it onto the stack.
         my $object = new WorkManData ($trackLine, $cdName, $artist, @tracks);

         # Put it onto the stack.
         push (@contents, $object);
      }
   }
   return @contents;
}

#
# This writes out a workman database.
#
sub writeWorkManData
{
}

#########################################
package WorkManData;

#
# This creates a new object.
#
sub new
{
   my ($type, $trackLine, $cdName, $artist, @tracks) = @_;
   my @trackInfo = ();
   my @indexInfo = ();
   my $self = {};

   # Split the trackline apart.
   my ($junk, $trackCount, @index) = split (/\s+/, $trackLine);

   # Clean off the garbage from the track lines.
   for ($x=0; $x <= $#tracks; $x++)
   {
      # Strip out the track name.
      ($trackName = $1) if $tracks[$x] =~ /^track\s+(.*)/;

      # If there is no track name, then provide a default answer.
      if ($trackName ne "")
      {
         push (@trackInfo, $trackName);
      }
      else
      {
         push (@trackInfo, "No Track Name Given");
      }
   }

   # Store the info in the object.
   ($self->{'Artist'} = $1) if $artist =~ /^artist\s+(.*)/;
   ($self->{'CDName'} = $1) if $cdName =~ /^cdname\s+(.*)/;
   $self->{'Tracks'} = \@trackInfo;
   $self->{'Index'} = \@indexInfo;
   
   return bless $self;
}