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_history (Read 72631 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

foo_history

I programmed a very simple song history for foobar 0.9. And when I say simple, I mean it - it literally just adds the songs to a special playlist as they are played. But eh, it was a good way to start developing, and I thought maybe somebody can get something off it.

Enable the history in the Library menu, and it'll capture or create the History playlist and collect songs as they are played. Note that as of yet, closing the playlist will destroy the history and you'll get an empty one if you open it up again. Thanks to the magic that is foobar, the history is preserved over program exits, though.

foo_history

This is stage 1 of the component. It's basically the first version that has some useful features. The next thing will be adding more persistence, ie. keeping a copy of the history playlist when it's disabled. (And continuing to log played songs while the history is ostensibly disabled, ie not visible.) Also, dynamic songs in audio streams are not handled yet, I couldn't get that to work for technical reasons.

The whole thing is not thoroughly tested, so take care and speak up if you encounter a problem. This is my first component! Thanks to foosion for creating the 0.9 SDK tutorial, this component is very much derived from it.

foo_history

Reply #1
Don't take this the wrong way (at least you are making an effort, which is more than I can say about myself) + I realise this is just an innitial release but everything this does you can achieve with an autoplaylist.

Do you have any new features planned etc, are you going to have all the features of the old history plugin?

foo_history

Reply #2
I haven't actually seen the old history plugin, so I don't know what it's like. I'll probably add more features, yeah, though I'm sure one of the seasoned plugin devs can hack up a better history in a very short time, and they're welcome to do so.  Like I said, in the first place this was a convenient way to start plugin development.

foo_history

Reply #3
If you add a 'go back in history'/'go forward in history' function that i can set a hot key/button to (like in the old foo_history), you will officially be my hero for all time. I'm serious. I will have your baby. Twins, if you want, i don't mind taking fertility drugs.
~

foo_history

Reply #4
Quote
If you add a 'go back in history'/'go forward in history' function that i can set a hot key/button to (like in the old foo_history)

+1. without this feauture it's useless.

foo_history

Reply #5
It's brilliant!!!! One request (besides the play back/forward mentioned above) though: please add the songs in reverse order (so the latest is on top).

foo_history

Reply #6
This is great ! I like these dynamic playlists much more than some external windows and such.

I agree with the need to have history forward/backward commands. One other thing I would like is to be able to configure the name of the playlist.

Thanks

foo_history

Reply #7
Quote
One request (besides the play back/forward mentioned above) though: please add the songs in reverse order (so the latest is on top).

That's actually what I had it do first. The downside is that you can't "relive history" by starting from some song and letting it play, you'd get them played in reverse order. (Incidently, songs played from the history playlist aren't added/logged.) Not sure if I'll keep it that way, if I ever have a configuration panel it'll certainly be an option.

As for changing the history playlist title, I hope I can implement that easily without having to figure out how to implement a preferences page. We'll see. I'll have to look at the old foo_history to see how the Forward/Back feature exactly works - fortunately I have a backup install of 0.8.

Thanks for the feedback!

foo_history

Reply #8
Quote
I'll have to look at the old foo_history to see how the Forward/Back feature exactly works - fortunately I have a backup install of 0.8.

The "history buttons" toolbar is very usefull too

foo_history

Reply #9
I like it, but yes I wish it added them backwards.
Bostitch vs. Swingline; Choose your stapler wisely.

foo_history

Reply #10
I too would be for the back and forth buttons.
Thanks for making this!

foo_history

Reply #11
i still primarily use .83, and i really, really wish i could filter what songs are added into foo_history. sometimes i'll play a song for a few seconds and then skip to another song. or my skip_control plug-in will skip a song without letting foobar actualy play it. however, foo_history still shows these songs even though i didn't actually listen to them, and it's annoying. if i could tell foo_history not to add a song until it's been played X% of the way through, that would be just wonderful. this feature is already implemented in play_count for .83, so i know it's possible.

foo_history

Reply #12
I hope there will be a panel version too for the sidebar under columns UI. The current history code hack doesn't refresh by itself! Highly annoying.

foo_history

Reply #13
Quote
everything this does you can achieve with an autoplaylist.

How? Which query would you use?

foo_history

Reply #14
Hey guys, just wanted to let you know that I'm still here and listening to your suggestions. I hope I'll get around to working on the component some more tomorrow, I certainly can set it up to add songs to the top of the playlist easily; that basically just means commenting out (in?) some stuff. Of course I fully expect a few replies at that point telling me they want it added at the bottom.

I'm sure I can add a feature to only log songs that have been played for a set number of seconds or a percentage of the song, although having that user configurable would mean creating a preferences page, which will take me a while. (Never done C GUI creation, mostly embedded system stuff so far.)

About the forward and back buttons, this seems easy enough, although of course everything seems easy enough at first glance.  But I'm not quite sure if it'd be what you guys expect. The way it works now, the forward and backward buttons would just jump to and control the playback on the History playlist. In particular, double-clicking the status bar to jump the current song would jump to the history playlist, and not the one you originally had the song on. If that's not an issue for you, that's good. Still have to look more closely at the 0.8 history - for instance, what happens after I press back a couple of times and the song finishes, is the next song in the history played, or does playback resume where we were before.

Also - I might need to apologise to foosion. I only realised last night that I sort of took over your plugin by name. That wasn't my intention, if you (or anybody else for that matter) wants to do a port of the original foo_history, I'll rename my plugin.

foo_history

Reply #15
Quote
i still primarily use .83, and i really, really wish i could filter what songs are added into foo_history. sometimes i'll play a song for a few seconds and then skip to another song. or my skip_control plug-in will skip a song without letting foobar actualy play it. however, foo_history still shows these songs even though i didn't actually listen to them, and it's annoying. if i could tell foo_history not to add a song until it's been played X% of the way through, that would be just wonderful. this feature is already implemented in play_count for .83, so i know it's possible.
[a href="index.php?act=findpost&pid=376538"][{POST_SNAPBACK}][/a]

1.
Perhaps there could be a setting for how long a song has to have played to be added. Something like 10 seconds as default would probably suit me fine.

2.
Sometimes I stop a song (e.g., when I get a phone call), or I play the same song again. The downside is that the song is then twice in the history. I would prefer if a song is only added if it wasn't the last song (to prevent doubles).

foo_history

Reply #16
Quote
I'm sure I can add a feature to only log songs that have been played for a set number of seconds or a percentage of the song, although having that user configurable would mean creating a preferences page, which will take me a while. (Never done C GUI creation, mostly embedded system stuff so far.)
The core provides a notification for this (playback_statistics_collector), but it is not configurable.

Quote
Still have to look more closely at the 0.8 history - for instance, what happens after I press back a couple of times and the song finishes, is the next song in the history played, or does playback resume where we were before.
The latter (due to technical limitations in 0.8.3). Of course you could get creative with the playback queue in 0.9.

Quote
Also - I might need to apologise to foosion. I only realised last night that I sort of took over your plugin by name. That wasn't my intention, if you (or anybody else for that matter) wants to do a port of the original foo_history, I'll rename my plugin.
Actually, I'm more concerned about users being confused. I ended up renaming my freedb component for 0.9 to foo_freedb2 for this reason.

foo_history

Reply #17
Quote
1.
Perhaps there could be a setting for how long a song has to have played to be added. Something like 10 seconds as default would probably suit me fine.

2moritz-s
Please, do not add this feauture until there is a way to turn it off. I was using the original foo_history plagin mainly to return to skipped songs when I pressed 'random' too fast

foo_history

Reply #18
Hey guys,

for some reason the forums failed to notify me of the new posts to the thread, so I never saw the replies until a moment ago.

Anyway, I've uploaded a new version. Was busy coding stuff for robotic soccer, so I didn't change a whole lot, and in particular I'm afraid I didn't do anything with regards to back and forward buttons --: new songs now go the the top of the history playlist instead of the bottom, you can rename the playlist now and songs are added only after they've been playing for 20 seconds. Sorry Sergio, like I said I only saw your reply just now - my recommendation for now would be to just stick to foo_history 0.1.

foo_history

Hopefully the next version will include a preferences page and/or forward and back buttons. And maybe a new name -- creative suggestions are welcome.  Until then, enjoy.

foo_history

Reply #19
crashed first time I ran.  Now doesn't do anything

foo_history

Reply #20
Ooops. Huh. Guess I better check that out. (Needless to say it works here...)

foo_history

Reply #21
Code: [Select]
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 004276C2h
Access violation, operation: read, address: 00000000h
Call path:
entry=>app_mainloop=>main_thread_callback::callback_run
This is the first crash logged by this instance.
Code bytes (004276C2h):
00427682h:  38 18 74 13 50 B0 01 8B CF E8 20 CA 03 00 84 C0
00427692h:  59 0F 84 57 FF FF FF A1 BC B6 4C 00 3B C3 74 17
004276A2h:  38 18 74 13 50 B0 01 8B CF E8 00 CA 03 00 84 C0
004276B2h:  59 0F 85 37 FF FF FF B0 01 5F 5E 5B C3 51 8B 08
004276C2h:  8B 01 FF 50 0C 8B 10 8B C8 FF 12 E8 D2 FE FF FF
004276D2h:  59 C3 55 8B EC 83 E4 F8 6A FF 68 B0 C0 49 00 64
004276E2h:  A1 00 00 00 00 50 64 89 25 00 00 00 00 83 EC 40
004276F2h:  53 56 57 33 FF 8B D9 89 7C 24 3C 89 7C 24 40 89
Stack (0013F930h):
0013F910h:  01A9DC98 7C9C93A0 77F643DD 7C9C93A0
0013F920h:  00000004 00000000 01A9D1A4 00000000
0013F930h:  01987E88 0042777D 004C8894 004C86AC
0013F940h:  004AD7B4 0042C1FA 00000004 00000001
0013F950h:  00413600 01973B68 00000001 0013F9F4
0013F960h:  00413797 004AA6FC 01987ED8 00000001
0013F970h:  004AAF78 01987E88 00000001 00000001
0013F980h:  004AD7B4 0013FA10 0049C0B0 00000001
0013F990h:  0016354D 0013F9B8 00427A2F 00000000
0013F9A0h:  0042955D 004C86AC 00000000 10002DC2
0013F9B0h:  004AD774 004CB8DC 0013FA1C 0042C95D
0013F9C0h:  0013FA90 0042CA20 00000000 004AD7A8
0013F9D0h:  004C8738 00733068 00000000 0013FAA8
0013F9E0h:  00000000 0013FA0C 01502180 00FA0503
0013F9F0h:  00000001 01973B68 00000001 00000000
0013FA00h:  004AA6EC 0013FA0C 004CB8DC 004AA6F4
0013FA10h:  0013FAAC 00497196 00000002 0013FA28
0013FA20h:  0042CA3A 00000013 0013FA54 77D48734
0013FA30h:  007A07A2 00000400 00000000 00000000
0013FA40h:  0042CA20 DCBAABCD 00000000 0013FA90
Registers:
EAX: 01987E88, EBX: 004C86AC, ECX: 00000000, EDX: 00000000
ESI: 00000000, EDI: 00000000, EBP: 0013F994, ESP: 0013F930
Crash location: "foobar2000", loaded at 00400000h - 004DC000h

Loaded modules:
foobar2000                       loaded at 00400000h - 004DC000h
ntdll                            loaded at 7C900000h - 7C9B0000h
kernel32                         loaded at 7C800000h - 7C8F4000h
COMCTL32                         loaded at 773D0000h - 774D2000h
msvcrt                           loaded at 77C10000h - 77C68000h
ADVAPI32                         loaded at 77DD0000h - 77E6B000h
RPCRT4                           loaded at 77E70000h - 77F01000h
GDI32                            loaded at 77F10000h - 77F57000h
USER32                           loaded at 77D40000h - 77DD0000h
SHLWAPI                          loaded at 77F60000h - 77FD6000h
SHELL32                          loaded at 7C9C0000h - 7D1D5000h
ole32                            loaded at 774E0000h - 7761D000h
shared                           loaded at 10000000h - 1002A000h
comdlg32                         loaded at 763B0000h - 763F9000h
wbsys                            loaded at 66500000h - 6650A000h
wbhelp                           loaded at 66600000h - 66617000h
wblind                           loaded at 66000000h - 66092000h
WINMM                            loaded at 76B40000h - 76B6D000h
Digi32                           loaded at 003E0000h - 003FA000h
UXTHEME                          loaded at 5AD70000h - 5ADA8000h
msimg32                          loaded at 76380000h - 76385000h
foo_albumlist                    loaded at 00EA0000h - 00EDF000h
foo_audioscrobbler               loaded at 00F00000h - 00F2B000h
libcurl                          loaded at 00F40000h - 00F90000h
WS2_32                           loaded at 71AB0000h - 71AC7000h
WS2HELP                          loaded at 71AA0000h - 71AA8000h
foo_cdda                         loaded at 01000000h - 0102D000h
foo_converter                    loaded at 01050000h - 010B0000h
foo_dsp_crossfeed                loaded at 010D0000h - 010F4000h
foo_dsp_std                      loaded at 01120000h - 0115F000h
foo_history                      loaded at 01180000h - 0119C000h
foo_input_std                    loaded at 011C0000h - 012CC000h
foo_masstag                      loaded at 012F0000h - 0133E000h
foo_out_ks                       loaded at 01360000h - 01383000h
SETUPAPI                         loaded at 77920000h - 77A13000h
foo_rgscan                       loaded at 013B0000h - 013F3000h
foo_uie_albumart                 loaded at 01420000h - 01449000h
gdiplus                          loaded at 4EC50000h - 4EDF3000h
foo_uie_trackinfo                loaded at 01480000h - 014B3000h
foo_ui_columns                   loaded at 014E0000h - 0157A000h
foo_ui_std                       loaded at 015A0000h - 015F7000h
dciman32                         loaded at 73BC0000h - 73BC6000h
mswsock                          loaded at 71A50000h - 71A8F000h
hnetcfg                          loaded at 662B0000h - 66308000h
DNSAPI                           loaded at 76F20000h - 76F47000h
wshtcpip                         loaded at 71A90000h - 71A98000h
winrnr                           loaded at 76FB0000h - 76FB8000h
WLDAP32                          loaded at 76F60000h - 76F8C000h
rasadhlp                         loaded at 76FC0000h - 76FC6000h
DSOUND                           loaded at 73F10000h - 73F6C000h
VERSION                          loaded at 77C00000h - 77C08000h
WINTRUST                         loaded at 76C30000h - 76C5E000h
CRYPT32                          loaded at 77A80000h - 77B14000h
MSASN1                           loaded at 77B20000h - 77B32000h
IMAGEHLP                         loaded at 76C90000h - 76CB8000h
wdmaud                           loaded at 72D20000h - 72D29000h
msacm32                          loaded at 72D10000h - 72D18000h
MSACM32                          loaded at 77BE0000h - 77BF5000h
midimap                          loaded at 77BD0000h - 77BD7000h
DSI                              loaded at 02900000h - 029F4000h
iphlpapi                         loaded at 76D60000h - 76D79000h
DirectIO                         loaded at 02A20000h - 02D63000h
POWRPROF                         loaded at 74AD0000h - 74AD8000h
OLEAUT32                         loaded at 77120000h - 771AC000h
WININET                          loaded at 771B0000h - 77256000h
Secur32                          loaded at 77FE0000h - 77FF1000h
DBGHELP                          loaded at 59A60000h - 59B01000h

Stack dump analysis:
Address: 0042777Dh, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004C8894h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004C86ACh, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004AD7B4h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 0042C1FAh, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 00413600h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 00413797h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004AA6FCh, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004AAF78h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004AD7B4h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 0049C0B0h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 00427A2Fh, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 0042955Dh, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004C86ACh, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 10002DC2h, location: "shared", loaded at 10000000h - 1002A000h
Symbol: "uCallStackTracker::uCallStackTracker" (+00000032h)
Address: 004AD774h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004CB8DCh, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 0042C95Dh, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 0042CA20h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004AD7A8h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004C8738h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 01502180h, location: "foo_ui_columns", loaded at 014E0000h - 0157A000h
Address: 004AA6ECh, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004CB8DCh, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004AA6F4h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 00497196h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 0042CA3Ah, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 77D48734h, location: "USER32", loaded at 77D40000h - 77DD0000h
Symbol: "GetDC" (+0000006Dh)
Address: 0042CA20h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 0042CA20h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 77D48816h, location: "USER32", loaded at 77D40000h - 77DD0000h
Symbol: "GetDC" (+0000014Fh)
Address: 0042CA20h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 77D70467h, location: "USER32", loaded at 77D40000h - 77DD0000h
Symbol: "DeregisterShellHookWindow" (+000001CFh)
Address: 77D70467h, location: "USER32", loaded at 77D40000h - 77DD0000h
Symbol: "DeregisterShellHookWindow" (+000001CFh)
Address: 77D48830h, location: "USER32", loaded at 77D40000h - 77DD0000h
Symbol: "GetDC" (+00000169h)
Address: 77D489CDh, location: "USER32", loaded at 77D40000h - 77DD0000h
Symbol: "GetWindowLongW" (+00000127h)
Address: 0042CA20h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004C87F8h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004AD668h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 77D70467h, location: "USER32", loaded at 77D40000h - 77DD0000h
Symbol: "DeregisterShellHookWindow" (+000001CFh)
Address: 77D489F0h, location: "USER32", loaded at 77D40000h - 77DD0000h
Symbol: "GetWindowLongW" (+0000014Ah)
Address: 77D48A10h, location: "USER32", loaded at 77D40000h - 77DD0000h
Symbol: "DispatchMessageW" (+0000000Fh)
Address: 0042A497h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 77D4DAEAh, location: "USER32", loaded at 77D40000h - 77DD0000h
Symbol: "DestroyWindow" (+00000000h)
Address: 0042AF1Ah, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 7C9106ABh, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "RtlAllocateHeap" (+000000D7h)
Address: 004AD734h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004AC600h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004AC600h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 00400000h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004AE828h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004CD1A0h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 7C910732h, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "RtlAllocateHeap" (+0000015Eh)
Address: 7C90EE18h, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "strchr" (+00000117h)
Address: 7C911538h, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "wcsncpy" (+00000AA9h)
Address: 7C911596h, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "wcsncpy" (+00000B07h)
Address: 7C9106EBh, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "RtlAllocateHeap" (+00000117h)
Address: 004CD280h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004A18E4h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 7C910570h, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "RtlFreeHeap" (+00000133h)
Address: 7C91056Dh, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "RtlFreeHeap" (+00000130h)
Address: 7C917CB7h, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "RtlReAllocateHeap" (+000002BAh)
Address: 7C917BF5h, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "RtlReAllocateHeap" (+000001F8h)
Address: 7C917BB0h, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "RtlReAllocateHeap" (+000001B3h)
Address: 0044005Ch, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 00420020h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 7C90EE18h, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "strchr" (+00000117h)
Address: 7C910570h, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "RtlFreeHeap" (+00000133h)
Address: 7C91056Dh, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "RtlFreeHeap" (+00000130h)
Address: 1000D469h, location: "shared", loaded at 10000000h - 1002A000h
Address: 1000D469h, location: "shared", loaded at 10000000h - 1002A000h
Address: 10003AB0h, location: "shared", loaded at 10000000h - 1002A000h
Symbol: "t_font_description::g_from_font" (+00000030h)
Address: 10003ABEh, location: "shared", loaded at 10000000h - 1002A000h
Symbol: "t_font_description::g_from_font" (+0000003Eh)
Address: 7C911B09h, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "RtlLogStackBackTrace" (+00000025h)
Address: 004CD210h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 7C911B09h, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "RtlLogStackBackTrace" (+00000025h)
Address: 004CD280h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004813A4h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 7C90EE18h, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "strchr" (+00000117h)
Address: 7C9106F0h, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "RtlAllocateHeap" (+0000011Ch)
Address: 7C9106EBh, location: "ntdll", loaded at 7C900000h - 7C9B0000h
Symbol: "RtlAllocateHeap" (+00000117h)
Address: 0048775Fh, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 01000000h, location: "foo_cdda", loaded at 01000000h - 0102D000h
Address: 00486560h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004AD480h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 10002D77h, location: "shared", loaded at 10000000h - 1002A000h
Symbol: "uPrintCrashInfo_SetDumpPath" (+000000B7h)
Address: 004AD480h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 0049D48Bh, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004AD480h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 0042B0F4h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 00400000h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004CA288h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 00486E75h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 00481239h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 00481233h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004A18E8h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004A0CE5h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 00486560h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 0049D66Dh, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 00485445h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 00400000h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 00486560h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 7C816D4Fh, location: "kernel32", loaded at 7C800000h - 7C8F4000h
Symbol: "RegisterWaitForInputIdle" (+00000049h)
Address: 7C8399F3h, location: "kernel32", loaded at 7C800000h - 7C8F4000h
Symbol: "FindAtomW" (+00000094h)
Address: 7C816D58h, location: "kernel32", loaded at 7C800000h - 7C8F4000h
Symbol: "RegisterWaitForInputIdle" (+00000052h)
Address: 004854AEh, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004B0063h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 00410072h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 004D002Eh, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 0044002Eh, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 0044002Eh, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 00410072h, location: "foobar2000", loaded at 00400000h - 004DC000h
Address: 0044002Eh, location: "foobar2000", loaded at 00400000h - 004DC000h

Version info:
foobar2000 v0.9
UNICODE

Additional info:
FLAC decoder 1.1.0  (foo_input_std)
Default User Interface 0.9acc  (foo_ui_std)
MPEG-4 AAC decoder 2.1  (foo_input_std)
ReplayGain Scanner 2.0  (foo_rgscan)
Kernel Streaming Output 1.2  (foo_out_ks)
Track info panel 0.1  (foo_uie_trackinfo)
CD Audio decoder 2.0  (foo_cdda)
Album Art Panel 0.150  (foo_uie_albumart)
Columns UI 0.1.3 pre-alpha 17v6  (foo_ui_columns)
History 0.2  (foo_history)
Audioscrobbler 1.2.6  (foo_audioscrobbler)
Converter 1.0  (foo_converter)
Crossfeed 0.92  (foo_dsp_crossfeed)
Masstagger 1.5  (foo_masstag)
Album List 3.1.0  (foo_albumlist)
Standard DSP array 1.0  (foo_dsp_std)
Standard input array 1.0  (foo_input_std)


Sorry my first replay wasn't 'indepth'.  Just thought it was best to warn you first.  I LOVE FOO_HISTORY!

foo_history

Reply #22
Quote
new songs now go the the top of the history playlist instead of the bottom, you can rename the playlist now and songs are added only after they've been playing for 20 seconds. Sorry Sergio, like I said I only saw your reply just now - my recommendation for now would be to just stick to foo_history 0.1.

I think i can live with that till there is no back button/hotkey



Part of crash log:
Code: [Select]
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 004276C2h
Access violation, operation: read, address: 00000000h
Call path:
entry=>app_mainloop=>main_thread_callback::callback_run

Null pointers, heh?

foo_history

Reply #23
Okay, bear with me here. I found a reproducible crashing bug, although obviously I can't guarantee it's the same that occured with you. The strange thing is that it only occurs when I compile the plugin in Release mode, which is why I didn't detect it when stress testing the plugin before release... It also makes it harder to diagnose, I still haven't figured out what's causing it. (Most of the time was spent hunting for a crash that didn't occur because I was using the Debug version.)

I really need to sleep now, so I'm leaving with what I've got:

foo_history 0.1
foo_history 0.2, debug mode
foo_history 0.2, release mode

Sorry for causing such a mess. If anybody can tell me what can cause the debug and release version to act in such a weird way, I'd be grateful. If you want to cause the bug, here's how I do it with the release mode version: open foobar (clean install) with history disabled, play song from any playlist, enable history, switch to history playlist, watch foobar die. Same procedure works fine in the debug version.