Skip to content

Commit 54e2b1a

Browse files
authored
Merge pull request #15 from ryohey/refactor
Release
2 parents 981a48e + 27f9ffa commit 54e2b1a

3 files changed

Lines changed: 42 additions & 48 deletions

File tree

.vscode/settings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@
55
"editor.defaultFormatter": "esbenp.prettier-vscode"
66
},
77
"editor.codeActionsOnSave": {
8-
"source.organizeImports": true
8+
"source.organizeImports": "explicit"
99
}
1010
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "midifile-ts",
3-
"version": "1.5.1",
3+
"version": "1.5.2",
44
"description": "",
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",

src/event.ts

Lines changed: 40 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ export interface PortPrefixEvent extends MetaEvent<"portPrefix"> {
4949
port: number
5050
}
5151

52-
export interface EndOfTrackEvent extends MetaEvent<"endOfTrack"> { }
52+
export interface EndOfTrackEvent extends MetaEvent<"endOfTrack"> {}
5353

5454
export interface SetTempoEvent extends MetaEvent<"setTempo"> {
5555
microsecondsPerBeat: number
@@ -139,64 +139,47 @@ export interface SysExEvent extends Event<"sysEx"> {
139139
export interface DividedSysExEvent extends Event<"dividedSysEx"> {
140140
data: number[]
141141
}
142-
// System Common Events
143-
export interface TimeCodeQuarterFrameEvent {
144-
deltaTime: number;
145-
type: "system";
146-
subtype: "timeCodeQuarterFrame";
147-
data: number;
148-
}
149142

150-
export interface SongPositionPointerEvent {
151-
deltaTime: number;
152-
type: "system";
153-
subtype: "songPositionPointer";
154-
value: number; // 14-bit value
155-
}
143+
/* System Common Events */
156144

157-
export interface SongSelectEvent {
158-
deltaTime: number;
159-
type: "system";
160-
subtype: "songSelect";
161-
songNumber: number;
145+
export interface SystemEvent<T extends string> extends Event<"system"> {
146+
subtype: T
162147
}
163148

164-
export interface TuneRequestEvent {
165-
deltaTime: number;
166-
type: "system";
167-
subtype: "tuneRequest";
149+
export interface TimeCodeQuarterFrameEvent
150+
extends SystemEvent<"timeCodeQuarterFrame"> {
151+
data: number
168152
}
169153

170-
// Real-Time Events
171-
export interface TimingClockEvent {
172-
deltaTime: number;
173-
type: "system";
174-
subtype: "timingClock";
154+
export interface SongPositionPointerEvent
155+
extends SystemEvent<"songPositionPointer"> {
156+
value: number // 14-bit value
175157
}
176158

177-
export interface StartEvent {
178-
deltaTime: number;
179-
type: "system";
180-
subtype: "start";
159+
export interface SongPositionPointerEvent
160+
extends SystemEvent<"songPositionPointer"> {
161+
value: number // 14-bit value
181162
}
182163

183-
export interface ContinueEvent {
184-
deltaTime: number;
185-
type: "system";
186-
subtype: "continue";
164+
export interface SongSelectEvent extends SystemEvent<"songSelect"> {
165+
songNumber: number
187166
}
188167

189-
export interface StopEvent {
190-
deltaTime: number;
191-
type: "system";
192-
subtype: "stop";
168+
export interface TuneRequestEvent extends SystemEvent<"tuneRequest"> {
169+
data: number[]
193170
}
194171

195-
export interface ActiveSensingEvent {
196-
deltaTime: number;
197-
type: "system";
198-
subtype: "activeSensing";
199-
}
172+
/* Real-Time Events */
173+
174+
export interface TimingClockEvent extends SystemEvent<"timingClock"> {}
175+
176+
export interface StartEvent extends SystemEvent<"start"> {}
177+
178+
export interface ContinueEvent extends SystemEvent<"continue"> {}
179+
180+
export interface StopEvent extends SystemEvent<"stop"> {}
181+
182+
export interface ActiveSensingEvent extends SystemEvent<"activeSensing"> {}
200183

201184
export type AnyMetaEvent =
202185
| SequenceNumberEvent
@@ -227,6 +210,17 @@ export type AnyChannelEvent =
227210
| UnknownChannelEvent
228211
| ControllerEvent
229212

230-
export type AnySysExEvent = SysExEvent | DividedSysExEvent | TimeCodeQuarterFrameEvent | SongPositionPointerEvent | SongSelectEvent | TuneRequestEvent | TimingClockEvent | StartEvent | ContinueEvent | StopEvent | ActiveSensingEvent
213+
export type AnySysExEvent =
214+
| SysExEvent
215+
| DividedSysExEvent
216+
| TimeCodeQuarterFrameEvent
217+
| SongPositionPointerEvent
218+
| SongSelectEvent
219+
| TuneRequestEvent
220+
| TimingClockEvent
221+
| StartEvent
222+
| ContinueEvent
223+
| StopEvent
224+
| ActiveSensingEvent
231225

232226
export type AnyEvent = AnyMetaEvent | AnySysExEvent | AnyChannelEvent

0 commit comments

Comments
 (0)