Skip to content

Commit 2ba854a

Browse files
authored
Merge pull request tinogoehlert#26 from tinogoehlert/win-exclude_portmidi_from_build
remove portmidi from windows build
2 parents 8a64904 + 8fbd5b8 commit 2ba854a

File tree

3 files changed

+41
-14
lines changed

3 files changed

+41
-14
lines changed

audio/midi/playback.go

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ import (
1212
"gitlab.com/gomidi/midi/mid"
1313
"gitlab.com/gomidi/midi/midimessage/channel"
1414
"gitlab.com/gomidi/midi/midimessage/meta"
15-
"gitlab.com/gomidi/rtmididrv"
16-
"gitlab.com/ubunatic/portmididrv"
1715
)
1816

1917
// TicksPerSecond defines the default number of MIDI ticks per second used for playback.
@@ -42,6 +40,10 @@ const (
4240
Any Provider = "any"
4341
)
4442

43+
type drvInitFunc func() (mid.Driver, error)
44+
45+
var drvInit = make(map[Provider]drvInitFunc)
46+
4547
func (p Provider) match(provider Provider) bool {
4648
return p == Any || p == provider
4749
}
@@ -58,19 +60,19 @@ func (p *Player) initDriver(providers ...Provider) error {
5860
providers = []Provider{Any}
5961
}
6062

61-
for _, pr := range providers {
63+
var initFunc drvInitFunc = nil
64+
for _, prov := range providers {
6265
switch {
63-
case pr.match(RTMidi):
64-
fmt.Println("trying MIDI driver: gomidi/rtmididrv")
65-
if drv, err := rtmididrv.New(); err != nil {
66-
errors = append(errors, err.Error())
67-
} else {
68-
p.drv = drv
69-
return nil
70-
}
71-
case pr.match(PortMidi):
72-
fmt.Println("trying MIDI driver: ubunatic/portmididrv")
73-
if drv, err := portmididrv.New(); err != nil {
66+
case prov.match(RTMidi):
67+
initFunc = drvInit[RTMidi]
68+
fmt.Printf("trying MIDI driver: %s\n", string(RTMidi))
69+
case prov.match(PortMidi):
70+
initFunc = drvInit[PortMidi]
71+
fmt.Printf("trying MIDI driver: %s\n", string(PortMidi))
72+
}
73+
74+
if initFunc != nil {
75+
if drv, err := initFunc(); err != nil {
7476
errors = append(errors, err.Error())
7577
} else {
7678
p.drv = drv

audio/midi/portmididrv.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// +build !windows
2+
3+
package midi
4+
5+
import (
6+
"gitlab.com/gomidi/midi/mid"
7+
"gitlab.com/ubunatic/portmididrv"
8+
)
9+
10+
func init() {
11+
drvInit[PortMidi] = new
12+
}
13+
14+
func new() (mid.Driver, error) {
15+
return portmididrv.New()
16+
}

audio/midi/rtmididrv.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package midi
2+
3+
import (
4+
"gitlab.com/gomidi/rtmididrv"
5+
)
6+
7+
func init() {
8+
drvInit[RTMidi] = rtmididrv.New
9+
}

0 commit comments

Comments
 (0)