Announcement

Collapse
No announcement yet.

How ?

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

  • "Winamop gradient map"... No result. http://www.stefanweb.com/wa3/tutorials.html#UsingMaps or ant part, neither.
    A little problem : I'd like a multi colored volume bar, if I'm not msitaken your volume frame uses a single colored bar.

    Comment


    • That's functionning, ùiniizing the relative gap between the clicked point in the overall bar and the displayed graphic when going up or down.
      My volumebar displays some artifacts (large at the beginning then sizing down from one third. I'll check that.

      Time to integrate layouts now.

      Comment


      • Originally Posted by parisienne17 View Post
        Time to integrate layouts now.
        Check this out for a left-click switcher: Study_Layouts.zip
        Last edited by ariszlo; 19 May 2023, 20:13. Reason: updated link to new zip.
        Ariszló @ WinCustomize & DeviantArt

        Comment


        • Originally Posted by parisienne17 View Post
          "Winamop gradient map"... No result. http://www.stefanweb.com/wa3/tutorials.html#UsingMaps or ant part, neither.
          This is how you create the bitmaps for an animated seek bar:
          1. Create a grayscale seekmap.png for your seek bar with a gradient from black to white. The size of your seekmap.png should be the same as the size of your seek bar. See seekmap.png in the attached zip. If you don't know how to create a gradient then google for photoshop gradient or gimp gradient.
          2. Decide how many frames you have the patience to make. The more frames, the better. (The seekanim.png in Study_Layouts.zip has 144 frames.)
          3. Create a transparent canvas for the seek animation. The width of the canvas should be the same as the length of your seek bar. It is height should be as many times the height of your seek bar as many frames you are ready to make. Since this is going to be your first seek animation, let's not complicate things and let's just use only 9 frames. If the size of your seek bar is 256x24 then the size of a canvas for 9 frames should be 256x216.
          4. Fill the transparent canvas with a left-to-right gradient. Use whichever colors you like. See gradient.png in the attached zip.
          5. Make the first frame fully transparent. The height of a frame is the same as the height of your seek bar. The width of a frame is the same as the width of your canvas (which in turn is the same as the length of your seek bar).
          6. The last frame should be fully filled.
          7. The middle frame should be 50% filled and 50% transparent.
          8. Decrease the fill towards the first frame and increase it towards the last frame. See seekanim.png in the attached zip.
          The process is much the same for the volume bar except that you also need a small transparent thumb with the same height as the height of the volume bar.

          For vertical sliders, rotate the bitmaps and swap x with y and w with h.
          Attached Files
          Last edited by ariszlo; 19 May 2023, 20:15. Reason: updated reference to Study_Layouts.zip
          Ariszló @ WinCustomize & DeviantArt

          Comment


          • OK.
            2 scripts :
            - A => switch modes (normal, compact, stick)
            - B => switch options (covert art, visualisation x 2 (for the first 2 modes))


            Script (edited & compiled fine for A & B)
            PHP Code:
            #include "std.mi"

            Global Container containerMain;
            Global 
            Layout mainNormal;
            Global 
            Layout mainCompact;
            Global 
            Layout mainStick;

            Global 
            Button normalSwitch;
            Global 
            Button CompactSwitch;
            Global 
            Button StickSwitch;

            Function 
            switchPopup();

            System.onScriptLoaded() {
              
            containerMain System.getContainer("main");

              
            mainNormal containerMain.getLayout("normal");
              
            mainCompact containerMain.getLayout("Compact");
              
            mainStick containerMain.getLayout("Stick");

              
            normalSwitch mainNormal.findObject("Switch Layouts");
              
            CompactSwitch mainCompact.findObject("Switch Layouts");
              
            StickSwitch mainStick.findObject("Switch Layouts");
            }

            normalSwitch.onLeftClick() { switchPopup(); }
            CompactSwitch.onLeftClick() { switchPopup(); }
            StickSwitch.onLeftClick() { switchPopup(); }

            normalSwitch.onLeftButtonUp(Int intPosXInt intPosY) { complete;}
            CompactSwitch.onLeftButtonUp(Int intPosXInt intPosY) { complete;}
            StickSwitch.onLeftButtonUp(Int intPosXInt intPosY) { complete;}

            switchPopup() {
              
            PopupMenu switchMenu;

              
            switchMenu = new PopupMenu;
              
            switchMenu.addCommand("Normal "1, (mainNormal.isVisible()), 0);
              
            switchMenu.addCommand("Compact "2, (mainCompact.isVisible()), 0);
              
            switchMenu.addCommand("Stick "3, (mainStick.isVisible()), 0);

              if (
            switchMenu == Null) { return; }
              
            Int switchNumber switchMenu.popAtMouse();
              if (
            switchNumber 0) {
                if (
            switchNumber == 1) { containerMain.switchToLayout("normal"); }
                if (
            switchNumber == 2) { containerMain.switchToLayout("Compact"); }
                if (
            switchNumber == 3) { containerMain.switchToLayout("Stick"); }
              }
              
            complete;

              
            delete switchMenu;
            }

            ​ 

            Player (container)
            PHP Code:
            <script id="switchleftclick" file="scripts/switchLayoutsA.maki"/>
            <
            script id="switchleftclick2" file="scripts/switchLayoutsB.maki"/>

            ​ 

            elements set in player-elements


            Player-normal

            PHP Code:
            <include file="player-normal-group.xml" />


            <!-- 
            Layout standard (NORMAL) -->
            <
            layout id="Normal" background="Normal-Background" w="520" h="350" desktopalpha="1">
            <!-- 
            inclure à partir de la fermeture de CE LAYOUT les différents layouts en les nommant et les populant avec leurs infos -->

                        
                    <
            button id="minButton" action="MINIMIZE" x="120" y="17" w="17" h="15" image="Normal-Minimize" hoverImage="Normal-Minimize-Hover" downImage="Normal-Minimize" tooltip="Minimize" />
                    <
            button id="closeButton" action="CLOSE" x="143" y="17" w="17" h="15" image="Normal-Close" hoverImage="Normal-Close-Hover" downImage="Normal-Close" tooltip="Close" />
                    <
            button id="Opacity/scale" action="Controlmenu" x="50" y="15" w="17" h="17" image="normal-opacityscale" hoverImage="normal-opacityscale-hover" tooltip="Opacity/Scale" />
            <!--        <
            button id="Switch Layouts" x="20" y="8" w="31" h="33" image="std-mode" hoverImage="std-mode-Hover" tooltip="Switch Layouts" /> -->
                

                <
            group id="songDisplay" x="45" y="45" w="450" />
                <
            group id="songControls" x="10" y="310" />
                <
            group id="songStatus" x="286" y="150" />    
                <
            group id="timer" x="185" y="312" />
                <
            group id="Volume" x="20" y="287" />
                <
            group id="seeker" x="232" y="315" />
                <
            group id="buttonsRow" x="45" y="117" w="500" h="90" />
                <
            group id="buttonsRow1" x="45" y="192" w="500" h="90" />
                <
            group id="albumartgroup" x="0" y="0"/>
                <
            group id="systembuttons" x="0" y="0"/>
            </
            layout>​ 

            and so forth for compact/stick x covert art/visualisation

            then player-normal-group
            PHP Code:
                    <groupdef id="systembuttons">
                            <
            button id="Switch Layouts" x="20" y="8" w="31" h="33" image="std-mode" hoverImage="std-mode-Hover" tooltip="Switch Layouts" />
                    </
            groupdef>​ 

            Skin refresh => guru meditation null object called in scriptA

            Comment


            • Originally Posted by parisienne17 View Post
              OK.
              2 scripts :
              - A => switch modes (normal, compact, stick)
              - B => switch options (covert art, visualisation x 2 (for the first 2 modes))
              No need for 2 scripts. One is enough. There is a new switchleftclick.m in the attached switchleftclick.zip adapted to what you are trying to achieve. I have added comments to it to explain how the script works.

              Do not complicate things with modes and options. Define all your mode/option combinations as layouts.

              Give the following id's for your layouts and the script will do the job for you:

              "normal" for your normal layout with cover art
              "normalviz" for your normal layout with visualisation
              "compact" for your compact layout with cover art
              "compactviz" for your compact layout with visualisation
              "stick" for your stick layout

              Don't use albumartvis.maki to switch between cover art and visualisation. Simply use the AlbumArt object in your layouts with cover art and the windowholder object in place of the AlbumArt object in your layouts with visualisation. The new switchleftclick.m will let you switch between cover art and visualisation.

              Check out the latest version of my Study Layouts skin to see how switching between layouts with the above id's works.

              Attached Files
              Last edited by ariszlo; 19 May 2023, 20:16. Reason: updated reference.
              Ariszló @ WinCustomize & DeviantArt

              Comment


              • obviously the issue, even if it compiled ok, is in my script : I've used yours without issue.
                I'll work better.

                Comment


                • Going thru maki cheats thread here, I didn't find a missing feature (for me) regarding seekbars : when you move the seeker, timers don't reflect the actual position when I've seen some skins displaying the actual position in the songticker.

                  Do you know a way to do this ?

                  Comment


                  • Originally Posted by parisienne17 View Post
                    Going thru maki cheats thread here, I didn't find a missing feature (for me) regarding seekbars : when you move the seeker, timers don't reflect the actual position when I've seen some skins displaying the actual position in the songticker.

                    Do you know a way to do this ?
                    If you use an old-school text object for your songticker like this:
                    PHP Code:
                    <text id="songticker"​ ...> 
                    then you can use FrisbeeMonkey's Seek by Frames and Volume by Frames.

                    If it is still a text object but its id is different (e.g. "SongTitle") then you will need to either change the id of your songticker to "songticker" or change the following line in seekbyframe.m and volumebyframe.m:
                    PHP Code:
                    SongTicker ScriptGrp.findObject("SongTicker"); 
                    to this:
                    PHP Code:
                    SongTicker ScriptGrp.findObject("SongTitle"); 

                    If you use a modern SongTicker object like this:
                    PHP Code:
                    <Songticker id="Songticker"​ ...> 

                    as in Bento, Winamp Modern, or Quinto, then study their seek.m and mute.m scripts (or main-player.m for the latter in Quinto). You can get the maki sources for Bento and Winamp Modern by installing the Winamp Skin Development Pack.

                    Originally Posted by parisienne17 View Post
                    Skin refresh => guru meditation null object called in scriptA
                    You get that error message if your script cannot find an object either because it does not exist or because it is not visible from where you call the script.

                    A script can find an object if the object is in the same group AND before the script. In the example below, the script can find the first two objects but not the third object:
                    PHP Code:
                    <first object>
                    <
                    second object>
                    <
                    the script>
                    <
                    third object

                    Here is another example from the player.xml from my Study Switching Layouts skin:
                    PHP Code:
                    <container id="main" name="Main Window" default_x="0" default_y="0" default_visible="1">
                    <include 
                    file="player-normal.xml"/>
                    <include 
                    file="player-normal-viz.xml"/>
                    <include 
                    file="player-compact.xml"/>
                    <include 
                    file="player-compact-viz.xml"/>
                    <include 
                    file="player-stick.xml"/>
                    <!-- 
                    switchleftclick.maki should come here: -->
                    <
                    script id="switchleftclick" file="scripts/switchleftclick.maki"/>
                    </
                    container>​ 

                    If the switchleftclick script was called from player-normal.xml then it would not find the switch buttons in the other layouts.
                    Ariszló @ WinCustomize & DeviantArt

                    Comment


                    • J'm often bothering you with meaningless issues but here... I don't see the faulty approach...

                      Before getting to the last parts of the skin, compact, stick & colors, I'm fixing cosmetics and noticed that a common part to The 3 first modes is missing. As you can see in the picture, song controls are displated in 2 modes, normal/coverArt but missing in visualisation mode when that part is replicated in the 3 of them. Copy& paste.


                      Comment


                      • My guess is that you might be using alpha for those buttons or their backgrounds. Alpha does not work with visualization.
                        Ariszló @ WinCustomize & DeviantArt

                        Comment


                        • Damned... I was forgetting this transparency thing... Indeed the normal state is 1/3rd translucent. And also main wondow has some subtle shadow...

                          L was going thru the whole thread about rounded clipping window for the visualisation (even if I remember the AVS getting in front of everything...).

                          Comment


                          • I've done a new buttons set without any alpha stuff, remove the background shadow but still, buttons won't appear in visualisation mode.
                            Last objects with alpha information are some components INSIDE the window, on the plain main background. Have they anything to do with it ?

                            Comment


                            • [What I offered as a likely solution here did not work.]
                              Last edited by ariszlo; 19 May 2023, 20:21.
                              Ariszló @ WinCustomize & DeviantArt

                              Comment


                              • Obviously not as disabling everything but background/seekers/ and visholder doesn't do a better job.
                                Visualisation is called by

                                PHP Code:
                                        <windowholder id="visholder" hold="guid:AVS" x="54" y="69" w="390" h="195" autoavailable="1" autoopen="1" autoclose="1" visible="1" move="1"/>
                                ​ 

                                Comment

                                Working...
                                X
                                😀
                                🥰
                                🤢
                                😎
                                😡
                                👍
                                👎