]> git.sesse.net Git - vlc/blobdiff - modules/video_filter/atmo/AtmoDynData.h
Do not use private vout fields in atmo filter.
[vlc] / modules / video_filter / atmo / AtmoDynData.h
index 08948986c8eb7e7fae4b32b4defc75878588c2d4..f33fa812f68b45dc81189aefb47a2cf0610fe7a9 100644 (file)
@@ -9,19 +9,25 @@
 #ifndef _AtmoDynData_h_
 #define _AtmoDynData_h_
 
+#include <stdio.h>
+
 #include "AtmoDefs.h"
 
 #include "AtmoThread.h"
 #include "AtmoConfig.h"
 #include "AtmoConnection.h"
+#include "AtmoPacketQueue.h"
+#include "AtmoInput.h"
 
 #if !defined(_ATMO_VLC_PLUGIN_)
 #    include "AtmoDisplays.h"
 #else
-#    include <vlc/vlc.h>
-#    include <vlc_threads_funcs.h>
+#   include <vlc_common.h>
+#   include <vlc_threads.h>
 #endif
 
+class CAtmoInput;
+
 /*
   the idea behind this class is to avoid a mix of persistent value and
   volatile values in CAtmoConfig class because some parameters and variables
 
   you ask? why I didn't used a struct for it? ..mmh I like classes?
 
-  Problem: MultiThreading! todo semaphore, mutex!
-
   Allways stop the current effect Thread before changing AtmoConnection or
   AtmoConfig!
 */
 class CAtmoDynData
 {
 private:
+    /*
+      thread creating the current output (depends on active effect)
+    */
     CThread *m_pCurrentEffectThread;
+
+    /*
+      in Modus Live View the packetQueue is the connection
+      between the output processing and the pixelsource
+    */
+    CAtmoPacketQueue *m_pLivePacketQueue;
+
+    /*
+      thread for getting and preparing the pixeldata in color
+      packets for each zone
+    */
+    CAtmoInput *m_pLiveInput;
+    LivePictureSource m_LivePictureSource;
+
+    /*
+    connection to the current configure hardware device
+    */
     CAtmoConnection *m_pAtmoConnection;
+
+    /*
+     all global persistent parameters
+    */
     CAtmoConfig *m_pAtmoConfig;
 
 #if !defined(_ATMO_VLC_PLUGIN_)
     CAtmoDisplays *m_pAtmoDisplays;
     HINSTANCE m_hInst;
     CRITICAL_SECTION m_RemoteCallCriticalSection;
+    char m_WorkDir[MAX_PATH];
 #else
     vlc_object_t *p_atmo_filter;
     vlc_mutex_t  m_lock;
@@ -67,14 +96,29 @@ public:
     CThread *getEffectThread()           { return m_pCurrentEffectThread; }
     void setEffectThread(CThread *value) { m_pCurrentEffectThread = value; }
 
+
+    CAtmoPacketQueue *getLivePacketQueue() { return m_pLivePacketQueue; }
+    void setLivePacketQueue(CAtmoPacketQueue *pQueue) { m_pLivePacketQueue = pQueue; }
+
+    CAtmoInput *getLiveInput() { return m_pLiveInput; }
+    void setLiveInput(CAtmoInput *value) {  m_pLiveInput = value; }
+
+    LivePictureSource getLivePictureSource() { return m_LivePictureSource; }
+    void setLivePictureSource(LivePictureSource lps) { m_LivePictureSource = lps; }
+
     CAtmoConnection *getAtmoConnection() { return m_pAtmoConnection; }
     void setAtmoConnection(CAtmoConnection *value) { m_pAtmoConnection = value; }
 
     CAtmoConfig *getAtmoConfig() { return m_pAtmoConfig; }
 
+    void ReloadZoneDefinitionBitmaps();
+    void CalculateDefaultZones();
+
 #if !defined(_ATMO_VLC_PLUGIN_)
     CAtmoDisplays *getAtmoDisplays() { return m_pAtmoDisplays; }
     HINSTANCE getHinstance() { return m_hInst; }
+    void setWorkDir(const char *dir);
+    char *getWorkDir();
 #else
     vlc_object_t *getAtmoFilter() { return p_atmo_filter; }
 #endif