Installer: Now removes %TEMP%\Rainmeter-Cache on uninstall.

NowPlayingPlugin: Fixed crash on refresh when the plugin is used in multiple skins with different players.
This commit is contained in:
Birunthan Mohanathas 2011-05-22 14:45:54 +00:00
parent 3ba7d39bc4
commit 7dd3bb1ed4
7 changed files with 39 additions and 23 deletions

View File

@ -26,12 +26,12 @@
#include "PlayerWinamp.h"
#include "PlayerWMP.h"
static CPlayer* g_AIMP = NULL;
static CPlayer* g_Foobar = NULL;
static CPlayer* g_iTunes = NULL;
static CPlayer* g_Spotify = NULL;
static CPlayer* g_Winamp = NULL;
static CPlayer* g_WMP = NULL;
CPlayer* g_AIMP = NULL;
CPlayer* g_Foobar = NULL;
CPlayer* g_iTunes = NULL;
CPlayer* g_Spotify = NULL;
CPlayer* g_Winamp = NULL;
CPlayer* g_WMP = NULL;
static MeasureMap g_Values;
static bool g_DisableLeazingZero = false;
@ -99,9 +99,11 @@ UINT Initialize(HMODULE instance, LPCTSTR iniFile, LPCTSTR section, UINT id)
if (!data->player)
{
std::wstring error = L"NowPlayingPlugin: The referenced measure PlayerName=";
std::wstring error = L"NowPlayingPlugin: PlayerName=";
error += str;
error += L" does not exist.";
error += L" in section [";
error += section;
error += L"] does not exist.";
LSLog(LOG_WARNING, L"Rainmeter", error.c_str());
return maxValue;
}
@ -164,9 +166,9 @@ UINT Initialize(HMODULE instance, LPCTSTR iniFile, LPCTSTR section, UINT id)
{
std::wstring error = L"NowPlayingPlugin: PlayerName=";
error += str;
error += L" is not valid in section [";
error += L" in section [";
error += section;
error += L"].";
error += L"] is not valid.";
LSLog(LOG_ERROR, L"Rainmeter", error.c_str());
delete data;
return maxValue;

View File

@ -19,6 +19,8 @@
#include "StdAfx.h"
#include "PlayerAIMP.h"
extern CPlayer* g_AIMP;
/*
** CPlayerAIMP
**
@ -72,6 +74,7 @@ void CPlayerAIMP::RemoveInstance()
{
if (--m_InstanceCount == 0)
{
g_AIMP = NULL;
delete this;
}
}
@ -199,6 +202,16 @@ void CPlayerAIMP::UpdateData()
stringData += info->nArtistLen;
stringData += info->nDateLen;
std::wstring filepath(stringData, info->nFileNameLen);
stringData += info->nFileNameLen;
stringData += info->nGenreLen;
m_Title.assign(stringData, info->nTitleLen);
m_Duration = info->nDuration / 1000;
// Get rating through the AIMP Winamp API
m_Rating = SendMessage(m_WinampWindow, WM_WA_IPC, 0, IPC_GETRATING);
if (filepath != m_FilePath)
{
m_FilePath = filepath;
@ -235,18 +248,6 @@ void CPlayerAIMP::UpdateData()
m_CoverPath.clear();
}
}
stringData += info->nFileNameLen;
stringData += info->nGenreLen;
m_Title.assign(stringData, info->nTitleLen);
m_Duration = info->nDuration / 1000;
if (m_WinampWindow)
{
// Get the rating through the AIMP Winamp API
m_Rating = SendMessage(m_WinampWindow, WM_WA_IPC, 0, IPC_GETRATING);
}
}
}

View File

@ -19,6 +19,8 @@
#include "StdAfx.h"
#include "PlayerFoobar.h"
extern CPlayer* g_Foobar;
/*
** CPlayerFoobar
**
@ -70,6 +72,7 @@ void CPlayerFoobar::RemoveInstance()
{
if (--m_InstanceCount == 0)
{
g_Foobar = NULL;
delete this;
}
}

View File

@ -19,7 +19,7 @@
#include "StdAfx.h"
#include "PlayerITunes.h"
extern std::wstring g_CachePath;
extern CPlayer* g_iTunes;
/*
** CEventHandler
@ -166,6 +166,7 @@ void CPlayerITunes::RemoveInstance()
{
if (--m_InstanceCount == 0)
{
g_iTunes = NULL;
delete this;
}
}

View File

@ -19,6 +19,8 @@
#include "StdAfx.h"
#include "PlayerSpotify.h"
extern CPlayer* g_Spotify;
/*
** CPlayerSpotify
**
@ -62,6 +64,7 @@ void CPlayerSpotify::RemoveInstance()
{
if (--m_InstanceCount == 0)
{
g_Spotify = NULL;
delete this;
}
}

View File

@ -19,6 +19,8 @@
#include "StdAfx.h"
#include "PlayerWMP.h"
extern CPlayer* g_WMP;
/*
** CRemoteHost
**
@ -198,6 +200,7 @@ void CPlayerWMP::RemoveInstance()
{
if (--m_InstanceCount == 0)
{
g_WMP = NULL;
delete this;
}
}

View File

@ -19,6 +19,8 @@
#include "StdAfx.h"
#include "PlayerWinamp.h"
extern CPlayer* g_Winamp;
/*
** CPlayerWinamp
**
@ -55,6 +57,7 @@ void CPlayerWinamp::AddInstance(MEASURETYPE type)
if (type == MEASURE_COVER)
{
g_Winamp = NULL;
m_HasCoverMeasure = true;
}
}