Files
Client/GameTools/SoundLib/StreamHandler.h
LGram16 dd97ddec92 Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code:
- Client: Game client source (moved to Client/Client/)
- Server: Game server source
- GameTools: Development tools
- CryptoSource: Encryption utilities
- database: Database scripts
- Script: Game scripts
- rylCoder_16.02.2008_src: Legacy coder tools
- GMFont, Game: Additional resources

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 20:17:20 +09:00

91 lines
1.7 KiB
C++

#ifndef _StreamHandler_H_
#define _StreamHandler_H_
#include "STL.h"
/////////////////////////////////////////////////////////////////////////////////////////
// Àü¹æ ÂüÁ¶
class CStreamBuffer;
typedef unsigned long DWORD;
typedef void * HANDLE;
/////////////////////////////////////////////////////////////////////////////////////////
//
class IStreamHandler
{
public:
virtual ~IStreamHandler() {}
virtual void Create() = 0;
virtual void Destroy() = 0;
virtual void Add( CStreamBuffer & ) = 0;
virtual void Remove( CStreamBuffer & ) = 0;
virtual void Update() = 0;
};
/////////////////////////////////////////////////////////////////////////////////////////
//
class CStreamHandler : public IStreamHandler
{
public:
typedef vector<HANDLE> HANDLES;
typedef vector<CStreamBuffer*> STREAMBUFFERS;
protected:
HANDLES * m_pHandles;
STREAMBUFFERS * m_pStreamBuffers;
DWORD m_dwNotifyThreadID;
HANDLE m_hNotifyThread;
friend DWORD __stdcall NotificationProc( void * );
void UpdateStreamHandles();
public:
CStreamHandler();
~CStreamHandler();
void Create();
void Destroy();
void Add( CStreamBuffer & );
void Remove( CStreamBuffer & );
void Update() {}
};
/////////////////////////////////////////////////////////////////////////////////////////
//
class CStreamUpdater : public IStreamHandler
{
public:
typedef vector<HANDLE> HANDLES;
typedef vector<CStreamBuffer*> STREAMBUFFERS;
protected:
HANDLES * m_pHandles;
STREAMBUFFERS * m_pStreamBuffers;
public:
CStreamUpdater();
~CStreamUpdater();
void Create();
void Destroy();
void Add( CStreamBuffer & );
void Remove( CStreamBuffer & );
void Update();
};
/////////////////////////////////////////////////////////////////////////////////////////
#endif