Winamp Forums Winamp 5.04 SDK (Installer Rev #3)

 29th July 2004, 04:41 #2 shaneh Major Dude   Join Date: Jan 2004 Location: Brisbane, Australia Posts: 1,193 A couple more snippets that were omitted from the SDK... I think the LibraryGetWnd is particularly useful. http://forums.winamp.com/showthread....hreadid=173940
 30th July 2004, 21:24 #3 DrO -     Join Date: Sep 2003 Location: UK Posts: 22,204 Added the installer verison of the sdk (which tidies up things a bit for the file organisation). Some documentation updates have gone in, more coming soon (latest installer revision is shown in the first post and individual files will be available as well when updated so you don't have to download it all again if not wanted ) -daz
 20th August 2004, 08:15 #4 will Nullsoft Newbie (Moderator)     Join Date: Mar 2001 Location: Sheffield, England Posts: 5,568 Currently there is a bug in the SDK! As found by kichik, our heroic NSIS dev: ml_lib.cpp, line 119 should be:code:if (strlen(value)>strlen(item->extended_info[x]+strlen(name)+1))If you've been using any setExtendedInfo, then I suggest you make this change to your local copy of the SDK as soon as possible. DO NOT PM ME WITH TECH SUPPORT QUESTIONS
 20th August 2004, 09:04 #5 CraigF Passionately ApatheticAdministrator     Join Date: May 2000 Location: Hell Posts: 5,437 prehaps a repackage is in order.
20th August 2004, 16:34   #6
DrO
-

Join Date: Sep 2003
Location: UK
Posts: 22,204
Quote:
 Originally posted by CraigF prehaps a repackage is in order.
yup, think so. installer version is being updated tonight with the fix

-daz

 24th August 2004, 07:27 #7 saivert Banned     Join Date: Jan 2001 Location: Norway Posts: 927 All this is just fine! But what about docs on the new functions input-plugins must support, like: winampGetExtendedFileInfo, winampGetExtendedRead_close, winampGetExtendedRead_getData, winampGetExtendedRead_open, winampSetExtendedFileInfo, winampWriteExtendedFileInfo There is currently no information on this. winampGetExtendedRead_close, winampGetExtendedRead_getData & winampGetExtendedRead_open seems to be neccessary to support Format Conversion API. in_cdda.dll supports this for Winamp to be able to rip CD's. I sincerely hope someone posts the API on this.
 24th August 2004, 09:51 #8 CraigF Passionately ApatheticAdministrator     Join Date: May 2000 Location: Hell Posts: 5,437 ah-hah, a good call indeed.
24th August 2004, 09:57   #9
saivert
Banned

Join Date: Jan 2001
Location: Norway
Posts: 927
Quote:
 Originally posted by CraigF ah-hah, a good call indeed.
What the h*** do you mean with that???
Is it a trick question!?!

Let's be serious here people!!

 24th August 2004, 12:33 #10 CraigF Passionately ApatheticAdministrator     Join Date: May 2000 Location: Hell Posts: 5,437 as in, Yes, it should be added. who's not being serious here?
 28th August 2004, 10:36 #11 Danez Junior Member     Join Date: Oct 2003 Posts: 11 Does the SDK stayes the same for version 5.05?? or is a new one going to be released?
28th August 2004, 10:58   #12
DrO
-

Join Date: Sep 2003
Location: UK
Posts: 22,204
Quote:
 Originally posted by Danez Does the SDK stayes the same for version 5.05?? or is a new one going to be released?
there are no new apis added since 5.05 is mainly a security update release.

-daz

 21st September 2004, 08:54 #13 saivert Banned     Join Date: Jan 2001 Location: Norway Posts: 927 I have a pretty complete SDK for Borland Delphi (Pascal) which I'm going to upload. It will be available in a separate thread, so people can discuss it there.
 22nd October 2004, 14:16 #14 IronFist Banned   Join Date: Oct 2004 Posts: 6 IRON JUSTICE *removed*
 24th November 2004, 02:14 #15 Logy Senior Member     Join Date: Jun 2004 Location: Terengganu, Malaysia, Asia, Earth Posts: 302 it is any new to sdk for winamp 5.06.... or it just few update... bugs fixed or something like that... The English suffix -logy denotes a field of study or academic discipline.
 24th November 2004, 07:45 #16 DrO -     Join Date: Sep 2003 Location: UK Posts: 22,204 there's no changes for 5.06 -daz
 28th November 2004, 19:35 #17 who Junior Member   Join Date: Nov 2004 Posts: 9 Commands for EQ on/off? I know I must be overlooking something. I have found commands for external control of just about every slider and button on the Winamp surface except for EQ on/off, Auto, and preamp volume. Have I missed something in the spec, or are these not implemented?
 29th November 2004, 09:36 #18 Lord Darius Senior Member     Join Date: Jul 2003 Posts: 248 Hey DrO, do you remember the gen_sel plugin you did with shaneh to demonstrate modification of context menu entries in the playlist and getting the currently selected files ? Well... it doesn't compile with the latest version of the SDK I don't have the code with me, but it seems a few IPC IDs changed since then.
 29th November 2004, 11:25 #19 shaneh Major Dude   Join Date: Jan 2004 Location: Brisbane, Australia Posts: 1,193 If you are using the method I demonstrated, I recommend using the code I posted in that thread rather than the code in the .zip DrO posted, for reasons explained in a post in that thread. All it takes is pretty much adding that code to any gen_ plugin and calling the function.
 29th November 2004, 11:39 #20 DrO -     Join Date: Sep 2003 Location: UK Posts: 22,204 hmm, that reminds me i need to put in the correct copy of the file for that example. i'll see if i can get the time to do it tonight between rebuilding the rest of my flat - got to love buying new furniture and then fitting it in Lord Darius: which version of the sdk are you working with since the one i do is slightly restructured for the header files compared to the one Nullsoft put out (and anyone noticed they still are offering the 5.02 sdk on nsdn ) -daz
 30th November 2004, 09:04 #21 Lord Darius Senior Member     Join Date: Jul 2003 Posts: 248 I'm working with the one available from this thread, the official one... i spose i should switch to the modified SDK ? Oh, btw, good luck with the flat DrO
 11th January 2005, 12:39 #22 saivert Banned     Join Date: Jan 2001 Location: Norway Posts: 927 Winamp 5.04+ SDK for Delphi The Winamp 5.04+ SDK for Delphi is available! winamp504_sdk_for_delphi.exe (576kB)
 17th February 2005, 11:04 #23 saivert Banned     Join Date: Jan 2001 Location: Norway Posts: 927 More work on Winamp SDK for Delphi I'm going to make some more work on the Winamp SDK for Delphi so that people who are used to working in Delphi and with VCL feels more comfortable. There is a huge gap between the C/C++ world and Delphi world when it comes to how to do certain things. The update will be released sometime the next month. Feel free to PM me about changes you want checked in before I'm releasing it.
 19th March 2005, 14:12 #24 chris_d_smith Senior Member   Join Date: Jan 2004 Posts: 161 Theres a some undocumented extended fields in the itemRecord struct in ml.h that Justin used in origninal version of mlwww (so i guess they're semi official). These fields can be retrieved by calling getRecordExtendedItem(). "TYPE": "0" for audio files, "1" for video files (this is mentioned in the ml gui). "DBIDX": This returns the media library database identifier for the given item. You can use this to directly access a given item in the database at a later date (presumably much faster than running a normal query). Eg: code: // Get database index char *p =getRecordExtendedItem(item,"DBIDX"); ... // Retrieve the item again mlQueryStruct qs={0,}; qs.query=(char *)strtoul(p,NULL,10); SendMessage(ml_hwnd,WM_ML_IPC,(WPARAM)&qs,ML_IPC_DB_RUNQUERY_INDEX);  I guess this also shows a working version of a ML_IPC_DB_RUNQUERY_INDEX call (which is fairly cryptically documented at the moment).
 19th March 2005, 14:18 #25 shaneh Major Dude   Join Date: Jan 2004 Location: Brisbane, Australia Posts: 1,193 I have made use of these fields in ActiveWinamp, you can see there use here: http://cvs.sourceforge.net/viewcvs.p...pp?view=markup http://cvs.sourceforge.net/viewcvs.p...pp?view=markup Look at get_Item and CreateFromMLItem for some example usage.
 19th March 2005, 14:24 #26 chris_d_smith Senior Member   Join Date: Jan 2004 Posts: 161 There's a bunch of demo's in mlwww too, this one shows the DBIDX stuff: http://cvs.sourceforge.net/viewcvs.p...pp?view=markup and this one shows the TYPE field being used: http://cvs.sourceforge.net/viewcvs.p...pp?view=markup (see the processRequest() function)
 19th March 2005, 21:58 #27 saivert Banned     Join Date: Jan 2001 Location: Norway Posts: 927 I'm going to release a new version of the Delphi version of Winamp SDK soon. This release will include an improved input plugin example with metadata get/set support (through the winampGetExtendedFileInfo, winampSetExtendedFileInfo and winampWriteExtendedFileInfo functions). Still need some docs on these functions though: winampGetExtendedRead_close winampGetExtendedRead_getData winampGetExtendedRead_open
 20th March 2005, 19:48 #28 TazDevil Senior Member     Join Date: Nov 2003 Location: Cyprus Posts: 359 About wa_hotkeys.h The SDK only shows a way to add a hotkey to winamp, but is there a way to retreive the hotkey assigned by the plugin (gen_hotkeys) to the adding plugin ??? so that other plugins can incorporate the combinations to menus etc. The combination could be returned as a scancode as saved in winamp.ini or as text PLease if there is a way add it to the SDK (or explain me how to do it ...) NEW Multiple Output Plugin v1.5 | Download | outputs data to one or more audio/file output devices Crystal Classic Skins v1.1 | Download | transparency effects for classic skins
 20th March 2005, 19:51 #29 DrO -     Join Date: Sep 2003 Location: UK Posts: 22,204 TazDevil: as you've tried to get it from the ini file, that's the only way i know off to do it. if there is a collision of hotkeys then the first one in the hotkey list will be the one that's activated i believe (and since the contents in the file are stored as the entries are shown then that should make it easy to work around) -daz
 20th March 2005, 19:59 #30 TazDevil Senior Member     Join Date: Nov 2003 Location: Cyprus Posts: 359 Dro - Thanks for the quick reply ... Actually i hoped that the plugin should offer this feature, but anyway, i will stick to the work around until further notice NEW Multiple Output Plugin v1.5 | Download | outputs data to one or more audio/file output devices Crystal Classic Skins v1.1 | Download | transparency effects for classic skins
 21st March 2005, 23:50 #31 saivert Banned     Join Date: Jan 2001 Location: Norway Posts: 927 The only plugin known to export the following functions is in_cdda.dll. #1 winampGetExtendedRead_close #2 winampGetExtendedRead_getData #3 winampGetExtendedRead_open And this is as far as I know to support the CD Ripping feature in Winamp 5. But why not extend this to other plugins as well. The functions above is simply another mechanism (again as far as I know) to provide the sound data to Winamp (instead of through the usual input plugin mechanism) and which is written to be used in fast extraction purpoes vs. playback only. I have experimented with the IPC_CONVERTFILE message and found that this is true: - Calling IPC_CONVERTFILE with "cd://d:,3" as the source filename starts ripping track 3 on a CD in drive D. - Calling IPC_CONVERTFILE with any other source filename does nothing at all and tells me that the input plugin does not support the call. So the conlusion is: If in_mp3.dll and any other input plugins started exporting the functions above, then we would have a system for converting between various formats.
 21st March 2005, 23:53 #32 DrO -     Join Date: Sep 2003 Location: UK Posts: 22,204 the transcoding api was only part implemented for cda and was never finished before Christophe left the team. and a bit more is needed than just adding in those exported functions from what i heard mentioned about it. -daz
25th March 2005, 18:07   #33
TazDevil
Senior Member

Join Date: Nov 2003
Location: Cyprus
Posts: 359
output plugin ids

How can i safely get each output plugins ids..
Here is a quote from the out.h in the sdk
Quote:
 // ids: // waveout: 32 // gapless: 64 // xfade: 63 // disk: 33 // dsound: 38 // NULL: 65 // mm2: 69
when i get each output plugins's id it turns out sont like

disk: 1480728
dsound: 1462912
waveout: 1504144

While my plugin returns 1499872 whatever value i put as id.

NEW Multiple Output Plugin v1.5 | Download | outputs data to one or more audio/file output devices
Crystal Classic Skins v1.1 | Download | transparency effects for classic skins

 25th March 2005, 18:10 #34 DrO -     Join Date: Sep 2003 Location: UK Posts: 22,204 i don't believe that they apply now and the values are generated at run time (since they change everytime for me) or auto generated based on another value, etc. -daz
 25th March 2005, 18:14 #35 TazDevil Senior Member     Join Date: Nov 2003 Location: Cyprus Posts: 359 Actually they are always the same (have been until i installed the latest version of winamp i think !!!) so is there i way to find out who it is generated ? NEW Multiple Output Plugin v1.5 | Download | outputs data to one or more audio/file output devices Crystal Classic Skins v1.1 | Download | transparency effects for classic skins
 25th March 2005, 18:17 #36 DrO -     Join Date: Sep 2003 Location: UK Posts: 22,204 there's a good chance it's part of the changes made due to the output stacker fiasco (if you're running 5.08e). if so then there's nothing you can really do about it. -daz
 26th March 2005, 00:42 #37 saivert Banned     Join Date: Jan 2001 Location: Norway Posts: 927 Back to the CD Ripping stuff again: About the Ripping engine? Isn't that part of Winamp's core (winamp.exe). I mean since the dialog resources for the Ripping status dialog is located in Winamp.exe, the Media Library must only be a frontend to this. So the CD Ripping feature in Winamp must consist of three components in order to work: - Winamp.exe core functionality (IPC_CONVERTFILE API and friends) + ripping status window. - in_cdda.dll CD-Audio ripping code - Media Library (gen_ml.dll) frontend/user interface. Am I right?? Why did Nullsoft decide to split it up this way? Beats me. It's okay that the CD-Audio ripping code is located in in_cdda.dll since this is the CD plugin afterall, but why have two different sets of API's to do the same thing? The first API set is the standard input plugin architecture (winampGetInputPlugin and structures) and the second is the winampGetExtendedRead_* function set. It's no speed difference between the two actually. When playing a cd using in_cdda.dll in DAE mode and using a proper output plugin like the out_lame.dll to "send the audio" to a MP3 file, this doesn't seem to go slower than using the built in ripping in Winamp 5.x (which uses the winampGetExtendedRead_* function set). What do you people (=Nullsoft) think?
 5th May 2005, 08:18 #38 DJ Egg TechoratorWinamp Team   Join Date: Jun 2000 Posts: 35,126 Milkdrop Source Code released (May 4, 2005) http://www.nullsoft.com/free/milkdrop/ http://www.nullsoft.com/free/milkdro....04_Source.zip AVS Source Code released (May 23, 2005) http://www.nullsoft.com/free/avs/ http://www.nullsoft.com/free/avs/avs_src.zip Both released under BSD template license Playlist -|- Twitter
 31st August 2005, 04:12 #39 Logy Senior Member     Join Date: Jun 2004 Location: Terengganu, Malaysia, Asia, Earth Posts: 302 just curiosity... can we expect a new sdk on winamp 5.1.... The English suffix -logy denotes a field of study or academic discipline.
 31st August 2005, 08:43 #40 CraigF Passionately ApatheticAdministrator     Join Date: May 2000 Location: Hell Posts: 5,437 yes, most definately. there have been a number of additions i believe.
 Winamp Forums Winamp 5.04 SDK (Installer Rev #3)