1/*
2 * Copyright 2004-2008, Fran��ois Revol, <revol@free.fr>.
3 * Distributed under the terms of the MIT License.
4 */
5
6#include "CamFilterInterface.h"
7#include "CamDevice.h"
8#include "CamDebug.h"
9
10
11CamFilterInterface::CamFilterInterface(CamDevice *device)
12	: BPositionIO(),
13	fDevice(device),
14	fNextOfKin(NULL)
15{
16	fVideoFrame = BRect(0,0,-1,-1);
17
18}
19
20
21CamFilterInterface::~CamFilterInterface()
22{
23}
24
25
26status_t
27CamFilterInterface::ChainFilter(CamFilterInterface *to)
28{
29	if (fNextOfKin)
30		return EALREADY;
31	fNextOfKin = to;
32	return B_OK;
33}
34
35
36status_t
37CamFilterInterface::DetachFilter(CamFilterInterface *from)
38{
39	if (from && (fNextOfKin != from))
40		return EINVAL;
41	fNextOfKin = NULL;
42	return B_OK;
43}
44
45
46CamFilterInterface*
47CamFilterInterface::ChainFilter()
48{
49	return fNextOfKin;
50}
51
52
53ssize_t
54CamFilterInterface::Read(void *buffer, size_t size)
55{
56	(void)buffer;
57	(void)size;
58	return EINVAL;
59}
60
61
62ssize_t
63CamFilterInterface::ReadAt(off_t pos, void *buffer, size_t size)
64{
65	(void)pos;
66	(void)buffer;
67	(void)size;
68	return EINVAL;
69}
70
71
72ssize_t
73CamFilterInterface::Write(const void *buffer, size_t size)
74{
75	(void)buffer;
76	(void)size;
77	return EINVAL;
78}
79
80
81ssize_t
82CamFilterInterface::WriteAt(off_t pos, const void *buffer, size_t size)
83{
84	(void)pos;
85	(void)buffer;
86	(void)size;
87	return EINVAL;
88}
89
90
91off_t
92CamFilterInterface::Seek(off_t position, uint32 seek_mode)
93{
94	(void)position;
95	(void)seek_mode;
96	return EINVAL;
97}
98
99
100off_t
101CamFilterInterface::Position() const
102{
103	return 0LL;
104}
105
106
107status_t
108CamFilterInterface::SetSize(off_t size)
109{
110	(void)size;
111	return EINVAL;
112}
113
114
115size_t
116CamFilterInterface::FrameSize()
117{
118	return 0;
119}
120
121
122status_t
123CamFilterInterface::WaitFrame(bigtime_t timeout)
124{
125	if (fNextOfKin)
126		return fNextOfKin->WaitFrame(timeout);
127	return EINVAL;
128}
129
130
131status_t
132CamFilterInterface::DropFrame()
133{
134	if (fNextOfKin)
135		return fNextOfKin->DropFrame();
136	return B_OK;
137}
138
139
140status_t
141CamFilterInterface::SetVideoFrame(BRect frame)
142{
143	if (fNextOfKin)
144		return fNextOfKin->SetVideoFrame(frame);
145	fVideoFrame = frame;
146	return B_OK;
147}
148