// -------------------------------------------------------------------------- // ========================================================================== // File: TDSCaps.CPP // Authors: BCB_Code_Generator v2.00, // Darren Dwyer (source code, documentation, demos, website), // Hugh Edwards (documentation, icons) // Description: This file contains the code for the TDSCaps Component // // "TDx9_Sound_Library v1.00" // (c) 2005 BCB-Tools.com Pty. Ltd., Sydney, Australia. // All Rights Reserved. // // Refer to the 'Licence.Txt' file for licencing & copyright information. // ========================================================================== // -------------------------------------------------------------------------- // #includes ... // -------------------------------------------------------------------------- #include #pragma hdrstop // -------------------------------------------------------------------------- #include "TDSCaps.H" // -------------------------------------------------------------------------- #pragma link "TDx_Library_Defns" #pragma link "TDx_Library_Functions" #pragma link "TDx9_Sound_Library_Defns" #pragma link "TDx9_Sound_Library_Functions" // -------------------------------------------------------------------------- // Object Registration... // -------------------------------------------------------------------------- #if (__BORLANDC__ >= 0x0530) // BCB Version 3+ #pragma package(smart_init) #endif // -------------------------------------------------------------------------- static inline void ValidCtrCheck(TDSCaps*) { new TDSCaps(NULL); } // -------------------------------------------------------------------------- namespace Tdscaps { #if (__BORLANDC__ >= 0x0530) // BCB Version 3+ void __fastcall PACKAGE Register() #else void __fastcall Register() #endif { TComponentClass classes[1] = {__classid(TDSCaps)}; RegisterComponents("", classes, 0); } } // -------------------------------------------------------------------------- // Constructor: TDSCaps::TDSCaps() // Description: The default constructor for the TDSCaps object. // -------------------------------------------------------------------------- __fastcall TDSCaps::TDSCaps(TComponent* Owner) : TComponent(Owner) { Clear(); } // -------------------------------------------------------------------------- // Destructor: TDSCaps::~TDSCaps() // Description: The destructor for the TDSCaps object. // -------------------------------------------------------------------------- __fastcall TDSCaps::~TDSCaps() { } // -------------------------------------------------------------------------- // Property: ErrorValue // Description: The ErrorValue property contains the last error value // returned from a call to a TDSCaps method or fget/fset. eg. // DS_OK or DDERR_SURFACELOST or TDX_ERROR // -------------------------------------------------------------------------- HRESULT __fastcall TDSCaps::FGetErrorValue() { return fErrorValue; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetErrorValue( HRESULT pErrorValue ) { fErrorValue = pErrorValue; } // -------------------------------------------------------------------------- // Property: Flags // Description: ... // -------------------------------------------------------------------------- dword __fastcall TDSCaps::FGetFlags() { return fDSCAPS.dwFlags; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetFlags( dword pFlags ) { fDSCAPS.dwFlags = pFlags; } // -------------------------------------------------------------------------- // Property: FreeHw3DAllBuffers // Description: ... // -------------------------------------------------------------------------- dword __fastcall TDSCaps::FGetFreeHw3DAllBuffers() { return fDSCAPS.dwFreeHw3DAllBuffers; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetFreeHw3DAllBuffers( dword pFreeHw3DAllBuffers ) { fDSCAPS.dwFreeHw3DAllBuffers = pFreeHw3DAllBuffers; } // -------------------------------------------------------------------------- // Property: FreeHw3DStaticBuffers // Description: ... // -------------------------------------------------------------------------- dword __fastcall TDSCaps::FGetFreeHw3DStaticBuffers() { return fDSCAPS.dwFreeHw3DStaticBuffers; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetFreeHw3DStaticBuffers( dword pFreeHw3DStaticBuffers ) { fDSCAPS.dwFreeHw3DStaticBuffers = pFreeHw3DStaticBuffers; } // -------------------------------------------------------------------------- // Property: FreeHw3DStreamingBuffers // Description: ... // -------------------------------------------------------------------------- dword __fastcall TDSCaps::FGetFreeHw3DStreamingBuffers() { return fDSCAPS.dwFreeHw3DStreamingBuffers; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetFreeHw3DStreamingBuffers( dword pFreeHw3DStreamingBuffers ) { fDSCAPS.dwFreeHw3DStreamingBuffers = pFreeHw3DStreamingBuffers; } // -------------------------------------------------------------------------- // Property: FreeHwMemBytes // Description: ... // -------------------------------------------------------------------------- dword __fastcall TDSCaps::FGetFreeHwMemBytes() { return fDSCAPS.dwFreeHwMemBytes; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetFreeHwMemBytes( dword pFreeHwMemBytes ) { fDSCAPS.dwFreeHwMemBytes = pFreeHwMemBytes; } // -------------------------------------------------------------------------- // Property: FreeHwMixingAllBuffers // Description: ... // -------------------------------------------------------------------------- dword __fastcall TDSCaps::FGetFreeHwMixingAllBuffers() { return fDSCAPS.dwFreeHwMixingAllBuffers; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetFreeHwMixingAllBuffers( dword pFreeHwMixingAllBuffers ) { fDSCAPS.dwFreeHwMixingAllBuffers = pFreeHwMixingAllBuffers; } // -------------------------------------------------------------------------- // Property: FreeHwMixingStaticBuffers // Description: ... // -------------------------------------------------------------------------- dword __fastcall TDSCaps::FGetFreeHwMixingStaticBuffers() { return fDSCAPS.dwFreeHwMixingStaticBuffers; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetFreeHwMixingStaticBuffers( dword pFreeHwMixingStaticBuffers ) { fDSCAPS.dwFreeHwMixingStaticBuffers = pFreeHwMixingStaticBuffers; } // -------------------------------------------------------------------------- // Property: FreeHwMixingStreamingBuffers // Description: ... // -------------------------------------------------------------------------- dword __fastcall TDSCaps::FGetFreeHwMixingStreamingBuffers() { return fDSCAPS.dwFreeHwMixingStreamingBuffers; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetFreeHwMixingStreamingBuffers( dword pFreeHwMixingStreamingBuffers ) { fDSCAPS.dwFreeHwMixingStreamingBuffers = pFreeHwMixingStreamingBuffers; } // -------------------------------------------------------------------------- // Property: MaxContigFreeHwMemBytes // Description: ... // -------------------------------------------------------------------------- dword __fastcall TDSCaps::FGetMaxContigFreeHwMemBytes() { return fDSCAPS.dwMaxContigFreeHwMemBytes; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetMaxContigFreeHwMemBytes( dword pMaxContigFreeHwMemBytes ) { fDSCAPS.dwMaxContigFreeHwMemBytes = pMaxContigFreeHwMemBytes; } // -------------------------------------------------------------------------- // Property: MaxHw3DAllBuffers // Description: ... // -------------------------------------------------------------------------- dword __fastcall TDSCaps::FGetMaxHw3DAllBuffers() { return fDSCAPS.dwMaxHw3DAllBuffers; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetMaxHw3DAllBuffers( dword pMaxHw3DAllBuffers ) { fDSCAPS.dwMaxHw3DAllBuffers = pMaxHw3DAllBuffers; } // -------------------------------------------------------------------------- // Property: MaxHw3DStaticBuffers // Description: ... // -------------------------------------------------------------------------- dword __fastcall TDSCaps::FGetMaxHw3DStaticBuffers() { return fDSCAPS.dwMaxHw3DStaticBuffers; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetMaxHw3DStaticBuffers( dword pMaxHw3DStaticBuffers ) { fDSCAPS.dwMaxHw3DStaticBuffers = pMaxHw3DStaticBuffers; } // -------------------------------------------------------------------------- // Property: MaxHw3DStreamingBuffers // Description: ... // -------------------------------------------------------------------------- dword __fastcall TDSCaps::FGetMaxHw3DStreamingBuffers() { return fDSCAPS.dwMaxHw3DStreamingBuffers; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetMaxHw3DStreamingBuffers( dword pMaxHw3DStreamingBuffers ) { fDSCAPS.dwMaxHw3DStreamingBuffers = pMaxHw3DStreamingBuffers; } // -------------------------------------------------------------------------- // Property: MaxHwMixingAllBuffers // Description: ... // -------------------------------------------------------------------------- dword __fastcall TDSCaps::FGetMaxHwMixingAllBuffers() { return fDSCAPS.dwMaxHwMixingAllBuffers; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetMaxHwMixingAllBuffers( dword pMaxHwMixingAllBuffers ) { fDSCAPS.dwMaxHwMixingAllBuffers = pMaxHwMixingAllBuffers; } // -------------------------------------------------------------------------- // Property: MaxHwMixingStaticBuffers // Description: ... // -------------------------------------------------------------------------- dword __fastcall TDSCaps::FGetMaxHwMixingStaticBuffers() { return fDSCAPS.dwMaxHwMixingStaticBuffers; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetMaxHwMixingStaticBuffers( dword pMaxHwMixingStaticBuffers ) { fDSCAPS.dwMaxHwMixingStaticBuffers = pMaxHwMixingStaticBuffers; } // -------------------------------------------------------------------------- // Property: MaxHwMixingStreamingBuffers // Description: ... // -------------------------------------------------------------------------- dword __fastcall TDSCaps::FGetMaxHwMixingStreamingBuffers() { return fDSCAPS.dwMaxHwMixingStreamingBuffers; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetMaxHwMixingStreamingBuffers( dword pMaxHwMixingStreamingBuffers ) { fDSCAPS.dwMaxHwMixingStreamingBuffers = pMaxHwMixingStreamingBuffers; } // -------------------------------------------------------------------------- // Property: MaxSecondarySampleRate // Description: ... // -------------------------------------------------------------------------- dword __fastcall TDSCaps::FGetMaxSecondarySampleRate() { return fDSCAPS.dwMaxSecondarySampleRate; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetMaxSecondarySampleRate( dword pMaxSecondarySampleRate ) { fDSCAPS.dwMaxSecondarySampleRate = pMaxSecondarySampleRate; } // -------------------------------------------------------------------------- // Property: MinSecondarySampleRate // Description: ... // -------------------------------------------------------------------------- dword __fastcall TDSCaps::FGetMinSecondarySampleRate() { return fDSCAPS.dwMinSecondarySampleRate; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetMinSecondarySampleRate( dword pMinSecondarySampleRate ) { fDSCAPS.dwMinSecondarySampleRate = pMinSecondarySampleRate; } // -------------------------------------------------------------------------- // Property: PlayCpuOverheadSwBuffers // Description: ... // -------------------------------------------------------------------------- dword __fastcall TDSCaps::FGetPlayCpuOverheadSwBuffers() { return fDSCAPS.dwPlayCpuOverheadSwBuffers; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetPlayCpuOverheadSwBuffers( dword pPlayCpuOverheadSwBuffers ) { fDSCAPS.dwPlayCpuOverheadSwBuffers = pPlayCpuOverheadSwBuffers; } // -------------------------------------------------------------------------- // Property: PrimaryBuffers // Description: ... // -------------------------------------------------------------------------- dword __fastcall TDSCaps::FGetPrimaryBuffers() { return fDSCAPS.dwPrimaryBuffers; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetPrimaryBuffers( dword pPrimaryBuffers ) { fDSCAPS.dwPrimaryBuffers = pPrimaryBuffers; } // -------------------------------------------------------------------------- // Property: Size // Description: The Size property contains the size in bytes of the internal // DSCAPS structure. // -------------------------------------------------------------------------- dword __fastcall TDSCaps::FGetSize() { return fSize; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetSize( dword pSize ) { fSize = pSize; } // -------------------------------------------------------------------------- // Property: TotalHwMemBytes // Description: ... // -------------------------------------------------------------------------- dword __fastcall TDSCaps::FGetTotalHwMemBytes() { return fDSCAPS.dwTotalHwMemBytes; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetTotalHwMemBytes( dword pTotalHwMemBytes ) { fDSCAPS.dwTotalHwMemBytes = pTotalHwMemBytes; } // -------------------------------------------------------------------------- // Property: UnlockTransferRateHwBuffers // Description: ... // -------------------------------------------------------------------------- dword __fastcall TDSCaps::FGetUnlockTransferRateHwBuffers() { return fDSCAPS.dwUnlockTransferRateHwBuffers; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetUnlockTransferRateHwBuffers( dword pUnlockTransferRateHwBuffers ) { fDSCAPS.dwUnlockTransferRateHwBuffers = pUnlockTransferRateHwBuffers; } // -------------------------------------------------------------------------- // Method: Clear() // Description: The Clear() method can be used to clear the contents of the // TDSCaps's internal DSCAPS structure. // Note: if you have manually linked a structure member to a // chunk of memory, make sure you release this memory before // calling Clear(). // -------------------------------------------------------------------------- void __fastcall TDSCaps::Clear() { fErrorValue = DS_OK; fDSCAPS.dwFlags = 0; fDSCAPS.dwFreeHw3DAllBuffers = 0; fDSCAPS.dwFreeHw3DStaticBuffers = 0; fDSCAPS.dwFreeHw3DStreamingBuffers = 0; fDSCAPS.dwFreeHwMemBytes = 0; fDSCAPS.dwFreeHwMixingAllBuffers = 0; fDSCAPS.dwFreeHwMixingStaticBuffers = 0; fDSCAPS.dwFreeHwMixingStreamingBuffers = 0; fDSCAPS.dwMaxContigFreeHwMemBytes = 0; fDSCAPS.dwMaxHw3DAllBuffers = 0; fDSCAPS.dwMaxHw3DStaticBuffers = 0; fDSCAPS.dwMaxHw3DStreamingBuffers = 0; fDSCAPS.dwMaxHwMixingAllBuffers = 0; fDSCAPS.dwMaxHwMixingStaticBuffers = 0; fDSCAPS.dwMaxHwMixingStreamingBuffers = 0; fDSCAPS.dwMaxSecondarySampleRate = 0; fDSCAPS.dwMinSecondarySampleRate = 0; fDSCAPS.dwPlayCpuOverheadSwBuffers = 0; fDSCAPS.dwPrimaryBuffers = 0; fSize = sizeof(DSCAPS); fDSCAPS.dwTotalHwMemBytes = 0; fDSCAPS.dwUnlockTransferRateHwBuffers = 0; } // -------------------------------------------------------------------------- // Internal Structure Access // -------------------------------------------------------------------------- DSCAPS* __fastcall TDSCaps::FGetInternal_DSCAPS_Ptr() { return &fDSCAPS; } // -------------------------------------------------------------------------- void __fastcall TDSCaps::FSetInternal_DSCAPS( DSCAPS* pDSCAPS ) { if (pDSCAPS==NULL) { fErrorValue = TDX_ERROR; if (FOnError) FOnError(this, "TDSCaps::FSetInternal_DSCAPS()", "TDX_ERROR", "The supplied DSCAPS* was NULL" ); return; } CopyMemory( &fDSCAPS, pDSCAPS, sizeof(DSCAPS) ); Internal_DSCAPS_Update(); } // -------------------------------------------------------------------------- void __fastcall TDSCaps::Internal_DSCAPS_Update() { } // --------------------------------------------------------------------------