Added callbacks to AddHead / AddTail
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
0d8d4f40bb
commit
f29e715be1
|
@ -690,14 +690,14 @@ func TestQueue(t *testing.T) {
|
|||
|
||||
q.AddTail(source, func(q *audio.Queue, entry *audio.QueueEntry) {
|
||||
t.Logf("Started playback of %d %s\n", entry.Identifier, fullPath)
|
||||
|
||||
}, func(q *audio.Queue, entry *audio.QueueEntry) {
|
||||
t.Logf("Finished playback of %d %s: output %d samples\n", entry.Identifier, fullPath, entry.ReadSamples)
|
||||
}, func(q *audio.Queue, entry *audio.QueueEntry) {
|
||||
fp.Close()
|
||||
if len(q.GetQueue()) == 0 {
|
||||
t.Log("Finished playback, closing\n")
|
||||
q.Close()
|
||||
}
|
||||
t.Logf("Finished playback of %d %s: output %d samples\n", entry.Identifier, fullPath, entry.ReadSamples)
|
||||
fp.Close()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -717,7 +717,7 @@ func TestQueue(t *testing.T) {
|
|||
if result.Channels != 2 {
|
||||
t.Errorf("Wrong Channel Count %d != %d", result.SampleRate, 2)
|
||||
}
|
||||
if sink.SamplesRead != 437731779 {
|
||||
t.Errorf("Wrong Sample Count %d != %d", sink.SamplesRead, 437731779)
|
||||
if sink.SamplesRead != 470828559 {
|
||||
t.Errorf("Wrong Sample Count %d != %d", sink.SamplesRead, 470828559)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -137,26 +137,28 @@ func (q *Queue) getFilterChain(source Source) Source {
|
|||
}
|
||||
}
|
||||
|
||||
func (q *Queue) AddHead(source Source, startPlayback func(q *Queue, entry *QueueEntry), endPlayback func(q *Queue, entry *QueueEntry)) (identifier QueueIdentifier) {
|
||||
func (q *Queue) AddHead(source Source, startCallback func(q *Queue, entry *QueueEntry), endCallback func(q *Queue, entry *QueueEntry), removeCallback func(q *Queue, entry *QueueEntry)) (identifier QueueIdentifier) {
|
||||
q.lock.Lock()
|
||||
|
||||
splicedOutput, cancel := q.spliceSources(source)
|
||||
identifier = q.identifierCounter
|
||||
if len(q.queue) > 0 {
|
||||
q.queue = append(q.queue[:1], append([]*QueueEntry{&QueueEntry{
|
||||
Identifier: identifier,
|
||||
Source: q.getFilterChain(splicedOutput),
|
||||
cancel: cancel,
|
||||
StartCallback: startPlayback,
|
||||
EndCallback: endPlayback,
|
||||
Identifier: identifier,
|
||||
Source: q.getFilterChain(splicedOutput),
|
||||
cancel: cancel,
|
||||
StartCallback: startCallback,
|
||||
EndCallback: endCallback,
|
||||
RemoveCallback: removeCallback,
|
||||
}}, q.queue[1:]...)...)
|
||||
} else {
|
||||
q.queue = append(q.queue, &QueueEntry{
|
||||
Identifier: identifier,
|
||||
Source: q.getFilterChain(splicedOutput),
|
||||
cancel: cancel,
|
||||
StartCallback: startPlayback,
|
||||
EndCallback: endPlayback,
|
||||
Identifier: identifier,
|
||||
Source: q.getFilterChain(splicedOutput),
|
||||
cancel: cancel,
|
||||
StartCallback: startCallback,
|
||||
EndCallback: endCallback,
|
||||
RemoveCallback: removeCallback,
|
||||
})
|
||||
}
|
||||
q.identifierCounter++
|
||||
|
@ -166,17 +168,18 @@ func (q *Queue) AddHead(source Source, startPlayback func(q *Queue, entry *Queue
|
|||
return
|
||||
}
|
||||
|
||||
func (q *Queue) AddTail(source Source, startPlayback func(q *Queue, entry *QueueEntry), endPlayback func(q *Queue, entry *QueueEntry)) (identifier QueueIdentifier) {
|
||||
func (q *Queue) AddTail(source Source, startCallback func(q *Queue, entry *QueueEntry), endCallback func(q *Queue, entry *QueueEntry), removeCallback func(q *Queue, entry *QueueEntry)) (identifier QueueIdentifier) {
|
||||
q.lock.Lock()
|
||||
|
||||
splicedOutput, cancel := q.spliceSources(source)
|
||||
identifier = q.identifierCounter
|
||||
q.queue = append(q.queue, &QueueEntry{
|
||||
Identifier: identifier,
|
||||
Source: q.getFilterChain(splicedOutput),
|
||||
cancel: cancel,
|
||||
StartCallback: startPlayback,
|
||||
EndCallback: endPlayback,
|
||||
Identifier: identifier,
|
||||
Source: q.getFilterChain(splicedOutput),
|
||||
cancel: cancel,
|
||||
StartCallback: startCallback,
|
||||
EndCallback: endCallback,
|
||||
RemoveCallback: removeCallback,
|
||||
})
|
||||
q.identifierCounter++
|
||||
q.lock.Unlock()
|
||||
|
|
Loading…
Reference in a new issue