|
|
#1 |
|
Nullsoft Newbie
(Moderator) Join Date: Mar 2001
Location: Sheffield, England
Posts: 5,568
|
Winamp 5.04 SDK
The official Winamp 5.04 SDK
Download Zip: Mirror 1 Mirror 2 Mirror 3 (down) Download Installer: Mirror 1 Mirror 2 Mirror 3 Mirror 4 (down) Revision: #3 28/08/2004 Changes: * Updated language sdk * Updated wa_msgids.h Changes: * Bug fix in ml_lib.cpp * Added some more wa_ipc.h documentation Updated files only here Note: this is a customised version of the Official 5.04 SDK but contains some extras useful for making more advanced plugins as well as better documentation of the APIs (this documentation is a work in progress so there will be updates made as the process goes on) Note #2: The sdk contains the latest api messages for making new plugins for Winamp 5.x (including 5.05). This will still work with the older 2.x series of Winamp since the 5.x sdk is a continuation of the 2.x sdk. When run on a 2.x install you just won't be able to use the new api messages. Package Contents: \lang_b \gen_ml \winamp \maki \dsp_test \out_raw \in_raw \gen_tray \vis \readme.txt \jnetlib (installer only) \ml_www (installer only) \lang_b\lang_b.dsw \lang_b\main.c \lang_b\main.rc \lang_b\resource.h \lang_b\resource.hm \lang_b\TIPS.TXT \lang_b\main.aps \lang_b\lang_b.dsp \lang_b\How to Build a Language Pack.html (installer only) \gen_ml\childwnd.h \gen_ml\itemlist.cpp \gen_ml\itemlist.h \gen_ml\listview.cpp \gen_ml\listview.h \gen_ml\ml.h \gen_ml\ml_ex \gen_ml\ml_lib.cpp \gen_ml\gaystring.cpp \gen_ml\gaystring.h \gen_ml\util \gen_ml\ml_ex\ex.rc \gen_ml\ml_ex\ml_ex.dsw \gen_ml\ml_ex\resource.h \gen_ml\ml_ex\view_ex.cpp \gen_ml\ml_ex\ml_ex.dsp \gen_ml\util\nde \gen_ml\util\nde\nde-0.1.1.tar.gz \winamp\in2.h \winamp\gen.h \winamp\dsp.h \winamp\out.h \winamp\wa_dlg.h \winamp\ipc_pe.h \winamp\wa_hotkeys.h \winamp\wa_msgids.h (installer only) \winamp\wa_ipc.h \winamp\wa_api.txt (installer only) \winamp\Command Line Options.html (installer only) \maki\mc.exe \maki\std.mi \dsp_test\RESOURCE.H \dsp_test\SCRIPT1.RC \dsp_test\DSPECHO.NCB \dsp_test\SCRIPT1.APS \dsp_test\DSPECHO.C \dsp_test\DSP.H \dsp_test\DSPECHO.MDP \dsp_test\DSPECHO.MAK \out_raw\out_raw.c \out_raw\MAIN.H \out_raw\OUT.H \out_raw\out_minisdk.dsw \out_raw\CONFIG.C \out_raw\readme.txt \out_raw\out_minisdk.dsp \in_raw\IN2.H \in_raw\OUT.H \in_raw\IN_TONE.MDP \in_raw\IN_TONE.MAK \in_raw\IN_TONE.C \in_raw\IN_RAW.C \in_raw\README.TXT \gen_tray\GEN.H \gen_tray\GEN_TRAY.DSP \gen_tray\GEN_TRAY.DSW \gen_tray\ICON1.ICO \gen_tray\ICON2.ICO \gen_tray\ICON3.ICO \gen_tray\ICON4.ICO \gen_tray\ICON5.ICO \gen_tray\RESOURCE.H \gen_tray\SCRIPT1.RC \gen_tray\SYSTRAY.C \gen_tray\TRAYCTL.C \gen_tray\WINAMPCMD.H \vis\vis_avs \vis\vis_test \vis\VIS.H \vis\wa5vis.txt \vis\vis_avs\apesdk \vis\vis_avs\ns-eel \vis\vis_avs\apesdk\ape.rc \vis\vis_avs\apesdk\avstut00.avs \vis\vis_avs\apesdk\avstut00.cpp \vis\vis_avs\apesdk\avstut00.dsw \vis\vis_avs\apesdk\avs_ape.h \vis\vis_avs\apesdk\resource.h \vis\vis_avs\apesdk\avstut00.dsp \vis\vis_avs\ns-eel\megabuf.c \vis\vis_avs\ns-eel\megabuf.h \vis\vis_avs\ns-eel\ns-eel-addfuncs.h \vis\vis_avs\ns-eel\ns-eel-int.h \vis\vis_avs\ns-eel\ns-eel.h \vis\vis_avs\ns-eel\nseel-caltab.c \vis\vis_avs\ns-eel\nseel-cfunc.c \vis\vis_avs\ns-eel\nseel-compiler.c \vis\vis_avs\ns-eel\nseel-eval.c \vis\vis_avs\ns-eel\nseel-lextab.c \vis\vis_avs\ns-eel\nseel-yylex.c \vis\vis_test\SVIS.MAK \vis\vis_test\SVIS.MDP \vis\vis_test\SVIS.DSP \vis\vis_test\SVIS.DSW \vis\vis_test\SVIS.C \jnetlib\test.cpp \jnetlib\asyncdns.h \jnetlib\connection.cpp \jnetlib\connection.h \jnetlib\httpget.cpp \jnetlib\httpget.h \jnetlib\httpserv.cpp \jnetlib\httpserv.h \jnetlib\jnetlib.h \jnetlib\listen.cpp \jnetlib\listen.h \jnetlib\Makefile \jnetlib\netinc.h \jnetlib\asyncdns.cpp \jnetlib\test.dsp \jnetlib\test.dsw \jnetlib\testbnc.cpp \jnetlib\util.cpp \jnetlib\util.h \jnetlib\webserver.h \jnetlib\webserver.cpp \ml_www\readme.txt \ml_www\src \ml_www\templates \ml_www\images \ml_www\src\res.rc \ml_www\src\resource.h \ml_www\src\wwwutil.cpp \ml_www\src\wwwutil.h \ml_www\src\pagegen.h \ml_www\src\pagegen.cpp \ml_www\src\ml_www.dsw \ml_www\src\ml_www.dsp \ml_www\src\ml_www.cpp \ml_www\templates\070.css \ml_www\images\starthere.png [edited by DrO] DO NOT PM ME WITH TECH SUPPORT QUESTIONS |
|
|
|
|
#2 |
|
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 |
|
|
|
|
#3 |
|
-
Join Date: Sep 2003
Location: UK
Posts: 22,278
|
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 |
|
|
|
|
#4 |
|
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: 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.code: DO NOT PM ME WITH TECH SUPPORT QUESTIONS |
|
|
|
|
#5 |
|
Passionately Apathetic
Administrator Join Date: May 2000
Location: Hell
Posts: 5,437
|
prehaps a repackage is in order.
|
|
|
|
|
#6 | |
|
-
Join Date: Sep 2003
Location: UK
Posts: 22,278
|
Quote:
-daz |
|
|
|
|
|
#7 |
|
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. |
|
|
|
|
#8 |
|
Passionately Apathetic
Administrator Join Date: May 2000
Location: Hell
Posts: 5,437
|
ah-hah, a good call indeed.
|
|
|
|
|
#9 | |
|
Banned
Join Date: Jan 2001
Location: Norway
Posts: 927
|
Quote:
Is it a trick question!?! Let's be serious here people!! |
|
|
|
|
|
#10 |
|
Passionately Apathetic
Administrator Join Date: May 2000
Location: Hell
Posts: 5,437
|
as in, Yes, it should be added.
who's not being serious here? |
|
|
|
|
#11 |
|
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?
|
|
|
|
|
#12 | |
|
-
Join Date: Sep 2003
Location: UK
Posts: 22,278
|
Quote:
updating thread appropriately now -daz |
|
|
|
|
|
#13 |
|
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.
|
|
|
|
|
#14 |
|
Banned
Join Date: Oct 2004
Posts: 6
|
IRON JUSTICE
*removed*
|
|
|
|
|
#15 |
|
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. |
|
|
|
|
#16 |
|
-
Join Date: Sep 2003
Location: UK
Posts: 22,278
|
there's no changes for 5.06
-daz |
|
|
|
|
#17 |
|
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? |
|
|
|
|
#18 |
|
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. |
|
|
|
|
#19 |
|
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.
|
|
|
|
|
#20 |
|
-
Join Date: Sep 2003
Location: UK
Posts: 22,278
|
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 |
|
|
|
|
#21 |
|
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
|
|
|
|
|
#22 |
|
Banned
Join Date: Jan 2001
Location: Norway
Posts: 927
|
Winamp 5.04+ SDK for Delphi
|
|
|
|
|
#23 |
|
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. |
|
|
|
|
#24 |
|
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: I guess this also shows a working version of a ML_IPC_DB_RUNQUERY_INDEX call (which is fairly cryptically documented at the moment). |
|
|
|
|
#25 |
|
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. |
|
|
|
|
#26 |
|
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)
|
|
|
|
|
#27 |
|
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:
|
|
|
|
|
#28 |
|
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 |
|
|
|
|
#29 |
|
-
Join Date: Sep 2003
Location: UK
Posts: 22,278
|
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 |
|
|
|
|
#30 |
|
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 |
|
|
|
|
#31 |
|
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. |
|
|
|
|
#32 |
|
-
Join Date: Sep 2003
Location: UK
Posts: 22,278
|
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 |
|
|
|
|
#33 | |
|
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:
disk: 1480728 dsound: 1462912 waveout: 1504144 While my plugin returns 1499872 whatever value i put as id. Please reply i'm in a hurry... 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 |
|
|
|
|
|
#34 |
|
-
Join Date: Sep 2003
Location: UK
Posts: 22,278
|
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 |
|
|
|
|
#35 |
|
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 |
|
|
|
|
#36 |
|
-
Join Date: Sep 2003
Location: UK
Posts: 22,278
|
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 |
|
|
|
|
#37 |
|
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? |
|
|
|
|
#38 |
|
Techorator
Winamp Team Join Date: Jun 2000
Posts: 35,130
|
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 |
|
|
|
|
#39 |
|
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. |
|
|
|
|
#40 |
|
Passionately Apathetic
Administrator Join Date: May 2000
Location: Hell
Posts: 5,437
|
yes, most definately. there have been a number of additions i believe.
|
|
|
![]() |
|
|||||||
| Thread Tools | Search this Thread |
| Display Modes | |
|
|