dolphin/Externals/MusicMod/Player/Src/Plugin.cpp

64 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.
////////////////////////////////////////////////////////////////////////////////
#include "Plugin.h"
#include "InputPlugin.h"
#include "OutputPlugin.h"
#include "VisPlugin.h"
#include "DspPlugin.h"
#include "GenPlugin.h"
vector<Plugin *> plugins; // extern
int Plugin::iWndprocHookCounter = 0;
////////////////////////////////////////////////////////////////////////////////
///
////////////////////////////////////////////////////////////////////////////////
Plugin::Plugin( TCHAR * szDllpath )
{
hDLL = NULL;
szName = NULL;
iNameLen = 0;
iFullpathLen = ( int )_tcslen( szDllpath );
szFullpath = new TCHAR[ iFullpathLen + 1 ];
memcpy( szFullpath, szDllpath, iFullpathLen * sizeof( TCHAR ) );
szFullpath[ iFullpathLen ] = TEXT( '\0' );
TCHAR * walk = szFullpath + iFullpathLen - 1;
while( ( *walk != TEXT( '\\') ) && ( walk >= szFullpath ) ) walk--;
if( *walk == TEXT( '\\') ) walk++;
szFilename = walk;
iFilenameLen = iFullpathLen - ( walk - szFullpath );
_tcslwr( szFilename );
plugins.push_back( this );
}
////////////////////////////////////////////////////////////////////////////////
///
////////////////////////////////////////////////////////////////////////////////
Plugin::~Plugin()
{
if( szFullpath ) delete [] szFullpath;
if( szName ) delete [] szName;
}