home *** CD-ROM | disk | FTP | other *** search
/ Game Audio Programming / GameAudioProgramming.iso / Game_Audio / audio_sdk / src / AudioLib / PropertySet.h < prev    next >
C/C++ Source or Header  |  2002-07-15  |  2KB  |  70 lines

  1. /***********************************************************\
  2. Copyright (C) James Boer, 2002. 
  3. All rights reserved worldwide.
  4.  
  5. This software is provided "as is" without express or implied
  6. warranties. You may freely copy and compile this source into
  7. applications you distribute provided that the copyright text
  8. below is included in the resulting source code, for example:
  9. "Portions Copyright (C) James Boer, 2002"
  10. \***********************************************************/
  11. #ifndef PROPERTYSET_H__
  12. #define PROPERTYSET_H__
  13.  
  14. #include "Audio.h"
  15.  
  16. namespace Audio
  17. {
  18.  
  19. struct GenericProperty
  20. {
  21.     GenericProperty()
  22.     {
  23.         m_guid = GUID_NULL;
  24.         m_nID = 0;
  25.         m_pInstanceData = 0;
  26.         m_nInstanceLength = 0;
  27.         m_pPropData = 0;
  28.         m_nPropLength = 0;
  29.     }
  30.     GUID    m_guid;
  31.     uint32    m_nID;
  32.     uint8*    m_pInstanceData;
  33.     uint32    m_nInstanceLength;
  34.     uint8*    m_pPropData;
  35.     uint32    m_nPropLength;
  36. };
  37.  
  38. typedef std::list<GenericProperty> PropertyList;
  39.  
  40. class PropertySet
  41. {
  42. public:
  43.     PropertySet();
  44.     ~PropertySet();
  45.  
  46.     void Clear();
  47.  
  48.     void Term();
  49.  
  50.     // Call when the associated DS buffer is loaded or unloaded
  51.     bool OnLoad(IUnknown* pUnknown);
  52.     bool OnUnload();
  53.  
  54.     // Generic property support (for driver-specific extensions)
  55.     bool QuerySupport(const GUID& guid, uint32 nID, uint32* pTypeSupport);
  56.     bool Get(const GUID& guidProperty, uint32 nID, void* pInstanceData,
  57.         uint32 nInstanceLength, void* pPropData, uint32 nPropLength, 
  58.         uint32* pBytesReturned);
  59.     bool Set(const GUID& guidProperty, uint32 nID, void* pInstanceData,
  60.         uint32 nInstanceLength, void* pPropData, uint32 nPropLength,
  61.         bool bStoreProperty);
  62. private:
  63.  
  64.     IKsPropertySet*        m_pPropertySet;
  65.     PropertyList        m_PropertyList;
  66. };
  67.  
  68. }; // namespace Audio
  69.  
  70. #endif // PROPERTYSET_H__