Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: foo_winamp_spam 0.9 beta (Read 371873 times) previous topic - next topic
0 Members and 2 Guests are viewing this topic.

foo_winamp_spam 0.9 beta

Reply #75
hey guys..

is it possible to use this thing to emulate a winamp window and use bemused with it?.

i have the bemused server thing, but it dies (no winamp directory to select).

what do i do? to set it up

foo_winamp_spam 0.9 beta

Reply #76
I also have an MX5000 keyboard and was hoping this would make the LCD work with foobar, but that doesn't seem to be the case.  Logitech hasn't been very forthcoming with info on how to get other programs to use this LCD either.

foo_winamp_spam 0.9 beta

Reply #77
jhoff80
Here may be a solution for you. It works for me.

R1CH
Could you please think of the way to "fool" apps and make them think that foobar's executable is "winamp.exe". Cause at the moment the only way to make Logitech diNovo LCDs work with fb2k is to rename the executable to winamp.exe (

foo_winamp_spam 0.9 beta

Reply #78
Just wanted to include myself in the group experiencing high CPU usage with this plugin.  My usage was as high as 50% even when the install of fb2k 0.9.3.1 was fresh, unaltered and just sitting open not playing.  The usage would only drop back down when this plugin was removed.

foo_winamp_spam 0.9 beta

Reply #79
jhoff80
Here may be a solution for you. It works for me.

R1CH
Could you please think of the way to "fool" apps and make them think that foobar's executable is "winamp.exe". Cause at the moment the only way to make Logitech diNovo LCDs work with fb2k is to rename the executable to winamp.exe (

so rename it winamp.exe, it wont make foobar act any different

foo_winamp_spam 0.9 beta

Reply #80
Might be a stupid question:
But how do I get this component to work...?
I inputed it into the v0.9.3.1 component folder and in the preferences a page for configuration shows up...
There is only the possibility to change the title bar format string and that's it...

No other windows or options possible...
How can I connect it to a Winamp-Plugin..?

e.g.: The in_midi.dll ? I found a thread here where this was done through the foo_winamp_spam.dll (although I don't know how)...?

foo_winamp_spam 0.9 beta

Reply #81
Might be a stupid question:
But how do I get this component to work...?
I inputed it into the v0.9.3.1 component folder and in the preferences a page for configuration shows up...
There is only the possibility to change the title bar format string and that's it...

No other windows or options possible...
How can I connect it to a Winamp-Plugin..?

e.g.: The in_midi.dll ? I found a thread here where this was done through the foo_winamp_spam.dll (although I don't know how)...?


this component translate winamp API calls to foobars... it does not provide any "use winamp plugin in foobar" service... it never said it would

foo_winamp_spam 0.9 beta

Reply #82
Well I would say that plugins use the Winamp API? At least that is the only think I could say would use Winamp API... (OK, I never used Winamp never like it)
But OK

foo_winamp_spam 0.9 beta

Reply #83
I'm getting the :
Quote
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 120.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 120.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 120.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 120.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 120.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 120.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 120.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 120.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 120.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 120.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 120.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 120.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 120.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 120.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 120.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 120.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 120.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 120.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 120.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 120.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 120.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 120.


:/

foo_winamp_spam 0.9 beta

Reply #84
I'm getting the :
Quote

WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 120.


:/


from winamp sdk:

Code: [Select]
#define IPC_WRITEPLAYLIST 120
/* (requires Winamp 1.666+)
** SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_WRITEPLAYLIST);
**
** IPC_WRITEPLAYLIST writes the current playlist to <winampdir>\\Winamp.m3u,
** and returns the current playlist position.
** Kinda obsoleted by some of the 2.x new stuff, but still good for when
** using a front-end (instead of a plug-in)
*/


acording to this, the utility you are using sending this msg... its obviously not possible to convert this function in foobar.

maybe author can implement some sort of null point for this ipc calls so this console spaming stops... we will see if there ever be some new version.

foo_winamp_spam 0.9 beta

Reply #85
Maybe it would also make sense to implement this - since foobar can write m3u files I don't see why it shouldn't be possible. But I have never seen anything using this, so implementing it may be questionable.

After All it shouldn't be very difficult to fix most of the problems reported (and very easy to switch off the console message). But since the author didn't provide any sourcecode there's not much we can do but to wait.

foo_winamp_spam 0.9 beta

Reply #86
Maybe it would also make sense to implement this - since foobar can write m3u files I don't see why it shouldn't be possible. But I have never seen anything using this, so implementing it may be questionable.

After All it shouldn't be very difficult to fix most of the problems reported (and very easy to switch off the console message). But since the author didn't provide any sourcecode there's not much we can do but to wait.


first) the winampdir property could be a pain the a** because its most of time restored from registry (it could be but dont have to be possible to retrieve this from some ipc call... i dont know this sry  )
second) problem could be that foobar use absolutely different way of maintaining playlists than winamp so there alway will be some compromise.

the main reson of creating this component was to give ppl some translator from winamp api to foobars not to turn foobar virtualy in winamp. of course there are issues but basics works really great. i can retrieve curently playing songs from almost any program primarly written for winamp. i could also use some api calls for minimizing, opening, closing and so on...

foo_winamp_spam 0.9 beta

Reply #87
The path should be rather simple: When someone calls this, we store the playlist in the winamp path (per registry) and the foobar path (in case a program checks per executable). If winamp is not installed we can give the user the option to write a fake winamp path to registry.

The use of this call is pretty obvious: This way programs can display the whole playlist+current position. I can't see any problems for an implementation - write the currenty playing playlist, give the current position. There should be no problem at all.

Quote
the main reson of creating this component was to give ppl some translator from winamp api to foobars not to turn foobar virtualy in winamp. of course there are issues but basics works really great. i can retrieve curently playing songs from almost any program primarly written for winamp. i could also use some api calls for minimizing, opening, closing and so on...

People are posting about problems with programms trying to display the playlist. Implementing this would no way turn anything into winamp - it would just complete the simulation of the winamp IPC interface.

foo_winamp_spam 0.9 beta

Reply #88
The path should be rather simple: When someone calls this, we store the playlist in the winamp path (per registry) and the foobar path (in case a program checks per executable). If winamp is not installed we can give the user the option to write a fake winamp path to registry.

The use of this call is pretty obvious: This way programs can display the whole playlist+current position. I can't see any problems for an implementation - write the currenty playing playlist, give the current position. There should be no problem at all.


i see your point... well of course its also the way... how should component check to erase the path if its uninstalled from foobar??? or you prefer to have your registry prety corupted?  (no sory im just teasing you of course this is the way to achive this)...but there is a catch. it all depends on possibility to force foobar to save playlist in non-default format (default is fpl i presume) in non-default folder and silently and to do it repetedly (maybe even really fast but it depends on software which do this ipc 120 call)... if it is possible it could be done but dont forget that we are talking still only about one api call there is much much more... but this one at least looks like it is useable by someone. we should wait for authors opinion if he is still interested in this component (last post by r1ch in this topic May 16 2006)...

foo_winamp_spam 0.9 beta

Reply #89
Quote
we should wait for authors opinion if he is still interested in this component (last post by r1ch in this topic May 16 2006)...

We'll have to do after all... he has the sourcecode.

A lot of "winamp-compatible" stuff writes the winamp path and does no care for it - winamp itself left my registration info in the registry after beeing uninstalled.

Foobar can write playlists in m3u format - just do file->save playlist. I didn't check, but I'm quite sure there is an api-call for that. If winamp can do this repeatedly, foobar can do it, too...

Quote
it is possible it could be done but dont forget that we are talking still only about one api call there is much much more

Actually not
The component already supports most api calls. I checked the posts in this topic - the unsported api calls are mostly not valid - the others are very easy to implement.

foo_winamp_spam 0.9 beta

Reply #90
URL broken! :-( Does anyone have a copy?

foo_winamp_spam 0.9 beta

Reply #91
Is possile of implementing this (setting position of current playing song)?

Code: [Select]
#define IPC_JUMPTOTIME 106
/* (requires Winamp 1.60+)
** SendMessage(hwnd_winamp,WM_WA_IPC,ms,IPC_JUMPTOTIME);
** IPC_JUMPTOTIME sets the position in milliseconds of the
** current song (approximately).
** Returns -1 if not playing, 1 on eof, or 0 if successful
*/

foo_winamp_spam 0.9 beta

Reply #92
and will you implement right version of IPC_GETOUTPUTTIME when mode is 0? it returns time in seconds with three ending zeros (e.g. the time in foobar is 00:09.5 and foo_winamp_spam will return 9000 not 9500 or something like that). Or can I get it from other IPC message?

foo_winamp_spam 0.9 beta

Reply #93
Regrettably I do not have time to continue working on this plugin, so I am releasing the source for anyone interested in taking over development.

http://r-1.ch/foo_r1dll_serve-src.zip (you can see by the name what this plugin was intended for )

The code isn't very pretty, it's been through 3 API changes I believe, but it's quite simple underneath it all. I will gladly host any updated versions on my main site at http://www.r1ch.net/stuff/foobar/ if needed. The project file might contain several hard coded paths, so please check it before compiling.

foo_winamp_spam 0.9 beta

Reply #94
R1CH,

Works great on my Win2K system. I'm using foobar2000 v0.9.4.2, foo_winamp_spam v0.9 beta, and foo_xm 1.03. Artist & Title information from XM outputs just fine.

Good work. Thanks.

foo_winamp_spam 0.9 beta

Reply #95
Thanks for the source

As we now have access to the source I can implement missing features, if they are still requested.
So if you get Unsupported WM_USER messages, post again and I'll see what I can do.

foo_winamp_spam 0.9 beta

Reply #96
Jumping in time

Code: [Select]
#define IPC_JUMPTOTIME 106
/* (requires Winamp 1.60+)
** SendMessage(hwnd_winamp,WM_WA_IPC,ms,IPC_JUMPTOTIME);
** IPC_JUMPTOTIME sets the position in milliseconds of the
** current song (approximately).
** Returns -1 if not playing, 1 on eof, or 0 if successful
*/



re-implement IPC_GETOUTPUTTIME for mode 0, to return right value (not only seconds with three ending zeros, e.g. SECONDS * 1000)

Maybe I'll help with something... in which compiler I'll have to compile it? Visual C++ 6 or just Dev-Cpp (MinGW)?

edit: I can now see in source, that in handling IPC_GETOUTPUTTIME is the time from foobar in seconds. Why? There's no way to get time in ms, even in seconds like 49.5 or 139.2?

foo_winamp_spam 0.9 beta

Reply #97
Version 0.91 is here

http://chron.visiondesigns.de/foobar2000/f..._spam_v0.91.zip

Changes:
  • Implemented IPC_GETLISTLENGTH (lParam 124) - gets the length of the playing list/the length of the active list if none is playing
  • Implemented IPC_JUMPTOTIME (lParam 106)
  • Fixed IPC_GETOUTPUTTIME (lParam 105) to return true ms for wParam/mode 0

Quote
I can now see in source, that in handling IPC_GETOUTPUTTIME is the time from foobar in seconds. Why? There's no way to get time in ms, even in seconds like 49.5 or 139.2?

Have a look at the return type of playback_get_position() - it's double
Should work now, but I don't know of any software using this call.

foo_winamp_spam 0.9 beta

Reply #98
i'm getting this when using EvilLyrics:

Code: [Select]
[13:40:25] WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 1241704.
[13:40:25] WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 1237188.

foo_winamp_spam 0.9 beta

Reply #99
These lParams are invalid.
I made the component ignore them, so they won't spam you console anymore.