home *** CD-ROM | disk | FTP | other *** search
- //==========================================================================;
- //
- // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
- // KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
- // IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
- // PURPOSE.
- //
- // Copyright (c) 1992 - 1996 Microsoft Corporation. All Rights Reserved.
- //
- //--------------------------------------------------------------------------;
-
- // FOURCCMap
- //
- // provides a mapping between old-style multimedia format DWORDs
- // and new-style GUIDs.
- //
- // A range of 4 billion GUIDs has been allocated to ensure that this
- // mapping can be done straightforwardly one-to-one in both directions.
- //
- // January 95
-
-
- #ifndef __FOURCC__
- #define __FOURCC__
-
-
- // Multimedia format types are marked with DWORDs built from four 8-bit
- // chars and known as FOURCCs. New multimedia AM_MEDIA_TYPE definitions include
- // a subtype GUID. In order to simplify the mapping, GUIDs in the range:
- // XXXXXXXX-0000-0010-8000-00AA00389B71
- // are reserved for FOURCCs.
-
- class FOURCCMap : public GUID
- {
-
- public:
- FOURCCMap();
- FOURCCMap(DWORD Fourcc);
- FOURCCMap(const GUID *);
-
-
- DWORD GetFOURCC(void);
- void SetFOURCC(DWORD fourcc);
- void SetFOURCC(const GUID *);
-
- private:
- void InitGUID();
- };
-
- #define GUID_Data2 0
- #define GUID_Data3 0x10
- #define GUID_Data4_1 0xaa000080
- #define GUID_Data4_2 0x719b3800
-
- inline void
- FOURCCMap::InitGUID() {
- Data2 = GUID_Data2;
- Data3 = GUID_Data3;
- ((DWORD *)Data4)[0] = GUID_Data4_1;
- ((DWORD *)Data4)[1] = GUID_Data4_2;
- }
-
- inline
- FOURCCMap::FOURCCMap() {
- InitGUID();
- SetFOURCC( DWORD(0));
- }
-
- inline
- FOURCCMap::FOURCCMap(DWORD fourcc)
- {
- InitGUID();
- SetFOURCC(fourcc);
- }
-
- inline
- FOURCCMap::FOURCCMap(const GUID * pGuid)
- {
- InitGUID();
- SetFOURCC(pGuid);
- }
-
- inline void
- FOURCCMap::SetFOURCC(const GUID * pGuid)
- {
- FOURCCMap * p = (FOURCCMap*) pGuid;
- SetFOURCC(p->GetFOURCC());
- }
-
- inline void
- FOURCCMap::SetFOURCC(DWORD fourcc)
- {
- Data1 = fourcc;
- }
-
- inline DWORD
- FOURCCMap::GetFOURCC(void)
- {
- return Data1;
- }
-
- #endif /* __FOURCC__ */
-
-