104 lines
2.7 KiB
Go
104 lines
2.7 KiB
Go
package event
|
|
|
|
import "git.netflux.io/rob/octoplex/internal/domain"
|
|
|
|
type Name string
|
|
|
|
const (
|
|
EventNameAppStateChanged Name = "app_state_changed"
|
|
EventNameDestinationAdded Name = "destination_added"
|
|
EventNameAddDestinationFailed Name = "add_destination_failed"
|
|
EventNameStartDestinationFailed Name = "start_destination_failed"
|
|
EventNameDestinationRemoved Name = "destination_removed"
|
|
EventNameRemoveDestinationFailed Name = "remove_destination_failed"
|
|
EventNameFatalErrorOccurred Name = "fatal_error_occurred"
|
|
EventNameOtherInstanceDetected Name = "other_instance_detected"
|
|
EventNameMediaServerStarted Name = "media_server_started"
|
|
)
|
|
|
|
// Event represents something which happened in the appllication.
|
|
type Event interface {
|
|
name() Name
|
|
}
|
|
|
|
// AppStateChangedEvent is emitted when the application state changes.
|
|
type AppStateChangedEvent struct {
|
|
State domain.AppState
|
|
}
|
|
|
|
func (e AppStateChangedEvent) name() Name {
|
|
return EventNameAppStateChanged
|
|
}
|
|
|
|
// DestinationAddedEvent is emitted when a destination is successfully added.
|
|
type DestinationAddedEvent struct {
|
|
URL string
|
|
}
|
|
|
|
func (e DestinationAddedEvent) name() Name {
|
|
return EventNameDestinationAdded
|
|
}
|
|
|
|
// AddDestinationFailedEvent is emitted when a destination fails to be added.
|
|
type AddDestinationFailedEvent struct {
|
|
Err error
|
|
}
|
|
|
|
func (e AddDestinationFailedEvent) name() Name {
|
|
return EventNameAddDestinationFailed
|
|
}
|
|
|
|
// StartDestinationFailedEvent is emitted when a destination fails to start.
|
|
type StartDestinationFailedEvent struct{}
|
|
|
|
func (e StartDestinationFailedEvent) name() Name {
|
|
return EventNameStartDestinationFailed
|
|
}
|
|
|
|
// DestinationRemovedEvent is emitted when a destination is successfully
|
|
// removed.
|
|
type DestinationRemovedEvent struct {
|
|
URL string
|
|
}
|
|
|
|
func (e DestinationRemovedEvent) name() Name {
|
|
return EventNameDestinationRemoved
|
|
}
|
|
|
|
// RemoveDestinationFailedEvent is emitted when a destination fails to be
|
|
// removed.
|
|
type RemoveDestinationFailedEvent struct {
|
|
Err error
|
|
}
|
|
|
|
func (e RemoveDestinationFailedEvent) name() Name {
|
|
return EventNameRemoveDestinationFailed
|
|
}
|
|
|
|
// FatalErrorOccurredEvent is emitted when a fatal application
|
|
// error occurs.
|
|
type FatalErrorOccurredEvent struct {
|
|
Message string
|
|
}
|
|
|
|
// OtherInstanceDetectedEvent is emitted when the app launches and detects another instance.
|
|
type OtherInstanceDetectedEvent struct{}
|
|
|
|
func (e OtherInstanceDetectedEvent) name() Name {
|
|
return EventNameOtherInstanceDetected
|
|
}
|
|
|
|
func (e FatalErrorOccurredEvent) name() Name {
|
|
return "fatal_error_occurred"
|
|
}
|
|
|
|
// MediaServerStartedEvent is emitted when the mediaserver component starts successfully.
|
|
type MediaServerStartedEvent struct {
|
|
RTMPURL string
|
|
RTMPSURL string
|
|
}
|
|
|
|
func (e MediaServerStartedEvent) name() Name {
|
|
return "media_server_started"
|
|
}
|