use state machine to manage player state

This commit is contained in:
aynakeya
2025-08-07 01:09:07 +08:00
parent 3aebdb00f9
commit 5a699a1e2e
9 changed files with 105 additions and 50 deletions

View File

@@ -29,7 +29,7 @@ var EventsMapping = map[event.EventId]any{
PlayerPlayingUpdate: PlayerPlayingUpdateEvent{},
PlayerPropertyPauseUpdate: PlayerPropertyPauseUpdateEvent{},
PlayerPropertyPercentPosUpdate: PlayerPropertyPercentPosUpdateEvent{},
PlayerPropertyIdleActiveUpdate: PlayerPropertyIdleActiveUpdateEvent{},
PlayerPropertyStateUpdate: PlayerPropertyStateUpdateEvent{},
PlayerPropertyTimePosUpdate: PlayerPropertyTimePosUpdateEvent{},
PlayerPropertyDurationUpdate: PlayerPropertyDurationUpdateEvent{},
PlayerPropertyVolumeUpdate: PlayerPropertyVolumeUpdateEvent{},

View File

@@ -21,10 +21,10 @@ type PlayerPropertyPercentPosUpdateEvent struct {
PercentPos float64
}
const PlayerPropertyIdleActiveUpdate = "update.player.property.idle_active"
const PlayerPropertyStateUpdate = "update.player.property.state"
type PlayerPropertyIdleActiveUpdateEvent struct {
IsIdle bool
type PlayerPropertyStateUpdateEvent struct {
State model.PlayerState
}
const PlayerPropertyTimePosUpdate = "update.player.property.time_pos"