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 372402 times) previous topic - next topic
0 Members and 2 Guests are viewing this topic.

foo_winamp_spam 0.9 beta

Reply #125
First off thank you for developing this compenent, I primarily use it for my playback info on google talk. There are however a couple issues I'd like to bring up and hopefully have resolved.

1) Is there any way to reduce the frequency which this program rewrites the winamp playlist? Under the current version it appears the playlist gets rewritten nearly every second which can cause a race condition resulting in sharing errors when other programs are trying to read the playlist. Maybe have it only update when the track changes and/or playback state changes?

Quote Winamp API:
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)
*/

The playlist gets written every time "winamp" is asked to do so (which gtalk does once per second) - just like it should. Did you actually get any errors or do you just fear them? If you get errors, I wonder how gtalk works with winamp. If you close gtalk, the playlist won't get written after all (as long as no other app asks "winamp" to do so).

Quote
2) Real winamp writes meta information as a comment on a line between the filename lines. While I generally dislike using comments as code, many 3rd party programs for winamp process this information. Specifically I am trying to get X-Winamp for XChat working.. it is able to report the currently playing track however unable to discover the filename based on the playlist for the fileserver options.

Sry, but writing this comments is quite a lot of work, since I'm using the foobar playlist writing functionality right now. I'm not going to implement this, but you could ask for it to get implemented into the foobar core playlist writer (since that's where it belongs anyway).


PS: pIv, I'm sorry, but I can't help you - don't understand anything of this program. But you can do this with foo_scheduler.

foo_winamp_spam 0.9 beta

Reply #126
Thanks Chronial/R1CH, I've been using this with ezQuake and it works a treat. A few minor things like playlist display and volume adjustment from within the game don't work but I don't consider those important.

foo_winamp_spam 0.9 beta

Reply #127
Do you get any "Unsupported WM_USER, lParam ..." Messages in your foobar console?
Maybe I could implement the missing features.

foo_winamp_spam 0.9 beta

Reply #128
The playlist gets written every time "winamp" is asked to do so (which gtalk does once per second) - just like it should. Did you actually get any errors or do you just fear them? If you get errors, I wonder how gtalk works with winamp. If you close gtalk, the playlist won't get written after all (as long as no other app asks "winamp" to do so).


My foobar is randomly crashing with sharing violation errors. I tracked it down to the fake winamp playlist. I did some more experimentation following your feedback and this behavior goes away when gtalk is not running (Google Talk, XChat, and Foobar are accessing the playlist). I also noticed that my Google Talk process jumps in CPU consumption whenever foobar dies with the sharing violation so there must be something fishy going on in the way google talk handles the playlist, I wonder why it hammers it so much.

 

foo_winamp_spam 0.9 beta

Reply #129
Can you implement these?

wParam 40144
wParam 40148

I think these are for forward, backward buttons (quick seeking, e.g. 5-sec forward or backward). Thanks!

foo_winamp_spam 0.9 beta

Reply #130
Getting the following unsupported errors when trying to use the TwinsMediaPlayer addon for KVIRC.  The media buttons work, but the track display info doesn't, except for length and bitrate, and only on the first song played.

Code: [Select]
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 122.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 13123.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 10000.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 13123.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 10000.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 13123.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 10000.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 13123.
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 5000.

It cycles this list of unsupported lParams about every second.

foo_winamp_spam 0.9 beta

Reply #131
Actually now that you mention it I am getting:

Code: [Select]
WARNING : foo_winamp_spam: Unsupported WM_USER, lParam 122.

It happens once at startup and then spams the console if you enter the game's MP3 Player menu.

foo_winamp_spam 0.9 beta

Reply #132
word from winamp SDK:

Code: [Select]
#define IPC_SETVOLUME 122
/* (requires Winamp 2.0+)
** SendMessage(hwnd_winamp,WM_WA_IPC,volume,IPC_SETVOLUME);
** IPC_SETVOLUME sets the volume of Winamp (from 0-255).
*/


for all others. all important ipc calls (those lparams thing) are usualy lower then 300 (there are calls with higher number but these are winamp specific like "open popup", "return skin file" and so on)... but even those are all bellow 1000 (from fast look in SDK) so anything up from this number is just rubish from utility you use. pls dont ask anyone to implement it these calls are not in SDK and are not documented.

i had fast thought that these insane calls can come up from joinin lparam string and wparam together but it doesnt look like that.

problem is that some software use really brute force on winamp and hope that noone in winamp will use xGB playlist and just spam conponent with stupid calls.

ps: that 122 ipc call could be implemented it depends on Chonical

Can you implement these?

wParam 40144
wParam 40148

I think these are for forward, backward buttons (quick seeking, e.g. 5-sec forward or backward). Thanks!


Chronical:

Code: [Select]
/*
** Finally there are some WM_COMMAND messages that you can use to send
** Winamp misc commands.
**
** To send these, use:
**
** SendMessage(hwnd_winamp, WM_COMMAND,command_name,0);
*/

#define WINAMP_OPTIONS_EQ               40036 // toggles the EQ window
#define WINAMP_OPTIONS_PLEDIT           40040 // toggles the playlist window
#define WINAMP_VOLUMEUP                 40058 // turns the volume up a little
#define WINAMP_VOLUMEDOWN               40059 // turns the volume down a little
#define WINAMP_FFWD5S                   40060 // fast forwards 5 seconds
#define WINAMP_REW5S                    40061 // rewinds 5 seconds

// the following are the five main control buttons, with optionally shift
// or control pressed
// (for the exact functions of each, just try it out)
#define WINAMP_BUTTON1                  40044
#define WINAMP_BUTTON2                  40045
#define WINAMP_BUTTON3                  40046
#define WINAMP_BUTTON4                  40047
#define WINAMP_BUTTON5                  40048
#define WINAMP_BUTTON1_SHIFT            40144
#define WINAMP_BUTTON2_SHIFT            40145
#define WINAMP_BUTTON3_SHIFT            40146
#define WINAMP_BUTTON4_SHIFT            40147
#define WINAMP_BUTTON5_SHIFT            40148
#define WINAMP_BUTTON1_CTRL             40154
#define WINAMP_BUTTON2_CTRL             40155
#define WINAMP_BUTTON3_CTRL             40156
#define WINAMP_BUTTON4_CTRL             40157
#define WINAMP_BUTTON5_CTRL             40158

#define WINAMP_FILE_PLAY                40029 // pops up the load file(s) box
#define WINAMP_FILE_DIR                 40187 // pops up the load directory box
#define WINAMP_OPTIONS_PREFS            40012 // pops up the preferences
#define WINAMP_OPTIONS_AOT              40019 // toggles always on top
#define WINAMP_HELP_ABOUT               40041 // pops up the about box :)

#define ID_MAIN_PLAY_AUDIOCD1           40323 // starts playing the audio CD in the first CD reader
#define ID_MAIN_PLAY_AUDIOCD2           40323 // plays the 2nd
#define ID_MAIN_PLAY_AUDIOCD3           40323 // plays the 3nd
#define ID_MAIN_PLAY_AUDIOCD4           40323 // plays the 4nd


maybe not all but some of these could be implemented imho

foo_winamp_spam 0.9 beta

Reply #133
Thanks, but I've got the winamp api myself - and my nick is chronial (no second c )

But if you've got winamp installed you could help me by telling me what these buttons actually do
WINAMP_BUTTON1_SHIFT            40144
WINAMP_BUTTON5_SHIFT            40148

If they actually do seek, I'd need to now by how far they seek.

*edit*
Well, I could actually need this info for all five buttons (these are prev, play, pause, stop and next) - with shift and ctrl pressed.

foo_winamp_spam 0.9 beta

Reply #134
Thanks, but I've got the winamp api myself - and my nick is chronial (no second c )

But if you've got winamp installed you could help me by telling me what these buttons actually do
WINAMP_BUTTON1_SHIFT            40144
WINAMP_BUTTON5_SHIFT            40148

If they actually do seek, I'd need to now by how far they seek.

*edit*
Well, I could actually need this info for all five buttons (these are prev, play, pause, stop and next) - with shift and ctrl pressed.


humbly sory for nick misspell  i was just tryin to help and express something that some ppl obviously still didnt get. hope it will be clear now but maybe not.

ps: sry dont have winamp installed nor have any of these ("send one gvantzilion of ipc calls in one pikosec ") utilities

foo_winamp_spam 0.9 beta

Reply #135
for buttons 1 and 5::

the 'shift' actions do rewind and fastforward appropriately with the jump time generally being 5seconds

the 'ctrl' actions will jump to the first or last entries in the playlist (if winamp's shuffle is disabled and to the first or last entries in the shuffle list if shuffle is enabled

for button 2::
normal action is play/restart playback of currently playing track
shift does the open file dialog
ctrl does the open url dialog

for button 3::
normal action is pause
shift and ctrl do not have any defined actions

for button 4::
normal action is to stop
shift does stop with fadeout (can't remember the duration on the fade)
ctrl does stop after current

-daz

foo_winamp_spam 0.9 beta

Reply #136
Thanks a lot for the info

foo_winamp_spam 0.9 beta

Reply #137
not a problem, anything else then don't hesitate to ask

-daz

foo_winamp_spam 0.9 beta

Reply #138
Well, it's all implemented now, but I could need something that tries to set winamp's volume so I can test this.

foo_winamp_spam 0.9 beta

Reply #139
Here's volume changer, which changes volume by steps (WINAMP_VOLUMEUP, WINAMP_VOLUMEDOWN) or with slider (IPC_SETVOLUME). Steps works fine with Winamp and foobar, but slider only for Winamp.

btw. would you release src?

foo_winamp_spam 0.9 beta

Reply #140
For those of you using Yahoo's Widget Engine, I downloaded Winamp Remote v.1 and all simple functions work, which suits me fine (e.g. play, pause, next track, skin colour change). Features that dont work are volume control, seek bar, open / quit foobar and of course ratings).

Here's a link for those interested.



http://www.widgetgallery.com/view.php?widget=36544

foo_winamp_spam 0.9 beta

Reply #141
Chronial: Will you implement VBR updating (lParam = IPC_GETINFO, wParam = 1)? Thanks!

foo_winamp_spam 0.9 beta

Reply #142
I don't think this command is meant to report current bitrate - the current implementation seems correct to me.

foo_winamp_spam 0.9 beta

Reply #143
No sorry, you are wrong! Now I tried it with Winamp 5.3 and it changes bitrate as playback goes on. So, will you implement it or not (I'm just asking)? Your goal is to emulate Winamp API, and Winamp IPC API is doing that, so...

foo_winamp_spam 0.9 beta

Reply #144
I've installed Vista and this plugin causes 30-35% cpu usage (sempron 3000+), any ideas how to fix it?

foo_winamp_spam 0.9 beta

Reply #145
For me, under Vista this plugin seems to be the cause of "Unhandled Exception: Bad Allocation" errors. I have been playing around for some hours now and with the removing of this component my foobar has stopped crashing. It would frequently crash on song changes before, and when I clicked around in the playlist and changed songs too often/fast. These symptoms are now totally gone (running stable for more than 6 hours now and frantic clicking doesn't cause a crash).

foo_winamp_spam 0.9 beta

Reply #146
I'm sorry, but I haven't got any vista testing machine at hand, and I think I won't use vista until microsoft forces me to do so.
Maybe the implementation of VBR updating will fix this. But I don't have a lot of time at the moment.

foo_winamp_spam 0.9 beta

Reply #147
Could you please add track seeking?

foo_winamp_spam 0.9 beta

Reply #148
Building the component against the latest Foobar SDK should solve any Vista problems. At least, It solved that specific error for the other components.

foo_winamp_spam 0.9 beta

Reply #149
A bump here, track seeking would really be appreciated (lparam 106).
If you don't have time or don't want to do it, please consider releasing source (I'll try to add it).