diff options
author | Jef <jef@targetspot.com> | 2024-09-24 08:54:57 -0400 |
---|---|---|
committer | Jef <jef@targetspot.com> | 2024-09-24 08:54:57 -0400 |
commit | 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch) | |
tree | 12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/libvp6/include/VFWSetting.hpp | |
parent | 537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff) | |
download | winamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz |
Initial community commit
Diffstat (limited to 'Src/libvp6/include/VFWSetting.hpp')
-rw-r--r-- | Src/libvp6/include/VFWSetting.hpp | 65 |
1 files changed, 65 insertions, 0 deletions
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 <iosfwd> + +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 |