AtmoExternalCaptureInput.h

Go to the documentation of this file.
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

Generated on Tue May 25 08:04:59 2010 for VLC by  doxygen 1.5.6