[vlc-devel] [RFC PATCH 18/18] include/playlist: add helper to lock a playlist

Filip Roséen filip at videolabs.io
Wed Jul 20 04:37:08 CEST 2016


Instead of having the declaration only accessible inside the relevant
parts of gui/qt, make it so that other modules written in C++ could take
advantage of its functionality.

Given that we already have vlc_mutex_locker in include/vlc_threads.h, it
feels somewhat relevant to also have a vlc_playlist_locker that works in
the same way.

--

My main reason for not putting it here directly is that I do not know
if modules written in c++ that requires this sort of helper are common
enough to rationalize its addition.

    - What do you guys think?
---
 include/vlc_playlist.h | 25 +++++++++++++++++++++++++
 modules/gui/qt/qt.hpp  | 23 -----------------------
 2 files changed, 25 insertions(+), 23 deletions(-)

diff --git a/include/vlc_playlist.h b/include/vlc_playlist.h
index 4363405..aed4c89 100644
--- a/include/vlc_playlist.h
+++ b/include/vlc_playlist.h
@@ -421,6 +421,31 @@ static inline int playlist_CurrentSize( playlist_t *p_playlist )
 
 /** @} */
 # ifdef __cplusplus
+
+/**
+ * This class may be used for scope-bound locking/unlocking
+ * of a playlist_t*. As hinted, the playlist is locked when
+ * the object is created, and unlocked when the object is
+ * destroyed.
+ */
+
+struct vlc_playlist_locker {
+    vlc_playlist_locker( playlist_t* p_playlist )
+        : p_playlist( p_playlist )
+    {
+        playlist_Lock( p_playlist );
+    }
+
+    ~vlc_playlist_locker()
+    {
+        playlist_Unlock( p_playlist );
+    }
+
+    private:
+        playlist_t* p_playlist;
+};
+
+
 }
 # endif
 
diff --git a/modules/gui/qt/qt.hpp b/modules/gui/qt/qt.hpp
index 7276bdc..0b83f1f 100644
--- a/modules/gui/qt/qt.hpp
+++ b/modules/gui/qt/qt.hpp
@@ -98,29 +98,6 @@ struct intf_sys_t
 
 #define THEPL p_intf->p_sys->p_playlist
 
-/**
- * This class may be used for scope-bound locking/unlocking
- * of a playlist_t*. As hinted, the playlist is locked when
- * the object is created, and unlocked when the object is
- * destroyed.
- */
-
-struct vlc_playlist_locker {
-    vlc_playlist_locker( playlist_t* p_playlist )
-        : p_playlist( p_playlist )
-    {
-        playlist_Lock( p_playlist ); 
-    }
-
-    ~vlc_playlist_locker()
-    {
-        playlist_Unlock( p_playlist );
-    }
-
-    private:
-        playlist_t* p_playlist;
-};
-
 #define THEDP DialogsProvider::getInstance()
 #define THEMIM MainInputManager::getInstance( p_intf )
 #define THEAM ActionsManager::getInstance( p_intf )
-- 
2.9.0



More information about the vlc-devel mailing list