mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-14 02:27:39 -04:00
Theme Editor: Made %pv tag display bar and select from conditional branches correctly
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27398 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
bae1836337
commit
64af2b3a16
4 changed files with 48 additions and 4 deletions
|
@ -660,6 +660,17 @@ bool ParseTreeNode::execTag(const RBRenderInfo& info, RBViewport* viewport)
|
|||
new RBProgressBar(viewport, info, element->params_count,
|
||||
element->params);
|
||||
return true;
|
||||
|
||||
case 'v':
|
||||
/* %pv */
|
||||
if(element->params_count > 0)
|
||||
{
|
||||
new RBProgressBar(viewport, info, element->params_count,
|
||||
element->params, true);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
@ -928,6 +939,26 @@ QVariant ParseTreeNode::evalTag(const RBRenderInfo& info, bool conditional,
|
|||
child = ((branches - 1) * child / 100) + 1;
|
||||
}
|
||||
}
|
||||
else if(QString(element->tag->name) == "pv")
|
||||
{
|
||||
/* ?pv gets scaled to the number of available children, sandwiched
|
||||
* in between mute and 0/>0dB. I assume a floor of -50dB for the
|
||||
* time being
|
||||
*/
|
||||
int dB = val.toInt();
|
||||
|
||||
if(dB < -50)
|
||||
child = 0;
|
||||
else if(dB == 0)
|
||||
child = branches - 2;
|
||||
else if(dB > 0)
|
||||
child = branches - 1;
|
||||
else
|
||||
{
|
||||
int options = branches - 3;
|
||||
child = (options * (dB + 50)) / 50;
|
||||
}
|
||||
}
|
||||
else if(QString(element->tag->name) == "px")
|
||||
{
|
||||
child = val.toInt();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue