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