From 66cbabb09f67e175aacec8c4f4e9fac7c4d7a2c5 Mon Sep 17 00:00:00 2001 From: Leandro Ferreira Date: Sat, 26 Oct 2024 08:42:34 -0300 Subject: [PATCH] feat(channel): add MIDIEventPublisher interface for MIDI event management Define an interface for publishing MIDI events, retrieving the event channel, and handling channel shutdown. --- internal/contracts/channel/channel.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 internal/contracts/channel/channel.go diff --git a/internal/contracts/channel/channel.go b/internal/contracts/channel/channel.go new file mode 100644 index 0000000..8d1c961 --- /dev/null +++ b/internal/contracts/channel/channel.go @@ -0,0 +1,13 @@ +package channel + +import ( + "github.com/leandrodaf/midi-client/internal/entity" +) + +// MIDIEventPublisher defines an interface for publishing and managing MIDI events. +type MIDIEventPublisher interface { + Publish(event entity.MIDI) // Publishes a MIDI event to the channel. + Events() <-chan entity.MIDI // Returns the MIDI event channel for reading. + Shutdown() // Shuts down the event channel. + GetChannel() chan entity.MIDI +}