I'm terribly sorry, I wrote that on a tablet's virtual keyboard whilst half asleep.
My mistake, I made a slight typo:
# Start of theme
#
# Load our extra (really big) font
%Fl(2, really_big_font.fnt)
#
# viewport conditional switching declaration
%?mv(2)<%Vd(volume_changing)|%Vd(wps_metadata)>
#
# declare our viewports
%Vl(volume_changing,0,0,-,-,2)
%ac%?pv<MUTE|01|01|02|02|03|03|04|04|05|05|06|06|07|07|08|08|09|09|10|10|11|11|12|12|13|13|14|14|15|15|16|16|17|17|18|18|19|19|20|20|21|21|22|22|23|23|24|24|25|25|26|27|28|29|30|32|34|36|38|40|42|44|46|48|50|52|54|56|58|60|62|64|66|68|70|72|74|76|78|80|82|84|86|88|90|92|94|96|98|100|max>
#
%Vl(wps_metadata,0,0,-,-,1)
foo
bar
baz
pretend metadata code stuffs here
#
# End of theme
Is what you want.
Now that I'm more awake, I feel like I should make an effort to explain to you what is going on here in greater detail.
So, lets have a look:
# Start of theme
#
Nothing to see here, this is pretty boring. Just a comment, # tells the skin parser to ignore anything that comes after this character on the same line.
Lets move on.
# Load our extra (really big) font
%Fl(2, really_big_font.fnt)
#
Here's where we load the additional font we want to use. Notice the identifier it has, 2, we give it an identifier so we can refer to it later.
We're not using 0 or 1, as they are reserved for sysfont and the currently loaded user font respectively.
# viewport conditional switching declaration
%?mv(2)<%Vd(volume_changing)|%Vd(wps_metadata)>
#
This is our conditional statement that tells the skin parser when to display what, and under what circumstances. Your requirement was to display nothing but (a very large) volume percentile display when volume was changed. So we use the %mv tag in a conditional statement to check whether or not volume is being changed. The first tuple is the "true" condition, and the second tuple is the "false" condition.
Notice the value after the %mv tag, "(2)". This value is measured in seconds and/or tenths of seconds, or may be non-existent. It specifies the length of time the true condition should be displayed for after going true.
In this case I used a value of two seconds as I think it is long enough to be able to see the volume clearly after changing it, and not too long that you feel like you're waiting too long for it to return to the false state.
# declare our viewports
%Vl(volume_changing,0,0,-,-,2)
%ac%?pv<MUTE|01|01|02|02|03|03|04|04|05|05|06|06|07|07|08|08|09|09|10|10|11|11|12|12|13|13|14|14|15|15|16|16|17|17|18|18|19|19|20|20|21|21|22|22|23|23|24|24|25|25|26|27|28|29|30|32|34|36|38|40|42|44|46|48|50|52|54|56|58|60|62|64|66|68|70|72|74|76|78|80|82|84|86|88|90|92|94|96|98|100|max>
#
Here we set up our first viewport, the one we want used for the "volume changing" true state.
The identifier used, "volume_changing", is simply used so we can both refer to this viewport later to display it and also because it describes the function of the viewport making it easier to read for yourself and others further down the track. The values after that identifier are x, y coordinates that tell the skin parser where we want this viewport to be displayed. I have used "0,0" to specify the top left corner.
The next two values, "-,-" are an easy way to tell the skin parser that we want this viewport to use the full width and height of the screen available to it. You can also specify this value in digits to create a viewport with specific dimensions, these values can be both positive and negative, but for simplicity we'll just use a full-screen viewport. The final value in this declaration, "2", tells the skin parser what font we want this viewport to use. In this case, we're using 2 because it is the identifier for the additional font really_big_font.fnt we loaded earlier.
Then we have your volume code, which I slightly adjusted by adding an alignment tag "%ac" to center the text in the viewport.
%Vl(wps_metadata,0,0,-,-,1)
foo
bar
baz
pretend metadata code stuffs here
#
# End of theme
Another full-screen viewport, this time to be displayed when the volume is not currently being changed, and with a font identifier of "1" to tell the skin parser to use whatever the currently loaded user font is (whichever font you specify in the theme's .cfg file). This is the viewport in which we will display everything else we want displayed about the currently playing track when volume isn't being changed.
I used foo, bar, baz, pretend metadata code stuffs here, etc. simply as placeholders. This is where you would insert the rest of your .wps code so that it will be displayed when volume isn't being changed.
The comment signifying the end of the theme code, and all the rest of the comments, are not necessary. They can be kept for future readability or removed if desired.
If you have any more questions, I will try my best to answer them for you.
[Saint]