dolphin/Externals/MusicMod/Player/Src/VisModule.h

72 lines
1.7 KiB
C++

////////////////////////////////////////////////////////////////////////////////
// Plainamp, Open source Winamp core
//
// Copyright © 2005 Sebastian Pipping <webmaster@hartwork.org>
//
// --> http://www.hartwork.org
//
// This source code is released under the GNU General Public License (GPL).
// See GPL.txt for details. Any non-GPL usage is strictly forbidden.
////////////////////////////////////////////////////////////////////////////////
#ifndef PA_VIS_MODULE_H
#define PA_VIS_MODULE_H
#include "Global.h"
#include "VisPlugin.h"
#include <Process.h>
class VisModule;
class VisPlugin;
extern VisModule ** active_vis_mods;
extern int active_vis_count;
////////////////////////////////////////////////////////////////////////////////
/// Winamp visualization module wrapper
////////////////////////////////////////////////////////////////////////////////
class VisModule
{
public:
VisModule( char * szName, int iIndex, winampVisModule * mod, VisPlugin * plugin );
bool Start();
bool Config();
bool Stop();
inline bool IsActive() { return bActive; }
inline TCHAR * GetName() { return szName; }
inline int GetNameLen() { return iNameLen; }
private:
int iArrayIndex;
bool bActive;
bool bShouldQuit;
bool bAllowRender;
TCHAR * szName;
int iNameLen;
int iIndex;
winampVisModule * mod;
VisPlugin * plugin;
friend void PlugThread( PVOID pvoid );
friend void VSAAdd( void * data, int timestamp );
friend void VSAAddPCMData( void * PCMData, int nch, int bps, int timestamp );
friend int VSAGetMode( int * specNch, int * waveNch );
};
#endif // PA_VIS_MODULE_H