Horus Doc || C++ Reference || Class Overview   Pixels   Images   Detector   Geometry   Registry || Doxygen's quick Index  

TVReader.h

00001 
00002 /*
00003  *  Copyright (c) 2000, University of Amsterdam, The Netherlands.
00004  *  All rights reserved.
00005  *
00006  *  Author(s):
00007  *  Marc Navarro            (mnavarro@wins.uva.nl)
00008  */
00009 
00010 #include <streams.h>
00011 #include "atlbase.h"
00012 
00013 #include "IGetFrame.h"
00014 #include "DeviceEnumerator.h"
00015 
00016 class TVReader : public IGetFrameController
00017 {
00018 public:
00019     static char**           listDevices();
00020 
00021                             TVReader(int nDevice);
00022     virtual                 ~TVReader();
00023 
00024     int                     isNull();
00025 
00026     BYTE*                   getFrame();     //dont call delete on result
00027     int                     getFrameWidth();
00028     int                     getFrameHeight();
00029 
00030     //IGetFrameController:
00031     STDMETHODIMP            NextData(BYTE *data);
00032     STDMETHODIMP            SetDataSizes(int width, int height,
00033                                          REFERENCE_TIME timePerFrame);
00034 
00035     //IUnknown:
00036     STDMETHODIMP            QueryInterface(const IID & riid, void **ppv);
00037     STDMETHODIMP_(ULONG)    AddRef();
00038     STDMETHODIMP_(ULONG)    Release();
00039 
00040 private:
00041 
00042     HRESULT                     buildGraph(int nDevice);
00043     HRESULT                     showError(const char* msg, HRESULT hr);
00044     HRESULT                     init(int nDevice);
00045 
00046     static DeviceEnumerator _enum;
00047 
00048     CCritSec                _critSec; // for locking critical sections
00049 
00050     BYTE*                   _currentData;
00051     BYTE*                   _newData;
00052     int                     _newAvailable;
00053 
00054     int                     _width;
00055     int                     _height;
00056 
00057     CComPtr<IGraphBuilder>  _iBuilder;
00058     CComPtr<IMediaControl>  _imCtrl;
00059 
00060 };
00061 
00062 

Generated on Tue Feb 3 14:18:44 2004 for C++Reference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001