summaryrefslogtreecommitdiffstats
path: root/modules/php_musicbrainz/mbDisc.php
blob: 4b423ccf9b7484996e4f24ebf7f65788b9ed31c7 (plain)
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
<?php
    class mbDiscError extends Exception { }
    
    class mbDisc {
        private $id;
        private $sectors = 0;
        private $firstTrackNum = 0;
        private $lastTrackNum = 0;
        private $tracks;

        function mbDisc( $id = '' ) {
            $this->id = $id;
            $this->tracks = array();
        }

        function setId           ( $id    ) { $this->id = $id;               }
        function getId           (        ) { return $this->id;              }
        function setSectors      ( $sectr ) { $this->sectors = $sectr;       }
        function getSectors      (        ) { return $this->sectors;         }
        function setLastTrackNum ( $track ) { $this->lastTrackNum  = $track; }
        function getLastTrackNum (        ) { return $this->lastTrackNum;    }
        function setFirstTrackNum( $track ) { $this->firstTrackNum = $track; }
        function getFirstTrackNum(        ) { return $this->firstTrackNum;   }
        
        function &getTracks() {
            return $this->tracks;
        }

        function addTrack( array $track ) {
            $this->tracks[] = $track;
        }

        function readDisc( $deviceName = '' ) {
            throw new mbDiscError( "Cannot readDisc()", 1 );
        }

        function getSubmissionUrl( Disc $disc, $host='mm.musicbrainz.org', $port=80 ) {
            if ( $port == 80 )
              $netloc = $host;
            else
              $netloc = $host . ':' . $port;

            $toc = $disc->getFirstTrackNum() . '+' . $disc->getLastTrackNum() . '+' . $disc->getSectors();

            foreach ( $disc->getTracks() as $track )
              $toc .= '+' . $track[0];

            return "http://" . $netloc . "/bare/cdlookup.html?id=" . $disc->getId() . "&toc=" . $toc . 
                   "&tracks=" . $disc->getLastTrackNum();
        }
    }
?>