OpenTTD Source: MusicSystem Struct Reference

OpenTTD Source 14.0-RC3

Data Structures | Public Types | Public Member Functions | Data Fields | Private Member Functions | Private Attributes
MusicSystem Struct Reference

## 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]

## Detailed Description

Definition at line 40 of file music_gui.cpp.

## Member Function Documentation

## ◆ ChangeMusicSet()

void MusicSystem::ChangeMusicSet | ( | const std::string & | set_name | ) |

Change to named music set, and reset playback.

Parameters

  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.

## ◆ ChangePlaylist()

void MusicSystem::ChangePlaylist | ( | PlaylistChoices | pl | ) |

Switch to another playlist, or reload the current one.

Parameters

  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().

## ◆ ChangePlaylistPosition()

void MusicSystem::ChangePlaylistPosition | ( | int | ofs | ) |
| 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.

Parameters

  ofs | Amount to move playlist position by.

Definition at line 414 of file music_gui.cpp.

References active_playlist.

Referenced by Next(), Play(), and Prev().

## ◆ GetSetIndex()

uint MusicSystem::GetSetIndex | ( |  | ) |
| private

Get set index from current playlist position.

Returns
  current set index, or UINT_MAX if nothing is selected.

Definition at line 199 of file music_gui.cpp.

References active_playlist.

Referenced by Shuffle(), and Unshuffle().

## ◆ PlaylistAdd()

void MusicSystem::PlaylistAdd | ( | size_t | song_index | ) |

Append a song to a custom playlist.

Always adds to the currently active playlist.

Parameters

  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().

## ◆ PlaylistClear()

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().

## ◆ PlaylistRemove()

void MusicSystem::PlaylistRemove | ( | size_t | song_index | ) |

Remove a song from a custom playlist.

Parameters

  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.

## ◆ SaveCustomPlaylist()

void MusicSystem::SaveCustomPlaylist | ( | PlaylistChoices | pl | ) |
| private

Save a custom playlist to settings after modification.

Parameters

  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().

## ◆ SetPositionBySetIndex()

void MusicSystem::SetPositionBySetIndex | ( | uint | set_index | ) |
| private

Set playlist position by set index.

Parameters

  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().

The documentation for this struct was generated from the following file:

- src/music_gui.cpp