OpenTTD Source
20241108-master-g80f628063a
|
Data Structures | |
struct | PlaylistEntry |
Public Types | |
enum | PlaylistChoices { PLCH_ALLMUSIC , PLCH_OLDSTYLE , PLCH_NEWSTYLE , PLCH_EZYSTREET , PLCH_CUSTOM1 , PLCH_CUSTOM2 , PLCH_THEMEONLY , PLCH_MAX } |
typedef std::vector< PlaylistEntry > | Playlist |
Public Member Functions | |
void | BuildPlaylists () |
Rebuild all playlists for the current music set. | |
void | ChangePlaylist (PlaylistChoices pl) |
Switch to another playlist, or reload the current one. More... | |
void | ChangeMusicSet (const std::string &set_name) |
Change to named music set, and reset playback. More... | |
void | Shuffle () |
Enable shuffle mode. | |
void | Unshuffle () |
Disable shuffle mode. | |
void | Play () |
Start/restart playback at current song. | |
void | Stop () |
Stop playback and set flag that we don't intend to play music. | |
void | Next () |
Skip to next track. | |
void | Prev () |
Skip to previous track. | |
void | CheckStatus () |
Check that music is playing if it should, and that appropriate playlist is active for game/main menu. | |
bool | IsPlaying () const |
Is the player getting music right now? | |
bool | IsShuffle () const |
Is shuffle mode enabled? | |
PlaylistEntry | GetCurrentSong () const |
Return the current song, or a dummy if none. | |
bool | IsCustomPlaylist () const |
Is one of the custom playlists selected? | |
void | PlaylistAdd (size_t song_index) |
Append a song to a custom playlist. More... | |
void | PlaylistRemove (size_t song_index) |
Remove a song from a custom playlist. More... | |
void | PlaylistClear () |
Remove all songs from the current custom playlist. More... | |
Data Fields | |
Playlist | active_playlist |
current play order of songs, including any shuffle | |
Playlist | displayed_playlist |
current playlist as displayed in GUI, never in shuffled order | |
Playlist | music_set |
all songs in current music set, in set order | |
PlaylistChoices | selected_playlist |
Private Member Functions | |
uint | GetSetIndex () |
Get set index from current playlist position. More... | |
void | SetPositionBySetIndex (uint set_index) |
Set playlist position by set index. More... | |
void | ChangePlaylistPosition (int ofs) |
Change playlist position pointer by the given offset, making sure to keep it within valid range. More... | |
void | SaveCustomPlaylist (PlaylistChoices pl) |
Save a custom playlist to settings after modification. More... | |
Private Attributes | |
int | playlist_position |
Playlist | standard_playlists [PLCH_MAX] |
Definition at line 40 of file music_gui.cpp.
void MusicSystem::ChangeMusicSet | ( | const std::string & | set_name | ) |
Change to named music set, and reset playback.
set_name | Name of music set to select |
Definition at line 172 of file music_gui.cpp.
References BuildPlaylists(), ChangePlaylist(), BaseMusic::ini_set, InvalidateWindowData(), BaseMedia< MusicSet >::SetSetByName(), WC_GAME_OPTIONS, WC_MUSIC_TRACK_SELECTION, WC_MUSIC_WINDOW, and WN_GAME_OPTIONS_GAME_OPTIONS.
void MusicSystem::ChangePlaylist | ( | PlaylistChoices | pl | ) |
Switch to another playlist, or reload the current one.
pl | Playlist to select |
Definition at line 148 of file music_gui.cpp.
References _settings_client, ClientSettings::music, and MusicSettings::playlist.
Referenced by ChangeMusicSet(), and PlaylistClear().
|
private |
Change playlist position pointer by the given offset, making sure to keep it within valid range.
If the playlist is empty, position is always set to 0.
ofs | Amount to move playlist position by. |
Definition at line 414 of file music_gui.cpp.
References active_playlist.
|
private |
Get set index from current playlist position.
Definition at line 199 of file music_gui.cpp.
References active_playlist.
Referenced by Shuffle(), and Unshuffle().
void MusicSystem::PlaylistAdd | ( | size_t | song_index | ) |
Append a song to a custom playlist.
Always adds to the currently active playlist.
song_index | Index of song in the current music set to add |
Definition at line 328 of file music_gui.cpp.
References active_playlist, displayed_playlist, IsCustomPlaylist(), IsPlaying(), IsShuffle(), music_set, NUM_SONGS_PLAYLIST, and Play().
void MusicSystem::PlaylistClear | ( | ) |
Remove all songs from the current custom playlist.
Effectively stops playback too.
Definition at line 399 of file music_gui.cpp.
References ChangePlaylist(), IsCustomPlaylist(), and SaveCustomPlaylist().
void MusicSystem::PlaylistRemove | ( | size_t | song_index | ) |
Remove a song from a custom playlist.
song_index | Index in the custom playlist to remove. |
Definition at line 367 of file music_gui.cpp.
References active_playlist, MusicSongInfo::cat_index, displayed_playlist, MusicSongInfo::filename, InvalidateWindowData(), IsCustomPlaylist(), IsPlaying(), Play(), SaveCustomPlaylist(), and WC_MUSIC_TRACK_SELECTION.
|
private |
Save a custom playlist to settings after modification.
pl | Playlist to store back |
Definition at line 429 of file music_gui.cpp.
References _settings_client, MusicSettings::custom_1, MusicSettings::custom_2, MemSetT(), ClientSettings::music, and NUM_SONGS_PLAYLIST.
Referenced by PlaylistClear(), and PlaylistRemove().
|
private |
Set playlist position by set index.
set_index | Set index to select. |
Definition at line 189 of file music_gui.cpp.
References active_playlist, and MusicSystem::PlaylistEntry::set_index.
Referenced by Unshuffle().