Announcement

Collapse
No announcement yet.

Fixing old freeform skins

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Fixing old freeform skins

    This thread is collecting fixes for issues that arise when old freeform skins are used in recent Winamp.
    Ariszló @ WinCustomize & DeviantArt

  • #2
    asynchronous entity

    Dominator is a Winamp 3 skin with interesting animations. When you try to use it in recent versions of Winamp, Winamp will throw up the following error message and then crash:
    asynchronous entity at line 344
    How to fix it?

    Asynchronous entity errors occur when a tag is not closed in an xml file. Line 344 tells us that Winamp tried to find the closing tag until line 344 and then gave it up. So we should look for an xml file with 344 lines.

    Dominator's studio-elements.xml has exactly 344 lines so the unclosed tag should be in that file.

    Short explanation. With respect to how you close them, there are two types of tags. Enclosing tags have an opening tag and a closing tag. An opening tag looks like this:
    PHP Code:
    <elements
    and a closing tag looks like this:
    PHP Code:
    </elements
    The other type of tags is self-closing tags. Self-closing tags have a slash before the final greater-than sign. "Include" tags are self-closing:
    PHP Code:
    <include file="whatever.xml"/> 
    The unclosed tag will be easy to find in Dominator's studio-xml because its very first line contains an include tag that does not have a slash before the greater-than sign. So all you need to do is add the missing slash like this:
    PHP Code:
    <include file="tooltips.xml"/> 
    Adding the missing slash will fix the asynchronous entity error and there will be no more crashes.

    Check out this topic for another skin in which the closing member was missing of an enclosing tag.
    Ariszló @ WinCustomize & DeviantArt

    Comment


    • #3
      Good call, I wish I have more free time.. Will be watching on this though.

      Ps: Why "freeform" and not "modern"?
      · · Big Bento Modern

      Comment


      • #4
        Play/Pause button

        Once you have fixed the asynchronous entity error for Dominator, you will run into another bug: the Play/Pause button will not start playback at startup.

        Background info: Skins that have a single Play/Pause button (rather than two separate buttons) toggle Play and Pause with the help of a maki script. The problem is that the old play2pause.maki, which used to work well with Winamp 3, does not work well with recent versions of Winamp.

        How to fix it?

        Copy pjn123's sc_PlayPause.maki into the skin's scripts directory and replace this line in the xml file that contains it (player-normal-group.xml in Dominator):
        PHP Code:
        <script id="play2pause" file="scripts/play2pause.maki"/> 
        with this one:
        PHP Code:
        <script file="scripts/sc_PlayPause.maki" param="Play;Pause"/> 
        You should also put sc_PlayPause.m into the skin's script directory to
        • help others learn how the script was written and
        • give credit to pjn123
        Attached Files
        Ariszló @ WinCustomize & DeviantArt

        Comment


        • #5
          Originally Posted by Victhor View Post
          Ps: Why "freeform" and not "modern"?
          I find "old modern" a bit odd. Originally, I was thinking on a longer title: "Fixing old freeform skins (WA3 and WA5 Modern)". But then decided on this shorter one.
          Ariszló @ WinCustomize & DeviantArt

          Comment


          • #6
            Play/Pause simpler

            After I had posted the Play/Pause fix using pjn123's sc_PlayPause.maki, I found a faster fix.

            All you need to do is overwrite the skin's original play2pause.maki file with the one in the attached zip archive. You do not need to replace any line in any xml file.

            The source of the attached play2pause.maki is FrisbeeMonkey's Play-to-Pause script to which I applied SLoB's fix.
            Attached Files
            Ariszló @ WinCustomize & DeviantArt

            Comment


            • #7
              Scrollbars

              When you load a Winamp 3 skin into current Winamp then the original scrollbars will be replaced with scrollbars generated from the generic button and other elements.

              To restore the original scrollbars, change the version number of WinampAbstractionLayer to 1.3 in skin.xml like this:
              PHP Code:
              <WinampAbstractionLayer version="1.3"
              Attached Files
              Ariszló @ WinCustomize & DeviantArt

              Comment


              • #8
                TrueType font size

                Winamp 5 displays TrueType fonts smaller than Winamp 3. So if you want to preserve the original look of a Winamp 3 skin when updating it for Winamp 5, you need to multiply the fontsize value of TrueType fonts by 1.3.

                Dominator, whose startup crashes were fixed in comment #2, uses a TrueType font in the title bars of Playlist Editor, Media Library, etc.

                The size of the title bar font of these windows is defined in standardframe.xml. Open the file, find the groupdef of wasabi.titlebar and increase the fontsize from 13 to 17.
                Attached Files
                Ariszló @ WinCustomize & DeviantArt

                Comment


                • #9
                  Playlist Editor colors

                  Buroid is a Winamp 3 skin that does have its own text and background colors for the Playlist Editor but uses the colors of the Winamp 3 default skin. When you load it into Winamp 5, most of the colors will be all right but not all of them. If you select the currently played song in the Playlist Editor, you will be hardly able to read what is because Winamp 5 will show it with grey text on a grey background.

                  Background info. Winamp 3 defines the color of selected list items with wasabi.list.item.selected (or studio.list.item.selected in earlier alpha and beta versions), while Winamp 5 expects wasabi.list.text.selected, which it does not find. Winamp 3 marks the currently played track with a rectangle around it, while Winamp 5 marks it with a different color.

                  How to fix it?

                  Copy the following text into a text editor and save it as system-colors.xml into Buroid's xml directory:

                  PHP Code:
                  <elements>

                    <
                  color id="wasabi.list.text.current" value="255,255,255" gammagroup="Text"/>
                    <!-- 
                  from wasabi.list.item.selected.fg -->

                    <
                  color id="wasabi.list.text.selected" value="255,255,255" gammagroup="Text"/>
                    <!-- 
                  from wasabi.list.item.selected.fg -->

                    <
                  color id="wasabi.list.text.selected.background" value="0,0,128" gammagroup="Text Backgrounds"/>
                    <!-- 
                  from wasabi.list.item.selected -->

                  </
                  elements
                  Winamp will only load system-colors.xml if you add the following line before the other include tags in skin.xml:
                  PHP Code:
                  <include file="xml/system-colors.xml"/> 
                  If you experience similar issues with a skin that has its own system-colors.xml then add the missing color definitions to it. Make sure that you copy the values from the skin's own wasabi.list.item.selected.fg and wasabi.list.item.selected color definitions.
                  Attached Files
                  Ariszló @ WinCustomize & DeviantArt

                  Comment


                  • #10
                    Originally Posted by ariszlo View Post
                    ...that does have...
                    I mean does NOT have.
                    Ariszló @ WinCustomize & DeviantArt

                    Comment


                    • #11
                      Black current

                      Another issue that may arise when you load an old skin that does not define the color of the currently played track is that the song info for the currently played track will be displayed in black text on a black background when you select a playlist in Media Library's treeview.

                      The fix in comment #9 fixes this, too.
                      Attached Files
                      Ariszló @ WinCustomize & DeviantArt

                      Comment


                      • #12
                        Media Library colors

                        Buroid is a Winamp 3 skin that uses Winamp 3's default colors in the Media Library as well as in the Playlist Editor and other generic windows. If you want to preserve much of the original Winamp 3 look and feel then you will need to add two more color definitions to Buroid's system-colors.xml:

                        PHP Code:
                        <color id="wasabi.window.text" value="255,255,255" gammagroup="Text"/>

                        <
                        color id="wasabi.window.background" value="127,127,127" gammagroup="Backgrounds"/> 
                        wasabi.window.text defines the text color of the Search label and the Library info text in the Media Library, which is white in Winamp 3.

                        wasabi.window.background defines the color of the window background outside the treeview and listview panels. If it were not defined then Winamp would pick a pixel from wasabi.frame.basetexture, which would be too light for the white text.
                        Attached Files
                        Ariszló @ WinCustomize & DeviantArt

                        Comment


                        • #13
                          WinampAbstractionLayer version matters

                          It is essential to raise the version number of WinampAbstractionLayer to 1.3 in skin.xml for all the fixes in post #9 and post #12 to take effect.

                          PHP Code:
                          <WinampAbstractionLayer version="1.3"
                          Ariszló @ WinCustomize & DeviantArt

                          Comment


                          • #14
                            Right-click menu

                            Some old skins have unreadable right-click menus in recent Winamp. When you look further, you will see that it is not just the right-click menu: the Search label and the library info in the Media Library are not readable in those skins, either.

                            Take for example the right-click menu and Media Library of the RazorEdge skin in the first picture. The right-click menu has light grey text on a light grey background and the Search label and the library info in the Media Library are also written in light grey on a light grey backround.

                            How to fix it?

                            First of all, raise the version number of WinampAbstractionLayer to 1.3 in skin.xml:

                            PHP Code:
                            <WinampAbstractionLayer version="1.3"
                            Then add the following color definitions to SystemColors.xml:

                            PHP Code:
                            <color id="wasabi.list.text.current" value="255,255,255"/>
                            <!-- 
                            from studio.list.item.selected.fg -->

                            <
                            color id="wasabi.list.text.selected" value="255,255,255"/>
                            <!-- 
                            from studio.list.item.selected.fg -->

                            <
                            color id="wasabi.list.text.selected.background" value="64,64,64"/>
                            <!-- 
                            from studio.list.item.selected -->

                            <
                            color id="wasabi.window.background" value="127,127,127"/>

                            <
                            color id="wasabi.window.text" value="255,255,255"/> 
                            The values of the wasabi.list color definitions are take from the skin's studio.list.item color definitions.

                            The value of wasabi.window.text is the color of the Select and Query labels in Winamp 3 and wasabi.window.background is darkened for better readability.
                            Attached Files
                            Ariszló @ WinCustomize & DeviantArt

                            Comment


                            • #15
                              Right-click menu: own colors

                              While adding the correct wasabi.window.background and wasabi.window.text color definitions will automatically fix the right-click menu, too, you may also specify colors for the right-click menu independently of the wasabi.window.background and wasabi.window.text color definitions.

                              First of all, raise the version number of WinampAbstractionLayer to 1.3 in skin.xml if you have not done so, yet:

                              PHP Code:
                              <WinampAbstractionLayer version="1.3"
                              With the following color definitions added to SystemColors.xml, the colors of your right-click menu will be almost the same as the colors of the right-click menu of the Winamp 3 default skin:

                              PHP Code:
                              <color id="wasabi.popupmenu.background" value="246,246,246" gammagroup="Menus"/>
                              <
                              color id="wasabi.popupmenu.background.selected" value="0,0,255" gammagroup="Menus"/>
                              <
                              color id="wasabi.popupmenu.text" value="0,0,0" gammagroup="Text"/>
                              <
                              color id="wasabi.popupmenu.text.selected" value="255,255,255" gammagroup="Text"/>
                              <
                              color id="wasabi.popupmenu.text.inactive" value="64,64,64" gammagroup="Text"/>
                              <
                              color id="wasabi.popupmenu.frame" value="60,69,79" gammagroup="Menus"/>
                              <
                              color id="wasabi.popupmenu.separator" value="171,171,171" gammagroup="Menus"/> 
                              The "almost" is there because the color of wasabi.popupmenu.background.selected is 50% transparent, which means that over a "246,246,246" background, you will see it "123,123,250".
                              Attached Files
                              Ariszló @ WinCustomize & DeviantArt

                              Comment

                              Working...
                              X