- Script: Fixed that AutoScale/Scale/Percentual/NumOfDecimals were not applied for MeasureName=ScriptMeasure

- NowPlayingPlugin: OpenPlayer bang with foobar2000 now opens foobar2000 maximized regardless of previous state
This commit is contained in:
Birunthan Mohanathas
2011-07-31 08:58:43 +00:00
parent b16d3d0762
commit 6dfb307636
4 changed files with 28 additions and 13 deletions

View File

@ -98,11 +98,8 @@ bool CMeasureScript::Update()
if (!(m_HasUpdateFunction && m_LuaScript->RunFunctionWithReturn(g_UpdateFunctionName, m_Value, m_StringValue)) &&
!(m_HasGetStringFunction && m_LuaScript->RunFunctionWithReturn(g_GetStringFunctionName, m_Value, m_StringValue)))
{
if (!m_StringValue.empty())
{
m_Value = 0;
m_StringValue.clear();
}
m_Value = 0;
m_StringValue.clear();
}
return PostUpdate();
@ -116,7 +113,12 @@ bool CMeasureScript::Update()
*/
const WCHAR* CMeasureScript::GetStringValue(AUTOSCALE autoScale, double scale, int decimals, bool percentual)
{
return CheckSubstitute(m_StringValue.c_str());
if (!m_StringValue.empty())
{
return CheckSubstitute(m_StringValue.c_str());
}
return CMeasure::GetStringValue(autoScale, scale, decimals, percentual);
}
/*

View File

@ -146,7 +146,7 @@ void LuaScript::RunFunction(const char* funcName)
/*
** RunFunctionWithReturn
**
** Runs given function in script file and stores the retruned number and/or string.
** Runs given function in script file and stores the retruned number or string.
** Returns true if the executed function returns a valid value.
**
*/
@ -169,15 +169,19 @@ bool LuaScript::RunFunctionWithReturn(const char* funcName, double& numValue, st
}
else
{
if (lua_isstring(m_State, -1))
if (lua_isnumber(m_State, -1))
{
numValue = lua_tonumber(m_State, -1);
strValue.clear();
ret = true;
}
else if (lua_isstring(m_State, -1))
{
// Type is LUA_TSTRING or LUA_TNUMBER
const char* str = lua_tostring(m_State, -1);
strValue = ConvertToWide(str);
// lua_tonumber() returns 0 when type is non-number
numValue = lua_tonumber(m_State, -1);
numValue = 0;
ret = true;
}