Announcement

Collapse
No announcement yet.

Metadata tag names for IPC_GET_EXTENDED_FILE_INFO

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

  • Metadata tag names for IPC_GET_EXTENDED_FILE_INFO

    Hello. I'm playing around with the Winamp API and making a nowplaying dll for mIRC.

    It's going pretty well, I'd just like to know if there's a complete list of values used for the IPC_GET_EXTENDED_FILE_INFO metadata.

    Thanks in advance.

  • #2
    Support varies a bit per filetype, and obviously the information is only as good as the metadata of the file.

    But here are the most common peices of metadata
    • title
    • artist
    • albumartist
    • album
    • genre
    • year
    • disc
    • publisher
    • comment
    • track
    • composer
    • conductor

    Comment


    • #3
      Thanks for the fast reply.

      Since it's so convenient to use IPC_GET_EXTENDED_FILE_INFO to get things, I was hoping to get everything I can with it. In particular, in addition to what you've mentioned, are bitrate, encoding format, length. Are these supported? A complete list would be nice. =]

      Also, is Winamp able to report these info in UTF8?

      Comment


      • #4
        Yes, they are, all those are in the sdk
        Simple messages, like IPC_GETOUTPUTTIME, IPC_GETINFO , etc.

        * PC: Intel Core 2 DUO E6550 @ 2.33 GHz with 2 GB RAM: Archlinux-i686 with MATE.
        * Laptop: Intel Core 2 DUO T6600 @ 2.20 GHz with 4 GB RAM: Archlinux-x86-64 with MATE.

        Comment


        • #5
          Sorry, yes there are others. I was listing items that are part of the tagging system (e.g. ID3) but yes things like bitrate can be queried
          • bitrate
          • length
          • type (0 for audio 1 for video)
          • family (brief description of the file format)


          In the newest (beta) SDK, there is IPC_GET_EXTENDED_FILE_INFOW which will give you UTF-16. It is recommended to use this instead. Except for a small handful of legacy file formats, IPC_GET_EXTENDED_FILE_INFO actually calls IPC_GET_EXTENDED_FILE_INFOW and then converts the UTF-16 data to the local code page.

          code:

          typedef struct {
          const wchar_t *filename;
          const wchar_t *metadata;
          wchar_t *ret;
          size_t retlen;
          } extendedFileInfoStructW;

          #define IPC_GET_EXTENDED_FILE_INFOW 3026
          /* (requires Winamp 5.13+)
          ** Pass a pointer to the above struct in wParam
          */

          an example:
          code:

          wchar_t value[512];
          extendedFileInfoStructW efs;
          efs.filename=L"c:\\program files\\winamp\\demo.mp3";
          efs.metadata=L"artist";
          efs.ret=value;
          efs.retlen=512;
          SendMessage(plugin.hwndWinampParent,WM_WA_IPC,(WPARAM)&efs,IPC_GET_EXTENDED_FILE_INFOW);

          Comment


          • #6
            Originally posted by Benski
            ...
            an example:
            code:

            wchar_t value[512];
            extendedFileInfoStructW efs;
            efs.filename=L"c:\\program files\\winamp\\demo.mp3";
            efs.metadata=L"artist";
            efs.ret=value;
            efs.retlen=512;
            SendMessage(plugin.hwndWinampParent,WM_WA_IPC,(WPARAM)&efs,IPC_GET_EXTENDED_FILE_INFOW);

            Thanks for posting the sample code I was looking for a long while to find any documentation to that feature
            Last edited by PeppeLePew; 24 April 2009, 16:05.

            Comment

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