From 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d Mon Sep 17 00:00:00 2001 From: Jef Date: Tue, 24 Sep 2024 14:54:57 +0200 Subject: Initial community commit --- Src/libvp6/include/VFWSetting.hpp | 65 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 Src/libvp6/include/VFWSetting.hpp (limited to 'Src/libvp6/include/VFWSetting.hpp') diff --git a/Src/libvp6/include/VFWSetting.hpp b/Src/libvp6/include/VFWSetting.hpp new file mode 100644 index 00000000..c7683a8c --- /dev/null +++ b/Src/libvp6/include/VFWSetting.hpp @@ -0,0 +1,65 @@ +#if !defined(VFWSETTING_HPP) +#define VFWSETTING_HPP +//______________________________________________________________________________ +// +// VFWSetting.hpp +// + +#include "FourCC.hpp" +#include + +namespace on2vp +{ + + //-------------------------------------- + class VFWSetting + { + friend std::ostream& operator<<(std::ostream& os, const VFWSetting& vfws); + + public: + + enum Mode + { + M_Setting, + M_Config + }; + + enum + { + HeaderSize = 8, + Size = 16 + }; + + VFWSetting(FourCC fcc); + ~VFWSetting(); + + FourCC fcc() const; + Mode mode() const; + + int setting() const; + int value() const; + void settingValue(int iSetting, int iValue); // Sets mode to M_Setting + + long size() const; + const void* data() const; + int data(const void* pData, unsigned long ulSize); + + private: + + VFWSetting(const VFWSetting& vfws); // Not implemented + VFWSetting& operator=(const VFWSetting& vfws); // Not implemented + + int extract_(const void* pData, unsigned long ulSize); + void update_() const; + + FourCC m_fcc; + Mode m_mode; + int m_iSetting; + int m_iValue; + + mutable unsigned char m_pData[Size]; + }; + +} // namespace on2vp + +#endif // VFWSETTING_HPP -- cgit