Initial upload

This commit is contained in:
MassiveBox 2025-05-29 22:52:44 +02:00
commit cefd7abe8a
Signed by: massivebox
GPG key ID: 9B74D3A59181947D
19 changed files with 1027 additions and 0 deletions

76
fcast/protocol.go Normal file
View file

@ -0,0 +1,76 @@
package fcast
const (
DefaultPort = 46899
)
type PlayMessage struct {
Container string `json:"container"`
Url string `json:"url,omitempty"`
Content string `json:"content,omitempty"`
Time int `json:"time"` // start time of playback (s)
Speed float32 `json:"speed,omitempty"` // 1=100%, 1 is default
Headers map[string]string `json:"headers,omitempty"` // headers to be passed to the server when requesting media
}
type SeekMessage struct {
Time int `json:"time"` // time to seek in seconds
}
type PlaybackUpdateMessage struct {
GenerationTime int64 `json:"generationTime"` // generation time in UNIX (ms)
Time float32 `json:"time"` // current time playing (s)
Duration float32 `json:"duration"`
State PlaybackState `json:"state"`
}
type SetVolumeMessage struct {
Volume float32 `json:"volume"` // range: 0-1
}
type VolumeUpdateMessage struct {
GenerationTime int64 `json:"generationTime"`
Volume float32 `json:"volume"` // range: 0-1
}
type SetSpeedMessage struct {
Speed float32 `json:"speed"`
}
type PlaybackErrorMessage struct {
Message string `json:"message"`
}
type VersionMessage struct {
Version float32 `json:"version"`
}
type PauseMessage struct{}
type ResumeMessage struct{}
type StopMessage struct{}
type PingMessage struct{}
type PongMessage struct{}
type PlaybackState uint8
const (
Play OpCode = 1
Pause OpCode = 2
Resume OpCode = 3
Stop OpCode = 4
Seek OpCode = 5
PlaybackUpdate OpCode = 6
VolumeUpdate OpCode = 7
SetVolume OpCode = 8
PlaybackError OpCode = 9
SetSpeed OpCode = 10
Version OpCode = 11
Ping OpCode = 12
Pong OpCode = 13
)
const (
Idle PlaybackState = 0
Playing PlaybackState = 1
Paused PlaybackState = 2
)