//////////////////////////////////////////////////////////////////////////////// // Plainamp, Open source Winamp core // // Copyright © 2005 Sebastian Pipping // // --> 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 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