Announcement

Collapse
No announcement yet.

Winamp 5.55 SDK

Collapse
This is a sticky topic.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Originally posted by Benski
    They've always been functions that return int. They were just (incorrectly) put as a returning void in the SDK header files. It removes any possibility of something going wrong re: the return value.
    There are many functions still returning void in the SDK.
    Are there more amoung them that should return int instead?

    --------

    I added basic support for Unicode input plugins to
    my Inbridge plugin so I thought I should announce it here.

    Changes are:
    • Added: Basic support for Unicode plugins
    • Added: More error output
    • Fixed: Core::SAAdd and Core::VSAAdd return value support
    • Fixed: hwndParent value was not shown for Input::InfoBox
    • Fixed: Cosmetic bug in EQSet

    >> in_bridge_23.zip
     
    GPL Freeverb Winamp Plugin

    Comment


    • #17
      An updated SDK change has been uploaded. 22-8-2006 5:30 PM GMT

      Input plugin developers who have implemented the new Unicode API - take note.

      GetFileInfo was still taking a char * for the title. It now takes in_char * (e.g. wchar_t * for unicode plugins). The change is for Winamp 5.25 Beta Build 839 and up.

      Comment


      • #18
        I'm struggling to see the advantage of going Fully Unicode in my input plugin - it seems I'll lose backwards compatibility, for a start, and all I'll gain is the headache of supporting Unicode filenames. If I just implement winampGetExtendedFileInfoW, will that do? Will Winamp keep sending me un-Unicode asdf~1 type filenames? Since winampGetExtendedFileInfo(W) are still undocumented, is that OK or likely to be broken?

        Finally, why is winampGetExtendedFileInfo still used in preference to winampGetExtendedFileInfoW? If Winamp used the W one first, if available, I could provide both for better backwards compatibility for those tinfoil-helmet types using WA2.91.

        Comment


        • #19
          I'm struggling to see the advantage of going Fully Unicode in my input plugin - it seems I'll lose backwards compatibility, for a start, and all I'll gain is the headache of supporting Unicode filenames. If I just implement winampGetExtendedFileInfoW, will that do? Will Winamp keep sending me un-Unicode asdf~1 type filenames? Since winampGetExtendedFileInfo(W) are still undocumented, is that OK or likely to be broken?
          Yes, you can have unicode metadata (via winampGetExtendedFileInfoW) but still remain non-Unicode otherwise. Our in_mp4 is set up like this.

          Finally, why is winampGetExtendedFileInfo still used in preference to winampGetExtendedFileInfoW? If Winamp used the W one first, if available, I could provide both for better backwards compatibility for those tinfoil-helmet types using WA2.91.
          It's only calling winampGetExtendedFileInfo first when Winamp only needs ANSI metadata. (e.g. a plugin has called IPC_GET_EXTENDED_FILE_INFO)

          Comment


          • #20
            Example

            Here's an example of how to use the Wasabi service manager and the new global configuration API.

            code:

            #include "../winamp/wa_ipc.h"
            #include <api/service/waServiceFactory.h> // add the "Wasabi" folder to your include path!
            #include "../Agave/api/config/api_config.h" // Agave is the code name for the Winamp 5 Wasabi services

            // {B6CB4A7C-A8D0-4c55-8E60-9F7A7A23DA0F}
            static const GUID playbackConfigGroupGUID =
            { 0xb6cb4a7c, 0xa8d0, 0x4c55, { 0x8e, 0x60, 0x9f, 0x7a, 0x7a, 0x23, 0xda, 0xf } };

            static api_service *serviceApi=0;
            static api_config *configApi=0;

            api_config *GetConfigAPI()
            {
            if (!serviceApi)
            {
            serviceApi = (api_service *)SendMessage(mod.hMainWindow, WM_WA_IPC, 0, IPC_GET_API_SERVICE);
            }

            if (serviceApi && !configApi)
            {
            waServiceFactory *sf= (waServiceFactory *)serviceApi->service_getServiceByGuid(AgaveConfigGUID);
            configApi = (api_config *)sf->getInterface();
            }

            return configApi;
            }

            int GetSampleSize()
            {
            api_config *config = GetConfigAPI();
            int bits=16;
            if (config)
            bits = config->GetUnsigned(playbackConfigGroupGUID, L"bits", 16);

            return bits;
            }

            int GetNumChannels()
            {
            api_config *config = GetConfigAPI();
            bool mono=false;
            if (config)
            mono = config->GetBool(playbackConfigGroupGUID, L"mono", false);

            if (mono)
            return 1;
            else
            return 2;
            }

            bool AllowSurround()
            {
            api_config *config = GetConfigAPI();
            bool surround=true;
            if (config)
            surround= config->GetBool(playbackConfigGroupGUID, L"surround", true);

            return surround;
            }

            Comment


            • #21
              Originally posted by Benski
              An updated SDK change has been uploaded. 22-8-2006 5:30 PM GMT

              Input plugin developers who have implemented the new Unicode API - take note.

              GetFileInfo was still taking a char * for the title. It now takes in_char * (e.g. wchar_t * for unicode plugins). The change is for Winamp 5.25 Beta Build 839 and up.
              Update for Inbridge:
              • in_char update for GetFileInfo's title
              • Encoding suffix added
              • Output::IsPlaying logging now disabled by default

              >> in_bridge_24.zip
              &#160;
              GPL Freeverb Winamp Plugin

              Comment


              • #22
                How to make 5.25 language pack?

                I tried to make a 5.24 language pack in Vietnamese, and some strings in treeview, tooltip, link were broken. Someone said that it's because of wrong convertion from Unicode to MBSC. So I wait for 5.25 SDK, hope it supports Unicode fully. But I can't do so, there's no file in /resources folder that .h file defined. Please tell me why ? Mr DrO has disabled them. I don't know if I could use it in future when you update.
                Sorry for all, I'm just a newbie.

                Comment


                • #23
                  Is there an updated SDK for 5.3?
                  I could not find any.
                  GPL Freeverb Winamp Plugin

                  Comment


                  • #24
                    there is but it's not been cleaned up/uploaded yet i believe. it'll come soon though

                    -daz
                    WACUP Project <‖> "Winamp Ramblings" - Indie Winamp Dev Blog

                    Comment


                    • #25
                      Where have all the nice methods of GayString gone, in gen_ml\gaystring.cpp, like GayString::Replace() etc.? They are quite handy!

                      And one more: I would love to have an API to enumerate all ML playlists. Possible already?
                      WinAmp Pro 5.5 with ml_iPod 3.10 + dev.patches (download it)
                      ml_iPod documentation Wiki - ml_iPod FAQ - search ml_iPod forum - iPhone/iTouch - Found a bug?
                      Donations to support the ml_iPod project can be done HERE

                      Comment


                      • #26
                        you'd have to get gaystring from the older sdk (not even sure if that was in the original zip sdk to begin with - think it was something that i added into the installer version of the sdk that i built)

                        with the playlists thing, i'm not sure. a fallback method with recent winamp releases would be to scan through %inidir%\plugins\ml\playlists.xml

                        -daz
                        WACUP Project <‖> "Winamp Ramblings" - Indie Winamp Dev Blog

                        Comment


                        • #27
                          Originally posted by abu
                          Where have all the nice methods of GayString gone, in gen_ml\gaystring.cpp, like GayString::Replace() etc.? They are quite handy!
                          We stopped using this class internally, so a lot of functions were removed to reduce code size. We can put an old version back in the SDK

                          And one more: I would love to have an API to enumerate all ML playlists. Possible already?
                          note sure if it's in the current SDK or not, but here's the API:

                          code:

                          #define ML_IPC_PLAYLIST_COUNT 0x182
                          #define ML_IPC_PLAYLIST_INFO 0x183 // pass in the struct below. returns "1" on success and "0" on failure

                          typedef struct
                          {
                          // you fill this in
                          size_t size; // size of this struct
                          size_t playlistNum; // number of the playlist you want to retrieve (0 index)
                          // ml_playlists fills these in
                          wchar_t playlistName[128];
                          wchar_t filename[MAX_PATH];
                          int numItems;
                          int length; // in seconds
                          } mlPlaylistInfo;

                          pass to gen_ml's HWND ...

                          Comment


                          • #28
                            Originally posted by Benski
                            We stopped using this class internally, so a lot of functions were removed to reduce code size. We can put an old version back in the SDK
                            Would be nice, so I don't have to maintain the old versions myself, just to keep stuff compilable.

                            note sure if it's in the current SDK or not, but here's the API:
                            #define ML_IPC_PLAYLIST_COUNT 0x182
                            #define ML_IPC_PLAYLIST_INFO 0x183
                            No, that's not in the SDK. Would be very helpful to add it.

                            Since which Winamp version is ML_IPC_PLAYLIST_INFO available?
                            WinAmp Pro 5.5 with ml_iPod 3.10 + dev.patches (download it)
                            ml_iPod documentation Wiki - ml_iPod FAQ - search ml_iPod forum - iPhone/iTouch - Found a bug?
                            Donations to support the ml_iPod project can be done HERE

                            Comment


                            • #29
                              in <wa_msgids.h> the constant ID_MAIN_PLAY_AUDIOCD1 has been renamed to ID_MAIN_PLAY_AUDIOCD, although the value is the same this breaks old source i have distributed. (should the user wish to recompile).

                              Comment


                              • #30
                                wa_msgids.h was never an official header file as stated here

                                -daz
                                WACUP Project <‖> "Winamp Ramblings" - Indie Winamp Dev Blog

                                Comment

                                Working...
                                X