Old 5th October 2006, 23:22   #481
shaneh
Major Dude
 
Join Date: Jan 2004
Location: Brisbane, Australia
Posts: 1,193
You have to add the item to the playlist in order to play it. You can remove it afterwards if you like and it will continue to play.

Just enqueue it, then set the playlist to the last item then play.

ie.

mi.enqueue
oldpos = playlist.position
playlist.position = playlist.count
winamp.play
playlist.deleteindex(playlst.position)
playlist.position = oldpos

or something like that. I really should make enqueue set the mi.position, this currently isnt done. This would allow you to do:

mi.enqueue
mi2.enqueue
playlist.position = mi.position
winamp.play

note that this isn't currently possible.
shaneh is offline   Reply With Quote
Old 25th October 2006, 17:01   #482
styx432143
Junior Member
 
Join Date: Oct 2006
Posts: 3
I am writing a smallscript to make winamp automaticly add files from a folder to the playlist.
I use the medialibrary to monitor a folder for new files.

Then this script will import from medialibrary.

code:

dim a,b

Sub Application_ChangedTrack

StopPlayback
'playlist.item(0).playcount = playlist.item(0).playcount - 1
a=0
b=0
do
mlq = medialibrary.runqueryarray("type = 0 AND Playcount = " & b)
playlist.clear
for each track in mlq
track.enqueue
a=a+1
next
if a=0 then
b=b+1
end if
loop while a=0
Play

End Sub



It works fine until there is only one song in the current PL, then winamp crash.

Could someone please take a look and help me out?

[edit]
I also wonder if there are any way of making this work for videos added to medialibrary as well?
[/edit]

Thanks

Last edited by styx432143; 25th October 2006 at 17:29.
styx432143 is offline   Reply With Quote
Old 25th October 2006, 20:36   #483
styx432143
Junior Member
 
Join Date: Oct 2006
Posts: 3
Fixed the problem myself
styx432143 is offline   Reply With Quote
Old 26th October 2006, 10:37   #484
styx432143
Junior Member
 
Join Date: Oct 2006
Posts: 3
No, I still experience some crashes. My code is still basically the same as above.
what could be causing the crashes?
What happens when medialibrary.runqueryarray() cant get any hits matching the query?

Thanks
styx432143 is offline   Reply With Quote
Old 6th November 2006, 21:59   #485
Hayden_54
Member
 
Join Date: Jan 2004
Location: Wellington, NZ
Posts: 65
I'm using this Random Playlist code (can't remember who made it originally):

code:
Randomize
mlq = medialibrary.runqueryarray("type == 0 AND playcount <= 10 AND lastplay < [3 weeks ago]")
num = CInt(InputBox("Number of items"))
tracks = 0
do while (tracks<num)
Rand = Int(ubound(mlq) * Rnd+1)
mlq(Rand).enqueue
tracks=tracks+1
Loop
quit



Just wondering how I can change it to overwrite the playlist and play rather than just enqueue it. I don't really know much about how any of this works...I tried the simple thing of switching the word enqueue to play but that didn't work!

Could somebody help me out with this please.
Hayden_54 is offline   Reply With Quote
Old 6th November 2006, 22:14   #486
shaneh
Major Dude
 
Join Date: Jan 2004
Location: Brisbane, Australia
Posts: 1,193
Just add a

playlist.clear

at the start of the code.
shaneh is offline   Reply With Quote
Old 6th November 2006, 22:22   #487
Hayden_54
Member
 
Join Date: Jan 2004
Location: Wellington, NZ
Posts: 65
Thanks! Is there also a way to get it to start playing the first song in the new playlist?
Hayden_54 is offline   Reply With Quote
Old 6th November 2006, 22:23   #488
shaneh
Major Dude
 
Join Date: Jan 2004
Location: Brisbane, Australia
Posts: 1,193
playlist.position=1
play
shaneh is offline   Reply With Quote
Old 6th November 2006, 22:30   #489
Hayden_54
Member
 
Join Date: Jan 2004
Location: Wellington, NZ
Posts: 65
Awesome...works perfectly. Thanks for all your help.
Hayden_54 is offline   Reply With Quote
Old 30th November 2006, 03:57   #490
osmosis
Major Dude
 
osmosis's Avatar
 
Join Date: Jan 2006
Location: Cananada
Posts: 841
if you go to Add View in the Media Library and then to Advanced Editor, all the documentation for the query language are in there.

Request: A little SmartView Query Language love.
osmosis is offline   Reply With Quote
Old 2nd December 2006, 12:09   #491
bwechner
Junior Member
 
Join Date: Dec 2006
Posts: 25
ChangedTrack callback not working in C#

I'm trying to write a small C# app and need to use the ChangedTrack callback. I base it upon the C# sample project supplied with ActiveWinAmp. Alas the callback doesn't work in that demo, nor in my app, and I'm at a loss as to why. Here's what the relevant code looks like:

code:
WinAmp = new ActiveWinamp.Application();
WinAmp.ChangedTrack += new _IApplicationEvents_ChangedTrackEventHandler(DisplayCurrentSong);



The method DisplayCurrentSong is never called when the playing track changes. What is it that isn't being done right? How to diagnose it? How can I get this callback to work properly?

Has anyone got a C# app working like this and care to share experiences?
bwechner is offline   Reply With Quote
Old 7th December 2006, 01:27   #492
e1v
Junior Member
 
Join Date: Dec 2006
Posts: 2
I've created a program for displaying album ratings etc, described here:
WinampRatings, I hope sombody can test it and tell me what the thing (if it works)

Anyway, it's a c# program and I'm reading from winamp using activewinamp like this:
code:

static Application winamp = new ActiveWinamp.Application();
static ActiveWinamp.MediaLibrary mediaLibrary = winamp.MediaLibrary;
...
...
foreach (ActiveWinamp.MediaItem item in mediaLibrary)
{..read info into my collection ..}


But it's very slow. Is there any quicker way to read the medialibrary with ActiveWinamp?
e1v is offline   Reply With Quote
Old 7th December 2006, 01:36   #493
shaneh
Major Dude
 
Join Date: Jan 2004
Location: Brisbane, Australia
Posts: 1,193
It might be quicker to use

MediaLibrary.RunQueryArray('')

This will load the entire results into an array then return that. This way, it would only require one (albiet big) inter-process marshal. This is pretty much the reason I implemented that function.
shaneh is offline   Reply With Quote
Old 7th December 2006, 08:24   #494
e1v
Junior Member
 
Join Date: Dec 2006
Posts: 2
OK, thanks, I'm new to interop programming. Now I tried using
code:

Array trackArray = (Array)winamp.MediaLibrary.RunQueryArray("type=0");

foreach (object obj in trackArray)
{
MediaItem item = obj as MediaItem;
string album= item.Album;
//... read stuff from item into my table
}


but it's only 10% faster. It's still the foreach loop that is taking the longest time, and winamp is using 50% cpu during the foreach, so it must be communicating with winamp for every item read.
e1v is offline   Reply With Quote
Old 7th December 2006, 21:48   #495
bwechner
Junior Member
 
Join Date: Dec 2006
Posts: 25
Winamp forums seems to have booted my account during a recent change? Hmmm, anyhow, can't use old account as allegedly it doesn't exist when I try to logon. But I'm still keen to learn something about this:

I'm trying to write a small C# app and need to use the ChangedTrack callback. I base it upon the C# sample project supplied with ActiveWinAmp. Alas the callback doesn't work in that demo, nor in my app, and I'm at a loss as to why. Here's what the relevant code looks like:
code:
code:WinAmp = new ActiveWinamp.Application();
WinAmp.ChangedTrack += new _IApplicationEvents_ChangedTrackEventHandler(DisplayCurrentSong);

The method DisplayCurrentSong is never called when the playing track changes. What is it that isn't being done right? How to diagnose it? How can I get this callback to work properly?

Has anyone got a C# app working like this and care to share experiences?

Last edited by bwechner; 7th December 2006 at 22:13.
bwechner is offline   Reply With Quote
Old 10th December 2006, 10:26   #496
shaneh
Major Dude
 
Join Date: Jan 2004
Location: Brisbane, Australia
Posts: 1,193
The example included with the activewinamp distribution (AWExamples/waform) is a C# application which handles track change events.

I just tested it and it works ok with Winamp 5.3
shaneh is offline   Reply With Quote
Old 12th December 2006, 22:26   #497
bwechner
Junior Member
 
Join Date: Dec 2006
Posts: 25
Alas I tested it too and didn't work. I'm happy to try again when I get home (having tried a few times already). And I'll give it a whir on another PC too. But if I'm stuck, what diagnostic tools are there for seeing why an event driven callback fails?

The example C# app in fact is the only way I could divine that the ChangedTrack property needs for some reason I don't understand the += incrementor rather than the = assignment operator.

Last edited by bwechner; 13th December 2006 at 00:39.
bwechner is offline   Reply With Quote
Old 12th December 2006, 23:50   #498
shaneh
Major Dude
 
Join Date: Jan 2004
Location: Brisbane, Australia
Posts: 1,193
Are you sure your 'Winamp' object is global? It will be destroyed (along with all event handlers) once it goes out of scope if not.

At line 15 you can see it is global:
http://activewinamp.cvs.sourceforge.....2&view=markup

The reason it needs a += rather than assignment I suspect is because you want to "add" a handler to the list of handlers, not override the handler.
shaneh is offline   Reply With Quote
Old 13th December 2006, 00:44   #499
bwechner
Junior Member
 
Join Date: Dec 2006
Posts: 25
Shaneh, thanks. I'm confident and will check when I get home again (to see my code). I can't rule out an obvious error (very common after all) but I am aware of scoping issues. I'll report back here.

But, I can't get the provided demo to work either. Well it compiles and runs just fine on my box at home and functions quite well, except for the callback it seems (a break point there never triggers wen I change WinAmp tracks).

I have the same interpretation of the += requirement, but to be honest I am in lieu of understanding the consequences happy to override the event handler. I'm left assuming that perhaps there in a WinAmp internal handler that if overrridden has some unpleasant side effects (WinAmp not functioning correctly). Who knows? It seems to be by design of ActiveWinAmp or WinAmp anyhow that this eventhandler cannot be overridden.
bwechner is offline   Reply With Quote
Old 17th December 2006, 09:07   #500
Pamarro
Junior Member
 
Join Date: Dec 2006
Posts: 2
Send a message via ICQ to Pamarro Send a message via AIM to Pamarro Send a message via Yahoo to Pamarro
How do u write scripts for the following actions?

- Add currently playing song to Bookmark
- Open 'View file info...' box

There don't seem to be Global Hotkeys for these two actions, so thats why I'm asking.
Pamarro is offline   Reply With Quote
Old 17th December 2006, 13:37   #501
esulin
Junior Member
 
Join Date: Dec 2006
Posts: 4
I just wanted to follow up on bwechner's posts...

I just started playing around with ActiveWinamp in C# the other day.

First off I played around with the code in Visual Studio 2003. I compiled and tested the sample c# program, and then wrote my own test program to familiarize myself with the code (i'm a relatively new programmer). In any case, in VS2003 everything worked perfectly and the events worked correctly.

I have since then installed Visual Studio 2005, and have convereted both the sample program and my program to the new format. It seems that both are now experiencing some form of problem when the events are fired by winamp. I have attempted to trace where the problem is and I got some very strange results (code being skipped). Although this could just be an error in my debugging efforts.

I will look into it further. But in the meantime I just wanted to point out that I seem to be having the same (or similar) problem bwechner's having.

UPDATE:
Well, what I noticed earlier seems to be true.

I am working with the sample code provided with the plugin in VS2005.

I placed breakpoints on the first three lines of OnTrackChange() (including the {).

When I changed track either through winamp or through the app the program would break at the {, but when I pressed continue, it did not move on to the "int pos = playlist.[...]" line but it seemed to exit the function and revert back to idle.

I ran the app and changed track several times, and on one of the tries, the code actually ran, and everything worked as it should. When I changed the track again, I faced the same problem as earlier.

I have noticed that if I wait a certain amount of time between skipping tracks that it's more likely that the code runs.

In any case, I'm not quite sure what the problem could be as I didn't even know that a function can just quit without some form of 'try' code or exit command, or without throwing a runtime error.

Let me know if there is any further info I can provide to help debugg this.

Last edited by esulin; 17th December 2006 at 14:17.
esulin is offline   Reply With Quote
Old 17th December 2006, 22:27   #502
bwechner
Junior Member
 
Join Date: Dec 2006
Posts: 25
esulin,

Thanks enormously for the experiments. I'm using Visual Studio 2005 Express and so it does look like we share a problem. Good efforts your side. I've lacked time with the Christmas and Birthday hooha surrounding these weeks for me and want to experiment some more too.

On the face of it, it seems that VS2005 introduced a new "feature" over VS2003 (given the sample code seems to work in VS2003 as expected). I wonder if shaneh is using VS2003 or VS2005 when he reports the demo code works?

The symptom's you're describing to challenge the imagination. No exception is thrown, nothing, just silent exit. I did try break points on the opening { as well and didn't catch any entry, but only tried a few times a week or two ago not exhaustively. It seems from what you've described to be timing related and quite possibly a threading issue with VS2005 and/or ActiveWinamp int he .NET 2 world?

Bizarre and a blocking issue alas. A real downer for now as I was very excited about ActiveWinamp!
bwechner is offline   Reply With Quote
Old 17th December 2006, 23:21   #503
shaneh
Major Dude
 
Join Date: Jan 2004
Location: Brisbane, Australia
Posts: 1,193
I'm pretty sure I was using VS2005, although the project distributed is for 2003 and I had converted it.

I wouldn't be surprised if breakpoints don't work very well. The event is synchronous, meaning it runs in a single thread and waits for your code to return before giving back control to the Winamp thread. You would want to ensure you do as little as possible in your event handler - perhaps just adding the event to a queue and handling it in another thread.

Instead of using a breakpoint you could try just outputting a debug statement or something just to see if the event is getting through. I will try re-write a small demo in VS2005 and see how it goes.
shaneh is offline   Reply With Quote
Old 18th December 2006, 05:23   #504
esulin
Junior Member
 
Join Date: Dec 2006
Posts: 4
shaneh,

I actually tried that too...

I setup a list control and output two consecutive messages to the control in the first two lines of the function.

I found that when debugging it would break on the {, and then also break on the first line (messagebox listbox). The next continue would exit the function. During the times that the function exited, nothing was added to the control, even though according to the debugger it looked like the line should have been executed. During the instances that the code did work, both messageboxes calls correctly added to the listbox.

I also have VS2005 running on my laptop and am experiencing the same problem there.

The desktop is running Winamp v5.21, while the laptop is running v5.3.

I've downloaded the VS2005 SP1 last night and will give that a go on the off chance that the problem is due to some bug that has now been resolved. Will post progress.

Also, I tried running the code again today without any breakpoints, and regardless of what I tired it wouldn't execute the code. Although, when I put the break points back in, it managed to execute once.

I also executed the VS2003 project again just to double check that, and it worked perfectly.

UPDATE:

Also worth mentioning two more things.

First, I also noticed one additional thing, and I'm unsure whether it's related to the debugger, or to AW. Namely the first time that the OnTrackChange() is called VS freezes up for an amount of time that is always the same on each machine (i.e. 15 sec. on the laptop, 10 on the destop). This could be to do with the debugger processing something, or it could be waiting on a timeout or something like that from WA (the times might be different due to different playlist lengths).

Second, on my laptop the exact same code that is running on my desktop seems to return a blank value for playlist[i].Artist and playlist[i].Title, while the desktop coded runs fine.

Last edited by esulin; 18th December 2006 at 05:45.
esulin is offline   Reply With Quote
Old 18th December 2006, 05:34   #505
shaneh
Major Dude
 
Join Date: Jan 2004
Location: Brisbane, Australia
Posts: 1,193
I think popping up a message box can be quite dangerous in an event handler when dealing with COM. I can't remember the exact details, something to do with it having its own modal message loop, and thus the COM messages are processed by the messagebox code. Something like that anyway.

You could try without the message box. I'll look into it further when I get a chance.

Also, you could try a simple VB script based event handler, as seen in the scripts examples.
shaneh is offline   Reply With Quote
Old 18th December 2006, 05:43   #506
esulin
Junior Member
 
Join Date: Dec 2006
Posts: 4
Sorry about the confusion, I meant to say 'listbox', not 'messagebox' (will edit). The code is:

public void OnTrackChange()
{
lst_status.Items.Add("On Track Change Event Test 1");
lst_status.Items.Add("On Track Change Event Test 2");
int pos = playlist.Position;
ActiveWinamp.MediaItem mi = playlist[pos];
try
{ [and so on...]

The reason for two of them is because during debugging the app breaks on the first line and thus I wanted to have a second line of non-acitvewinamp related code to break on to see if the first gets executed.
esulin is offline   Reply With Quote
Old 18th December 2006, 07:41   #507
esulin
Junior Member
 
Join Date: Dec 2006
Posts: 4
Another update.

I've installed VS2005 SP1, but that hasn't fixed the problem. Although interestingly enough, the 10-15 second freeze I mention above now occurs every time the function is called.

Further more, I noticed some info the might be pertinent to the problem in the 'Locals' detais. When the debugger breaks on the { breakpoint the state of the 'winamp' object is as follows:


-winamp|{ActiveWinamp.ApplicationClass}|ActiveWinamp.Application {ActiveWinamp.ApplicationClass}

-[ActiveWinamp.ApplicationClass]|{ActiveWinamp.ApplicationClass}|ActiveWinamp.ApplicationClass

Hwnd|Function evaluation disabled because a previous function evaluation timed out. You must continue execution to reenable function evaluation.|int

MediaLibrary|Function evaluation disabled because a previous function evaluation timed out. You must continue execution to reenable function evaluation.|ActiveWinamp.MediaLibrary

Panning|Function evaluation disabled because a previous function evaluation timed out. You must continue execution to reenable function evaluation.|int

Playlist|Function evaluation disabled because a previous function evaluation timed out. You must continue execution to reenable function evaluation.|ActiveWinamp.Playlist

[and so on]

(columns are | delimited)

I assume this timeout is responsible for the problem. Any suggestions on what I can do to further trace the problem?
esulin is offline   Reply With Quote
Old 18th December 2006, 13:49   #508
shaneh
Major Dude
 
Join Date: Jan 2004
Location: Brisbane, Australia
Posts: 1,193
I can't reproduce this with the demo, theres no noticable delays or missed events. Have you tried running the code outside of a debugger and without breakpoints etc? Just as a standalone exe?

Are you using the latest version of AW from the CVS? Perhaps you need to regenerate the interop code or something.
shaneh is offline   Reply With Quote
Old 20th December 2006, 00:35   #509
bwechner
Junior Member
 
Join Date: Dec 2006
Posts: 25
Well, I've played around a bit and with VS2005 I can report:

The trackchange and volume change callbacks do not work at all in the demo or my code in debug mode.

They work find in a release build (standalone exe!)

So, I have no idea what's going on, but that's what I've found on my box.

Thanks for getting me that far, and I hope esulin's problem gets sorted too!
bwechner is offline   Reply With Quote
Old 20th December 2006, 00:39   #510
bwechner
Junior Member
 
Join Date: Dec 2006
Posts: 25
A progress bar?

Now that I have a small app working with track change events, I thought it nice if I could get a progress bar up as a song is playing in WinAmp.

The real hitch though is, that I can't find in ActiveWinAmp and property of a media item (or anything else, or a method) that would reveal how much of the song had played.

In short I can't work out what to set the progress bar to.

If I had that I could then update the bar every half second or so and get a nice progress bar during play on my app.

Any thoughts there? I haven't explored all the messages I could send to WinAmp yet (one of those may do the trick, but it would be nice if the COM object directly gave measure of this).
bwechner is offline   Reply With Quote
Old 20th December 2006, 01:06   #511
shaneh
Major Dude
 
Join Date: Jan 2004
Location: Brisbane, Australia
Posts: 1,193
Application.position will tell you the progress of the current track. Keep in mind that calculating lengths and position in a track etc is not too accurate in Winamp for some tracks. If you watch winamp, the length and position can jump around as the track is playing for some files. There is no real solution.

There is no event callback either, this would be too CPU intensive.

I suspect your debugging trouble is caused by your environment/debugger/code/breakpoints/interop code etc rather than ActiveWinamp itself if it works ok in a release build.

You could try deleting all your objects and interop dlls etc and re-generating them in a fresh build. But debugging COM events in .NET from a Win32 app not built for COM you can expect a few problems.
shaneh is offline   Reply With Quote
Old 20th December 2006, 01:23   #512
bwechner
Junior Member
 
Join Date: Dec 2006
Posts: 25
Thanks. I thought Application.position was the position in the playlist of the track (first track is 1, second track is 2 etc.) and hadn't tried it yet. There you go, the hacker in my is getting tired, I should have just plugged it in and seen what value it has.

A callback isn't necessary really as any progress indicator, including the one WinAmp uses itself has to work discretely on some sort of timer cycle and I can just update every second, half second of quarter second or whatever I find yields a nice smooth indicator without too much update load.

I haven't the time to debug the debug issues ;-). It works in the release build and a build is produced in the blink of an eye (I'm just writing a very small app here) so I can proceed. Of course I'll never be able to debug my event code, but hey, I'll survive for now. I agree it's likely a VS2005 issue not an ActiveWinAmp issue though. And yes, given esulin's experience it seems it may be particular to my installation (esulin is getting some callbacks after all in debug mode if I read right and it seems you are too shaneh).
bwechner is offline   Reply With Quote
Old 8th January 2007, 04:51   #513
vect
Junior Member
 
Join Date: Jan 2007
Location: Melbourne, Australia
Posts: 4
Hi guys, I've written a new party shuffle script based off 'Party Shuffle 2.5' by osmosis and neFAST

I've always wanted a biased shuffle where lower rating tracks get less plays than the higher rating ones, and this is the main feature of this script. Also, it keeps a history of artists and songs played to avoid repeats for a while.

Since I'm pretty bad at explaining things, I'll just say to try it, mess around with it (there's a bunch of variables to change - eg. the bias doesn't have to be ratings based at all), do whatever with it. Don't think I'd be modifying the script much since it does everything I want, but tell me if I've done anything strange especially since I'm not a VB coder
Attached Files
File Type: txt playlist_biased party shuffle.vbs.txt (8.8 KB, 542 views)
vect is offline   Reply With Quote
Old 8th January 2007, 10:53   #514
bwechner
Junior Member
 
Join Date: Dec 2006
Posts: 25
Rating property always returns 0

I'm trying to get and set the rating of a media item. Yet this:

ActiveWinamp.Application WinAmp;
WinAmp.Playlist[WinAmp.Playlist.Position].Rating

always returns 0 even on rated songs I can see in WinAmp. Is that bug or am I misunderstanding something?

Curiously yours,

Bernd.
bwechner is offline   Reply With Quote
Old 8th January 2007, 12:01   #515
shaneh
Major Dude
 
Join Date: Jan 2004
Location: Brisbane, Australia
Posts: 1,193
Using:

msgbox (playlist(playlist.position).rating)

in vbs works ok for me. Theres a couple bugs with setting meta data, but retrieving the data should be ok.
shaneh is offline   Reply With Quote
Old 9th January 2007, 21:05   #516
bwechner
Junior Member
 
Join Date: Dec 2006
Posts: 25
I'm using C# and alas all of Rating, Lastplay and Playcount return 0 (when they are not 0 in my media library), whereas Album, Artist, Filename, Length, Name, Position, Title, Track return the values I expect. Genre I don't use and haven't tried. That covers all the Media Item properties. Does that lend a clue? Or is the a next step in diagnosis? Perhaps an issue with my media library? Or my version of ActiveWinAmp (1.0 reported on options, but I think I have the latest sourceforge download and dll)..
bwechner is offline   Reply With Quote
Old 10th January 2007, 00:27   #517
shaneh
Major Dude
 
Join Date: Jan 2004
Location: Brisbane, Australia
Posts: 1,193
It shouldnt matter if you use C# or .vbs with regards to this problem..

Sounds like an issue with getting extended info/ml info. Do you have the media library set to load on startup? Does using ATFString("%rating%") return the correct value? Theres a 'refreshmeta' or some call which might help.

I intend to do a bit of work on AW soon to make it work with the new SDK etc which will involve re-writing much of the meta data fetching stuff anyway.
shaneh is offline   Reply With Quote
Old 10th January 2007, 01:36   #518
bwechner
Junior Member
 
Join Date: Dec 2006
Posts: 25
Good on you Shane. I looked at the source on Sourceforge, but the learning curve for WinAmp plugins in C++ is too steep for me to tackle right now or I'd try myself.

I did try a refreshmetadata call before accessing it with no luck. I can try ATFString("%rating%") when I get home tonight (it says nothing to me now, I'll poke around, though actually may not find time till next week come to think of it as I'ma way for five days from tomorrow and have heaps to do tonight).

If you do further metadata work, a general call to access named ID3 tags would be great (as I'm keen to access the Year tag).

I'm also futzing about with system volume now and it's non trivial alas so I've shelved it. if ActiveWinAmp had broader volume control methods that would be a boon, but hey, it could outside of it's agenda. Let's say system volume is as important as WinAmps volume to me as an end user (as they work together). Alas it takes you into mixer space and individual channel volumes and a non-trivial system API (albeit not too complicated either).
bwechner is offline   Reply With Quote
Old 10th January 2007, 01:45   #519
shaneh
Major Dude
 
Join Date: Jan 2004
Location: Brisbane, Australia
Posts: 1,193
The year tag is already accessible, perhaps you aren't using the latest build from the CVS? (see the wiki, replace the dll in your plugins directory) Most/all ML fields are available as properties, or if not the ATFString() method can be used to get anything else. As I said, I plan on doing a bit more work on this to allow a generic 'getmeta' type call for stuff not covered.

AW does not read/write ID3 tags by design, its purely for Winamp manipulation. ie not every file winamp uses has id3 tags, so it goes against the general design.
shaneh is offline   Reply With Quote
Old 10th January 2007, 02:55   #520
bwechner
Junior Member
 
Join Date: Dec 2006
Posts: 25
Ah, I thought I did get the latest DLL from CVS. But there's no ruling out human error and it's worth trying again. All at home and not chance to see it here (at work).

I agree wholly with the ID3 tag stance for the expressed reasons. I'm happy to access any of the metadata WinAmp supports in its ML. Interestingly though the ML has on Alt+3 and Ctrl+E metadata editing tools and the former is certainly format aware as it presents both ID3v1 and ID3v2 tags (annoyingly as I'd rather it just dealt with WinAmp metadata and a mapping between that and format specific tags were specific globally - which is how Mp3Tag, a wonderful freeware utility, works).
bwechner is offline   Reply With Quote
Reply
Go Back   Winamp & Shoutcast Forums > Developer Center > Winamp Development

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump