More factory changes to help with DLL
[pwlib.git] / plugins / vidinput_bsd / vidinput_bsd.h
blob450f3badb2763d0c85ced2634ad3d8b8f5126c51
2 //#include <sys/mman.h>
3 //#include <sys/time.h>
5 #include <ptlib.h>
6 #include <ptlib/videoio.h>
7 #include <ptlib/vconvert.h>
9 #if defined(P_FREEBSD)
10 #include <machine/ioctl_meteor.h>
11 #endif
13 #if defined(P_OPENBSD) || defined(P_NETBSD)
14 #if P_OPENBSD >= 200105
15 #include <dev/ic/bt8xx.h>
16 #elif P_NETBSD >= 105000000
17 #include <dev/ic/bt8xx.h>
18 #else
19 #include <i386/ioctl_meteor.h>
20 #endif
21 #endif
23 class PVideoInputBSDDevice: public PVideoInputDevice
26 public:
27 PVideoInputBSDDevice();
28 ~PVideoInputBSDDevice();
30 static PStringList GetInputDeviceNames();
32 PStringList GetDeviceNames() const
33 { return GetInputDeviceNames(); }
35 BOOL Open(const PString &deviceName, BOOL startImmediate);
37 BOOL IsOpen();
39 BOOL Close();
41 BOOL Start();
42 BOOL Stop();
44 BOOL IsCapturing();
46 PINDEX GetMaxFrameBytes();
48 BOOL GetFrame(PBYTEArray & frame);
49 BOOL GetFrameData(BYTE*, PINDEX*);
50 BOOL GetFrameDataNoDelay(BYTE*, PINDEX*);
52 BOOL GetFrameSizeLimits(unsigned int&, unsigned int&,
53 unsigned int&, unsigned int&);
55 BOOL TestAllFormats();
57 BOOL SetFrameSize(unsigned int, unsigned int);
58 BOOL SetFrameRate(unsigned int);
59 BOOL VerifyHardwareFrameSize(unsigned int, unsigned int);
61 BOOL GetParameters(int*, int*, int*, int*, int*);
63 BOOL SetColourFormat(const PString&);
65 int GetContrast();
66 BOOL SetContrast(unsigned int);
67 int GetBrightness();
68 BOOL SetBrightness(unsigned int);
69 // int GetWhiteness();
70 // BOOL SetWhiteness(unsigned int);
71 // int GetColour();
72 // BOOL SetColour(unsigned int);
73 int GetHue();
74 BOOL SetHue(unsigned int);
76 // BOOL SetVideoChannelFormat(int, PVideoDevice::VideoFormat);
77 BOOL SetVideoFormat(PVideoDevice::VideoFormat);
78 int GetNumChannels();
79 BOOL SetChannel(int);
81 BOOL NormalReadProcess(BYTE*, PINDEX*);
83 void ClearMapping();
85 struct video_capability
87 int channels; /* Num channels */
88 int maxwidth; /* Supported width */
89 int maxheight; /* And height */
90 int minwidth; /* Supported width */
91 int minheight; /* And height */
94 int videoFd;
95 struct video_capability videoCapability;
96 int canMap; // -1 = don't know, 0 = no, 1 = yes
97 BYTE * videoBuffer;
98 PINDEX frameBytes;
99 int mmap_size;