00001 #ifndef _AtmoExternalCaptureInput_h_ 00002 #define _AtmoExternalCaptureInput_h_ 00003 00004 #include "AtmoDefs.h" 00005 00006 #if defined(WIN32) 00007 # include <windows.h> 00008 # else 00009 # if defined(_ATMO_VLC_PLUGIN_) 00010 // need bitmap info header 00011 # include <vlc_codecs.h> 00012 # endif 00013 #endif 00014 00015 #if defined(_ATMO_VLC_PLUGIN_) 00016 # include <vlc_common.h> 00017 # include <vlc_threads.h> 00018 #endif 00019 00020 #include "AtmoInput.h" 00021 #include "AtmoThread.h" 00022 #include "AtmoConfig.h" 00023 #include "AtmoDynData.h" 00024 #include "AtmoCalculations.h" 00025 00026 00027 class CAtmoExternalCaptureInput : public CAtmoInput 00028 { 00029 protected: 00030 #if defined(_ATMO_VLC_PLUGIN_) 00031 vlc_cond_t m_WakeupCond; 00032 vlc_mutex_t m_WakeupLock; 00033 #else 00034 HANDLE m_hWakeupEvent; 00035 CRITICAL_SECTION m_BufferLock; 00036 #endif 00037 00038 BITMAPINFOHEADER m_CurrentFrameHeader; 00039 void *m_pCurrentFramePixels; 00040 00041 virtual DWORD Execute(void); 00042 void CalcColors(); 00043 00044 public: 00045 /* 00046 this method is called from the com server AtmoLiveViewControlImpl! 00047 or inside videolan from the filter method to start a new processing 00048 */ 00049 void DeliverNewSourceDataPaket(BITMAPINFOHEADER *bmpInfoHeader,void *pixelData); 00050 00051 public: 00052 CAtmoExternalCaptureInput(CAtmoDynData *pAtmoDynData); 00053 virtual ~CAtmoExternalCaptureInput(void); 00054 00055 /* 00056 Opens the input-device. Parameters (e.g. the device-name) 00057 Returns true if the input-device was opened successfully. 00058 input-device can be the GDI surface of screen (windows only) 00059 or the videolan filter 00060 */ 00061 virtual ATMO_BOOL Open(void); 00062 00063 /* 00064 Closes the input-device. 00065 Returns true if the input-device was closed successfully. 00066 */ 00067 virtual ATMO_BOOL Close(void); 00068 00069 }; 00070 00071 #endif
1.5.6