mp

package
v0.0.0-...-58bd830 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 24, 2024 License: MIT Imports: 1 Imported by: 0

Documentation

Overview

Media Player Metadata

REFERENCE: https://www.freedesktop.org/wiki/Specifications/mpris-spec/metadata/

NOTE: This is currently linux-only.

TODO: Add Windows/macOS Implementations also.

Copyright (C) 2023 Goutham Krishna K V

Index

Constants

View Source
const (
	LoopStatusNone     = "None"
	LoopStatusTrack    = "Track"
	LoopStatusPlaylist = "Playlist"
	LoopStatusError    = "LoopStatusError"
)
View Source
const (
	// MPRIS specific
	TRACKID = "mpris:trackid"
	LENGTH  = "mpris:length"
	ART_URL = "mpris:artUrl"
	// Xesam specific
	TITLE        = "xesam:title"
	ARTIST       = "xesam:artist"
	ALBUM        = "xesam:album"
	ALBUM_ARTIST = "xesam:albumArtist"
	URL          = `xesam:url`
)
View Source
const (
	// -- PLAYBACK STATUS --
	// Support
	// - Windows
	// - Linux
	// - macOS (* needs to be built as proxy using AVPlayer.rate == 0)
	PlaybackStatusPlaying = "Playing"
	PlaybackStatusPaused  = "Paused"
	// Support
	// - Windows
	// - Linux
	PlaybackStatusStopped = "Stopped"
	// Support
	// - Windows
	PlaybackStatusChanging = "Changing"
	PlaybackStatusClosed   = "Closed"
	PlaybackStatusError    = "PlaybackStatusError"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type FullMetadata

type FullMetadata struct {
	PlaybackStatus string    `msgpack:"playbackStatus"` // RO
	LoopStatus     *string   `msgpack:"loopStatus"`     // RW (Optional)
	Rate           float64   `msgpack:"rate"`           // RW
	Shuffle        *bool     `msgpack:"shuffleEnabled"` // RW (Optional)
	Metadata       *Metadata `msgpack:"metadata"`       // RO
	Volume         float64   `msgpack:"volume"`         // RW
	Position       int64     `msgpack:"position"`       // RO
	MinimumRate    float64   `msgpack:"minimumRate"`    // RO
	MaximumRate    float64   `msgpack:"maximumRate"`    // RO
	// contains filtered or unexported fields
}

TODO: Remove field names (we use array-style msgpack)

type LoopStatus

type LoopStatus string

type MPlayerList

type MPlayerList struct {
	Players []string
	// contains filtered or unexported fields
}

TODO: Remove field names (we use array-style msgpack)

type Metadata

type Metadata struct {
	TrackId     string   `msgpack:"trackid"`
	Length      uint64   `msgpack:"length"`
	Title       string   `msgpack:"title"`
	Artist      []string `msgpack:"artist"`
	Album       string   `msgpack:"album"`
	AlbumArtist []string `msgpack:"albumArtist"`
	Url         string   `msgpack:"url"`
	ArtUrl      string   `msgpack:"artUrl"`
	// contains filtered or unexported fields
}

TODO: Remove field names (we use array-style msgpack)

func MetadataFromMPRIS

func MetadataFromMPRIS(metadata map[string]dbus.Variant) *Metadata

type PlaybackStatus

type PlaybackStatus string

type PlayerData

type PlayerData struct {
	PlayerName     string
	PlaybackStatus string
	Metadata       Metadata
	// contains filtered or unexported fields
}

TODO: Remove field names (we use array-style msgpack)

type PlayerIndex

type PlayerIndex struct {
	PlayerIndex int
	// contains filtered or unexported fields
}

TODO: Remove field names (we use array-style msgpack)

type PropertiesChangedSignal

type PropertiesChangedSignal struct {
	PlayerName    string        `msgpack:"playerName"`
	PlayerIdx     int           `msgpack:"playerIdx"`
	PlayerDataVal *FullMetadata `msgpack:"playerData"`
	// contains filtered or unexported fields
}

TODO: Remove field names (we use array-style msgpack)

type SetupStatus

type SetupStatus struct {
	Statuses []Status `msgpack:"statuses"`
	// contains filtered or unexported fields
}

TODO: Remove field names (we use array-style msgpack) TODO: Rename it to better reflect it's purpose.

type Status

type Status struct {
	Status   string   `msgpack:"status"`
	Index    int      `msgpack:"idx"`
	Name     string   `msgpack:"name"`
	Metadata Metadata `msgpack:"metadata"`
	// contains filtered or unexported fields
}

TODO: Remove field names (we use array-style msgpack)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL