Initial commit: ROW Client source code
Game client codebase including: - CharacterActionControl: Character and creature management - GlobalScript: Network, items, skills, quests, utilities - RYLClient: Main client application with GUI and event handlers - Engine: 3D rendering engine (RYLGL) - MemoryManager: Custom memory allocation - Library: Third-party dependencies (DirectX, boost, etc.) - Tools: Development utilities 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,169 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// File: Gargle.h
|
||||
//
|
||||
// Desc: DirectShow sample code - definition of CGargle class.
|
||||
//
|
||||
// Copyright (c) 2000-2001 Microsoft Corporation. All rights reserved.
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifndef __GARGLE_H_
|
||||
#define __GARGLE_H_
|
||||
|
||||
#include "resource.h" // main symbols
|
||||
#include "igargle.h" // interface to us
|
||||
|
||||
// {458F93F3-4769-4370-8A7D-D055EE97679C}
|
||||
DEFINE_GUID(CLSID_Gargle,
|
||||
0x458f93f3, 0x4769, 0x4370, 0x8a, 0x7d, 0xd0, 0x55, 0xee, 0x97, 0x67, 0x9c);
|
||||
|
||||
// {3E7BB80F-2245-4483-ACC5-3A2EFDE0ACA6}
|
||||
DEFINE_GUID(CLSID_GargDMOProp,
|
||||
0x3e7bb80f, 0x2245, 0x4483, 0xac, 0xc5, 0x3a, 0x2e, 0xfd, 0xe0, 0xac, 0xa6);
|
||||
|
||||
enum GargleFilterParams
|
||||
{
|
||||
GFP_Rate = 0,
|
||||
GFP_Shape,
|
||||
GFP_MAX
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CGargle
|
||||
class ATL_NO_VTABLE CGargle :
|
||||
public CComObjectRootEx<CComMultiThreadModel>,
|
||||
public CComCoClass<CGargle, &CLSID_Gargle>,
|
||||
public CPCMDMO,
|
||||
public ISpecifyPropertyPages,
|
||||
public IPersistStream,
|
||||
public IMediaObjectInPlace,
|
||||
public CParamsManager,
|
||||
public CParamsManager::UpdateCallback,
|
||||
public IGargleDMOSample // property page uses this to talk to us
|
||||
{
|
||||
public:
|
||||
CGargle();
|
||||
HRESULT Init();
|
||||
|
||||
DECLARE_REGISTRY_RESOURCEID(IDR_GARGLE)
|
||||
DECLARE_GET_CONTROLLING_UNKNOWN()
|
||||
|
||||
DECLARE_PROTECT_FINAL_CONSTRUCT()
|
||||
|
||||
BEGIN_COM_MAP(CGargle)
|
||||
COM_INTERFACE_ENTRY(IMediaObject)
|
||||
COM_INTERFACE_ENTRY(IMediaObjectInPlace)
|
||||
COM_INTERFACE_ENTRY(IMediaParams)
|
||||
COM_INTERFACE_ENTRY(IMediaParamInfo)
|
||||
COM_INTERFACE_ENTRY(ISpecifyPropertyPages)
|
||||
COM_INTERFACE_ENTRY(IPersistStream)
|
||||
COM_INTERFACE_ENTRY_IID(IID_IGargleDMOSample, IGargleDMOSample)
|
||||
COM_INTERFACE_ENTRY_AGGREGATE(IID_IMarshal, m_pUnkMarshaler.p)
|
||||
END_COM_MAP()
|
||||
|
||||
HRESULT FinalConstruct()
|
||||
{
|
||||
return CoCreateFreeThreadedMarshaler(
|
||||
GetControllingUnknown(), &m_pUnkMarshaler.p);
|
||||
}
|
||||
|
||||
void FinalRelease()
|
||||
{
|
||||
m_pUnkMarshaler.Release();
|
||||
}
|
||||
|
||||
CComPtr<IUnknown> m_pUnkMarshaler;
|
||||
|
||||
HRESULT FBRProcess(DWORD cSamples, BYTE *pIn, BYTE *pOut);
|
||||
|
||||
// override
|
||||
HRESULT Discontinuity();
|
||||
|
||||
bool m_fDirty;
|
||||
|
||||
// IGargleDMOSample
|
||||
STDMETHOD(SetAllParameters) (THIS_ LPCGargleFX);
|
||||
STDMETHOD(GetAllParameters) (THIS_ LPGargleFX);
|
||||
|
||||
// IMediaObjectInPlace
|
||||
STDMETHODIMP Process(THIS_ ULONG ulSize, BYTE *pData, REFERENCE_TIME rtStart, DWORD dwFlags);
|
||||
STDMETHODIMP GetLatency(THIS_ REFERENCE_TIME *prt);
|
||||
STDMETHODIMP Clone(IMediaObjectInPlace **pp);
|
||||
|
||||
// SetParam handling
|
||||
STDMETHODIMP SetParam(DWORD dwParamIndex,MP_DATA value) { return SetParamInternal(dwParamIndex, value, false); }
|
||||
HRESULT SetParamUpdate(DWORD dwParamIndex, MP_DATA value) { return SetParamInternal(dwParamIndex, value, true); }
|
||||
HRESULT SetParamInternal(DWORD dwParamIndex, MP_DATA value, bool fSkipPasssingToParamManager);
|
||||
|
||||
// ISpecifyPropertyPages
|
||||
STDMETHODIMP GetPages(CAUUID * pPages);
|
||||
|
||||
/* IPersist */
|
||||
STDMETHODIMP GetClassID(THIS_ CLSID *pClassID);
|
||||
|
||||
// IPersistStream
|
||||
STDMETHOD(IsDirty)(void) { return m_fDirty ? S_OK : S_FALSE; }
|
||||
|
||||
STDMETHOD(Load)(IStream *pStm)
|
||||
{
|
||||
ULONG cbRead;
|
||||
HRESULT hr = S_OK;
|
||||
|
||||
if (pStm==NULL)
|
||||
return E_POINTER;
|
||||
|
||||
GargleFX garglefx;
|
||||
hr = pStm->Read((void *)&garglefx, sizeof(garglefx), &cbRead);
|
||||
if (hr != S_OK || cbRead < sizeof(garglefx))
|
||||
return E_FAIL;
|
||||
hr = SetAllParameters(&garglefx);
|
||||
m_fDirty = false;
|
||||
return hr;
|
||||
}
|
||||
|
||||
STDMETHOD(Save)(IStream *pStm, BOOL fClearDirty)
|
||||
{
|
||||
HRESULT hr = S_OK;
|
||||
|
||||
if (pStm==NULL)
|
||||
return E_POINTER;
|
||||
|
||||
GargleFX garglefx;
|
||||
hr = GetAllParameters(&garglefx);
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
ULONG cbWritten;
|
||||
hr = pStm->Write((void *)&garglefx, sizeof(garglefx), &cbWritten);
|
||||
if (hr != S_OK || cbWritten < sizeof(garglefx))
|
||||
return E_FAIL;
|
||||
|
||||
if (fClearDirty)
|
||||
m_fDirty = false;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
STDMETHOD(GetSizeMax)(ULARGE_INTEGER *pcbSize)
|
||||
{
|
||||
if (!pcbSize)
|
||||
return E_POINTER;
|
||||
|
||||
pcbSize->QuadPart = sizeof(GargleFX);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
private:
|
||||
// gargle params
|
||||
ULONG m_ulShape;
|
||||
ULONG m_ulGargleFreqHz;
|
||||
|
||||
// gargle state
|
||||
ULONG m_ulPeriod;
|
||||
ULONG m_ulPhase;
|
||||
|
||||
BOOL m_bInitialized;
|
||||
|
||||
};
|
||||
|
||||
#endif //__GARGLE_H_
|
||||
Reference in New Issue
Block a user