1/* 2 * Copyright 2004-2008, Fran��ois Revol, <revol@free.fr>. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef _CAM_BUFFERED_FILTER_INTERFACE_H 6#define _CAM_BUFFERED_FILTER_INTERFACE_H 7 8#include <kernel/OS.h> 9#include <support/DataIO.h> 10#include <interface/Rect.h> 11#include "CamFilterInterface.h" 12 13class CamBufferedFilterInterface : public CamFilterInterface { 14public: 15 CamBufferedFilterInterface(CamDevice *device, bool allowWrite); 16virtual ~CamBufferedFilterInterface(); 17 18 // BPositionIO interface 19virtual ssize_t Read(void *buffer, size_t size); 20virtual ssize_t ReadAt(off_t pos, void *buffer, size_t size); 21 22virtual ssize_t Write(const void *buffer, size_t size); 23virtual ssize_t WriteAt(off_t pos, const void *buffer, size_t size); 24 25virtual off_t Seek(off_t position, uint32 seek_mode); 26virtual off_t Position() const; 27virtual status_t SetSize(off_t size); 28 // size of the buffer required for reading a whole frame 29virtual size_t FrameSize(); 30 31 // frame handling 32virtual status_t DropFrame(); 33 // video settings propagation 34virtual status_t SetVideoFrame(BRect frame); 35 36 37protected: 38bool fAllowWrite; 39BMallocIO fInternalBuffer; 40}; 41 42 43#endif /* _CAM_BUFFERED_FILTER_INTERFACE_H */ 44