diff options
Diffstat (limited to 'src/PlayerControl.hxx')
-rw-r--r-- | src/PlayerControl.hxx | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/src/PlayerControl.hxx b/src/PlayerControl.hxx index b33462a5c..b2b2087e2 100644 --- a/src/PlayerControl.hxx +++ b/src/PlayerControl.hxx @@ -325,14 +325,32 @@ public: */ void SetError(PlayerError type, Error &&error); - void ClearError(); + /** + * Checks whether an error has occurred, and if so, returns a + * copy of the #Error object. + * + * Caller must lock the object. + */ + gcc_pure + Error GetError() const { + Error result; + if (error_type != PlayerError::NONE) + result.Set(error); + return result; + } /** - * Returns the human-readable message describing the last - * error during playback, NULL if no error occurred. The - * caller has to free the returned string. + * Like GetError(), but locks and unlocks the object. */ - char *GetErrorMessage() const; + gcc_pure + Error LockGetError() const { + Lock(); + Error result = GetError(); + Unlock(); + return result; + } + + void ClearError(); PlayerError GetErrorType() const { return error_type; |