From bf372e3e1f6668c76b497b63acdf96a3fea6477c Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@musicpd.org>
Date: Sun, 23 Sep 2018 17:28:41 +0200
Subject: [PATCH] player/Control: move public methods up

---
 src/player/Control.hxx | 228 +++++++++++++++++++----------------------
 1 file changed, 106 insertions(+), 122 deletions(-)

diff --git a/src/player/Control.hxx b/src/player/Control.hxx
index a17d1a814..5e2fb4a89 100644
--- a/src/player/Control.hxx
+++ b/src/player/Control.hxx
@@ -246,6 +246,112 @@ public:
 		thread.Start();
 	}
 
+	void Kill() noexcept;
+
+	/**
+	 * Like CheckRethrowError(), but locks and unlocks the object.
+	 */
+	void LockCheckRethrowError() const {
+		const std::lock_guard<Mutex> protect(mutex);
+		CheckRethrowError();
+	}
+
+	void LockClearError() noexcept;
+
+	PlayerError GetErrorType() const noexcept {
+		return error_type;
+	}
+
+	void LockUpdateAudio() noexcept;
+
+	/**
+	 * Throws on error.
+	 *
+	 * @param song the song to be queued
+	 */
+	void Play(std::unique_ptr<DetachedSong> song);
+
+	/**
+	 * @param song the song to be queued; the given instance will be owned
+	 * and freed by the player
+	 */
+	void LockEnqueueSong(std::unique_ptr<DetachedSong> song) noexcept;
+
+	/**
+	 * Makes the player thread seek the specified song to a position.
+	 *
+	 * Throws on error.
+	 *
+	 * @param song the song to be queued; the given instance will be owned
+	 * and freed by the player
+	 */
+	void LockSeek(std::unique_ptr<DetachedSong> song, SongTime t);
+
+	void LockStop() noexcept;
+
+	/**
+	 * see PlayerCommand::CANCEL
+	 */
+	void LockCancel() noexcept;
+
+	void LockSetPause(bool pause_flag) noexcept;
+
+	void LockPause() noexcept;
+
+	/**
+	 * Set the player's #border_pause flag.
+	 */
+	void LockSetBorderPause(bool border_pause) noexcept;
+	void SetCrossFade(FloatDuration duration) noexcept;
+
+	auto GetCrossFade() const noexcept {
+		return cross_fade.duration;
+	}
+
+	void SetMixRampDb(float mixramp_db) noexcept;
+
+	float GetMixRampDb() const noexcept {
+		return cross_fade.mixramp_db;
+	}
+
+	void SetMixRampDelay(FloatDuration mixramp_delay) noexcept;
+
+	auto GetMixRampDelay() const noexcept {
+		return cross_fade.mixramp_delay;
+	}
+
+	void LockSetReplayGainMode(ReplayGainMode _mode) noexcept {
+		const std::lock_guard<Mutex> protect(mutex);
+		replay_gain_mode = _mode;
+	}
+
+	/**
+	 * Like ReadTaggedSong(), but locks and unlocks the object.
+	 */
+	std::unique_ptr<DetachedSong> LockReadTaggedSong() noexcept;
+
+	gcc_pure
+	PlayerStatus LockGetStatus() noexcept;
+
+	PlayerState GetState() const noexcept {
+		return state;
+	}
+
+	struct SyncInfo {
+		PlayerState state;
+		bool has_next_song;
+	};
+
+	gcc_pure
+	SyncInfo LockGetSyncInfo() const noexcept {
+		const std::lock_guard<Mutex> protect(mutex);
+		return {state, next_song != nullptr};
+	}
+
+	auto GetTotalPlayTime() const noexcept {
+		return total_play_time;
+	}
+
 private:
 	/**
 	 * Signals the object.  The object should be locked prior to
@@ -372,22 +478,6 @@ private:
 		SynchronousCommand(cmd);
 	}
 
-public:
-	/**
-	 * Throws on error.
-	 *
-	 * @param song the song to be queued
-	 */
-	void Play(std::unique_ptr<DetachedSong> song);
-
-	/**
-	 * see PlayerCommand::CANCEL
-	 */
-	void LockCancel() noexcept;
-
-	void LockSetPause(bool pause_flag) noexcept;
-
-private:
 	void PauseLocked() noexcept;
 
 	void ClearError() noexcept {
@@ -395,43 +485,12 @@ private:
 		error = std::exception_ptr();
 	}
 
-public:
-	void LockPause() noexcept;
-
-	/**
-	 * Set the player's #border_pause flag.
-	 */
-	void LockSetBorderPause(bool border_pause) noexcept;
-
-private:
 	bool ApplyBorderPause() noexcept {
 		if (border_pause)
 			state = PlayerState::PAUSE;
 		return border_pause;
 	}
 
-public:
-	void Kill() noexcept;
-
-	gcc_pure
-	PlayerStatus LockGetStatus() noexcept;
-
-	PlayerState GetState() const noexcept {
-		return state;
-	}
-
-	struct SyncInfo {
-		PlayerState state;
-		bool has_next_song;
-	};
-
-	gcc_pure
-	SyncInfo LockGetSyncInfo() const noexcept {
-		const std::lock_guard<Mutex> protect(mutex);
-		return {state, next_song != nullptr};
-	}
-
-private:
 	/**
 	 * Set the error.  Discards any previous error condition.
 	 *
@@ -468,22 +527,6 @@ private:
 			std::rethrow_exception(error);
 	}
 
-public:
-	/**
-	 * Like CheckRethrowError(), but locks and unlocks the object.
-	 */
-	void LockCheckRethrowError() const {
-		const std::lock_guard<Mutex> protect(mutex);
-		CheckRethrowError();
-	}
-
-	void LockClearError() noexcept;
-
-	PlayerError GetErrorType() const noexcept {
-		return error_type;
-	}
-
-private:
 	/**
 	 * Set the #tagged_song attribute to a newly allocated copy of
 	 * the given #DetachedSong.  Locks and unlocks the object.
@@ -499,17 +542,6 @@ private:
 	 */
 	std::unique_ptr<DetachedSong> ReadTaggedSong() noexcept;
 
-public:
-	/**
-	 * Like ReadTaggedSong(), but locks and unlocks the object.
-	 */
-	std::unique_ptr<DetachedSong> LockReadTaggedSong() noexcept;
-
-	void LockStop() noexcept;
-
-	void LockUpdateAudio() noexcept;
-
-private:
 	void EnqueueSongLocked(std::unique_ptr<DetachedSong> song) noexcept;
 
 	/**
@@ -517,24 +549,6 @@ private:
 	 */
 	void SeekLocked(std::unique_ptr<DetachedSong> song, SongTime t);
 
-public:
-	/**
-	 * @param song the song to be queued; the given instance will be owned
-	 * and freed by the player
-	 */
-	void LockEnqueueSong(std::unique_ptr<DetachedSong> song) noexcept;
-
-	/**
-	 * Makes the player thread seek the specified song to a position.
-	 *
-	 * Throws on error.
-	 *
-	 * @param song the song to be queued; the given instance will be owned
-	 * and freed by the player
-	 */
-	void LockSeek(std::unique_ptr<DetachedSong> song, SongTime t);
-
-private:
 	/**
 	 * Caller must lock the object.
 	 */
@@ -546,35 +560,6 @@ private:
 		ClientSignal();
 	}
 
-public:
-	void SetCrossFade(FloatDuration duration) noexcept;
-
-	auto GetCrossFade() const noexcept {
-		return cross_fade.duration;
-	}
-
-	void SetMixRampDb(float mixramp_db) noexcept;
-
-	float GetMixRampDb() const noexcept {
-		return cross_fade.mixramp_db;
-	}
-
-	void SetMixRampDelay(FloatDuration mixramp_delay) noexcept;
-
-	auto GetMixRampDelay() const noexcept {
-		return cross_fade.mixramp_delay;
-	}
-
-	void LockSetReplayGainMode(ReplayGainMode _mode) noexcept {
-		const std::lock_guard<Mutex> protect(mutex);
-		replay_gain_mode = _mode;
-	}
-
-	auto GetTotalPlayTime() const noexcept {
-		return total_play_time;
-	}
-
-private:
 	void LockUpdateSongTag(DetachedSong &song,
 			       const Tag &new_tag) noexcept;
 
@@ -600,7 +585,6 @@ private:
 		LockUpdateAudio();
 	}
 
-private:
 	void RunThread() noexcept;
 };