00001
00002
00003
00004 #ifndef _XVWINDOW_H_
00005 #define _XVWINDOW_H_
00006
00007 #include <XVImageBase.h>
00008
00009 #define MAX_NUM_IMAGES 5
00010 #define MAX_WIDTH 1200
00011 #define MAX_HEIGTH 1000
00012 #define MIN_WIDTH 120
00013 #define MIN_HEIGTH 90
00014
00015 template <class PIX>
00016 class XVWindow : public XVImageBase<PIX> {
00017
00018 protected:
00019
00020 char * windowTitle;
00021
00022 XVImageBase<PIX> * currentImage;
00023 XVImageBase<PIX> * frames_buf;
00024
00025 public:
00026
00027 XVWindow() : XVImageBase<PIX>() {}
00028 XVWindow(int w, int h) : XVImageBase<PIX>(w, h) {}
00029
00030 virtual void map(void) = 0;
00031 virtual void unmap(void) = 0;
00032
00033 virtual void resize(XVImageBase<PIX> *) = 0;
00034
00035 virtual void setImages(XVImageBase<PIX> * frames, int count) = 0;
00036 virtual void CopyImage(int, u_short) = 0;
00037 virtual void CopySubImage(XVImageBase<PIX> *) = 0;
00038
00039 virtual void swap_buffers(void) = 0;
00040 virtual void flush(void) = 0;
00041
00042 virtual XVImageBase<PIX> * getDisplayedImage() = 0;
00043 };
00044
00045 #endif