Skip to content

Commit 4e25068

Browse files
authored
Merge pull request #25 from justlaputa/fix-issue-22
Retrieve all tracks
2 parents 65df68e + 23b16a7 commit 4e25068

14 files changed

+475
-218
lines changed

lib/cue.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ function parseFlags(params: string[], cueSheet: CueSheet) {
9595
track.flags = params.slice(0);
9696
}
9797

98-
function parseIndex(params: string[], cueSheet: CueSheet): Index {
98+
function parseIndex(params: string[], cueSheet: CueSheet) {
9999
const _number = parseInt(params[0], 10);
100100
const time = parseTime(params[1]);
101101
const track = cueSheet.getCurrentTrack();
@@ -112,9 +112,13 @@ function parseIndex(params: string[], cueSheet: CueSheet): Index {
112112
throw new Error(`Index number must between 0 and 99: ${_number}`);
113113
}
114114

115-
if (_number === 1 && time.min === 0 && time.min === 0 && time.sec === 0 && time.frame === 0) {
116-
cueSheet.newFile();
117-
return;
115+
if (_number === 1) {
116+
// Assign track to current file
117+
const file = cueSheet.getCurrentFile();
118+
if (!file.tracks) {
119+
file.tracks = [];
120+
}
121+
file.tracks.push(track);
118122
}
119123

120124
if (!track.indexes) {

lib/cuesheet.ts

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ export class CueSheet implements ICueSheet {
5050
public rem: string[] = null;
5151
public encoding: string;
5252

53+
private track: Track;
54+
5355
public getCurrentFile(): File {
5456
if (this.files && this.files.length > 0) {
5557
return this.files[this.files.length - 1];
@@ -59,13 +61,7 @@ export class CueSheet implements ICueSheet {
5961
}
6062

6163
public getCurrentTrack(): Track {
62-
const file = this.getCurrentFile();
63-
64-
if (file && file.tracks && file.tracks.length > 0) {
65-
return file.tracks[file.tracks.length - 1];
66-
} else {
67-
return null;
68-
}
64+
return this.track;
6965
}
7066

7167
public newFile(): File {
@@ -80,18 +76,8 @@ export class CueSheet implements ICueSheet {
8076
}
8177

8278
public newTrack(_number: number, type: string): CueSheet {
83-
const file = this.getCurrentFile();
84-
85-
if (!file) {
86-
throw new Error(`No file for track: ${_number} ${type}`);
87-
}
88-
89-
if (!file.tracks) {
90-
file.tracks = [];
91-
}
92-
93-
file.tracks.push(new Track(_number, type));
9479

80+
this.track = new Track(_number, type);
9581
return this;
9682
}
9783
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
REM GENRE R&B
2+
REM DATE 2016
3+
REM DISCID 720CEB0A
4+
REM COMMENT "ExactAudioCopy v1.1"
5+
PERFORMER "Michael Kiwanuka"
6+
TITLE "Love And Hate"
7+
FILE "Michael Kiwanuka - Love And Hate.flac" WAVE
8+
TRACK 01 AUDIO
9+
TITLE "Cold Little Heart"
10+
PERFORMER "Michael Kiwanuka"
11+
INDEX 01 00:00:00
12+
TRACK 02 AUDIO
13+
TITLE "Black Man In A White World"
14+
PERFORMER "Michael Kiwanuka"
15+
INDEX 00 09:58:54
16+
INDEX 01 10:10:36
17+
TRACK 03 AUDIO
18+
TITLE "Falling"
19+
PERFORMER "Michael Kiwanuka"
20+
INDEX 01 14:29:33
21+
TRACK 04 AUDIO
22+
TITLE "Place I Belong"
23+
PERFORMER "Michael Kiwanuka"
24+
INDEX 01 18:46:24
25+
TRACK 05 AUDIO
26+
TITLE "Love And Hate"
27+
PERFORMER "Michael Kiwanuka"
28+
INDEX 01 23:33:63
29+
TRACK 06 AUDIO
30+
TITLE "One More Night"
31+
PERFORMER "Michael Kiwanuka"
32+
INDEX 01 30:40:70
33+
TRACK 07 AUDIO
34+
TITLE "I'll Never Love"
35+
PERFORMER "Michael Kiwanuka"
36+
INDEX 01 34:34:26
37+
TRACK 08 AUDIO
38+
TITLE "Rule The World"
39+
PERFORMER "Michael Kiwanuka"
40+
INDEX 01 37:20:25
41+
TRACK 09 AUDIO
42+
TITLE "Father's Child"
43+
PERFORMER "Michael Kiwanuka"
44+
INDEX 01 43:03:12
45+
INDEX 02 50:06:41
46+
TRACK 10 AUDIO
47+
TITLE "The Final Frame"
48+
PERFORMER "Michael Kiwanuka"
49+
INDEX 00 50:06:41
50+
INDEX 01 50:08:23
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
REM DATE 2005
2+
REM DISCID 1411B112
3+
REM COMMENT "ExactAudioCopy v1.1"
4+
PERFORMER "Schiller"
5+
TITLE "Day and Night"
6+
FILE "Schiller - Day and Night.flac" WAVE
7+
TRACK 01 AUDIO
8+
TITLE "Welcome"
9+
PERFORMER "Schiller"
10+
INDEX 01 00:00:00
11+
TRACK 02 AUDIO
12+
TITLE "Nightflight"
13+
PERFORMER "Schiller"
14+
INDEX 01 01:09:47
15+
TRACK 03 AUDIO
16+
TITLE "Tired of Being Alone"
17+
PERFORMER "Schiller"
18+
INDEX 01 06:55:22
19+
TRACK 04 AUDIO
20+
TITLE "What's Coming"
21+
PERFORMER "Schiller"
22+
INDEX 01 10:57:36
23+
TRACK 05 AUDIO
24+
TITLE "Sunrise"
25+
PERFORMER "Schiller"
26+
INDEX 01 15:23:43
27+
TRACK 06 AUDIO
28+
TITLE "Miles and Miles"
29+
PERFORMER "Schiller"
30+
INDEX 01 18:36:31
31+
TRACK 07 AUDIO
32+
TITLE "Das Meer"
33+
PERFORMER "Schiller"
34+
INDEX 01 22:30:57
35+
TRACK 08 AUDIO
36+
TITLE "I Know (feat. Jette Von Roth)"
37+
PERFORMER "Schiller"
38+
INDEX 01 27:21:18
39+
TRACK 09 AUDIO
40+
TITLE "Morning Dew"
41+
PERFORMER "Schiller"
42+
INDEX 01 32:19:36
43+
TRACK 10 AUDIO
44+
TITLE "Berlin Bombay"
45+
PERFORMER "Schiller"
46+
INDEX 01 36:22:07
47+
TRACK 11 AUDIO
48+
TITLE "The Smile"
49+
PERFORMER "Schiller"
50+
INDEX 01 41:11:63
51+
TRACK 12 AUDIO
52+
TITLE "Lightstorm (feat. Kim Sanders)"
53+
PERFORMER "Schiller"
54+
INDEX 01 44:26:20
55+
TRACK 13 AUDIO
56+
TITLE "Falling"
57+
PERFORMER "Schiller"
58+
INDEX 01 47:45:33
59+
TRACK 14 AUDIO
60+
TITLE "Rings of Time"
61+
PERFORMER "Schiller"
62+
INDEX 01 53:02:26
63+
TRACK 15 AUDIO
64+
TITLE "I Saved You (feat. Kim Sanders)"
65+
PERFORMER "Schiller"
66+
INDEX 01 56:52:66
67+
TRACK 16 AUDIO
68+
TITLE "Misguiding Light"
69+
PERFORMER "Schiller"
70+
INDEX 01 61:31:43
71+
TRACK 17 AUDIO
72+
TITLE "Fireworks"
73+
PERFORMER "Schiller"
74+
INDEX 01 64:49:60
75+
TRACK 18 AUDIO
76+
TITLE "Sleepy Storm (feat. Jette Von Roth)"
77+
PERFORMER "Schiller"
78+
INDEX 01 69:54:21

0 commit comments

Comments
 (0)