summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Kellermann <max@musicpd.org>2017-12-20 20:27:44 +0100
committerMax Kellermann <max@musicpd.org>2017-12-21 10:25:38 +0100
commit994c9a01e327c6ef379ff7ea7530321d3bdfe0fd (patch)
tree94f644e38ef0274904ca2472d29c2697af928350
parentad1d5e824808c92b77660f557860f02caa642fe1 (diff)
player/Control: reorder attributes to reduce padding
-rw-r--r--src/player/Control.hxx48
1 files changed, 25 insertions, 23 deletions
diff --git a/src/player/Control.hxx b/src/player/Control.hxx
index 980144957..2eae62313 100644
--- a/src/player/Control.hxx
+++ b/src/player/Control.hxx
@@ -141,11 +141,6 @@ struct PlayerControl final : AudioOutputClient {
*/
Cond client_cond;
- PlayerCommand command = PlayerCommand::NONE;
- PlayerState state = PlayerState::STOP;
-
- PlayerError error_type = PlayerError::NONE;
-
/**
* The error that occurred in the player thread. This
* attribute is only valid if #error_type is not
@@ -155,6 +150,14 @@ struct PlayerControl final : AudioOutputClient {
std::exception_ptr error;
/**
+ * The next queued song.
+ *
+ * This is a duplicate, and must be freed when this attribute
+ * is cleared.
+ */
+ std::unique_ptr<DetachedSong> next_song;
+
+ /**
* A copy of the current #DetachedSong after its tags have
* been updated by the decoder (for example, a radio stream
* that has sent a new tag after switching to the next song).
@@ -166,28 +169,13 @@ struct PlayerControl final : AudioOutputClient {
*/
std::unique_ptr<DetachedSong> tagged_song;
- uint16_t bit_rate;
- AudioFormat audio_format;
- SignedSongTime total_time;
- SongTime elapsed_time;
-
- /**
- * The next queued song.
- *
- * This is a duplicate, and must be freed when this attribute
- * is cleared.
- */
- std::unique_ptr<DetachedSong> next_song;
-
- SongTime seek_time;
+ PlayerCommand command = PlayerCommand::NONE;
+ PlayerState state = PlayerState::STOP;
- CrossFadeSettings cross_fade;
+ PlayerError error_type = PlayerError::NONE;
- const ReplayGainConfig replay_gain_config;
ReplayGainMode replay_gain_mode = ReplayGainMode::OFF;
- double total_play_time = 0;
-
/**
* If this flag is set, then the player will be auto-paused at
* the end of the song, before the next song starts to play.
@@ -197,6 +185,20 @@ struct PlayerControl final : AudioOutputClient {
*/
bool border_pause = false;
+ AudioFormat audio_format;
+ uint16_t bit_rate;
+
+ SignedSongTime total_time;
+ SongTime elapsed_time;
+
+ SongTime seek_time;
+
+ CrossFadeSettings cross_fade;
+
+ const ReplayGainConfig replay_gain_config;
+
+ double total_play_time = 0;
+
PlayerControl(PlayerListener &_listener,
MultipleOutputs &_outputs,
unsigned buffer_chunks,