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

foo_keep_queue

Keep Queue (foo_keep_queue)

Prevents the playback queue from being removed when changing song manually, and saves the queue when restarting foobar2000. Options are found in the playback menu.

Since I found no option for it, I wrote this small component.
Possibly incompatible with some components, but haven't noticed any problems yet.
Only using the SDK API, the solution isn't that pretty, there probably are better ways.
My first component, feedback is welcome.

Tested with foobar2000 v1.1 x86.

/Q/;

Download: foo_keep_queue 0.3.5
Source: src


Version history

0.3.5 2010-11-12
  • Keeps queue from clearing when doing a playback / random.

0.3.3 2010-11-11
  • Possible component compatibility/bug fix.

0.3.2 2010-11-06
  • Fixed compatibility issues with foo_playlist_attributes
  • Fixed: Queue gets cleared upon clicking Playback/Previous
  • Added menu option to keep queue on closing/restarting foobar (Playback -> Keep queue on exit)
  • Added menu option to enable/disable keep queue (Playback -> Keep queue)


foo_keep_queue

Reply #2
I'm glad you came up with this component, potentially very handy:

Seems to have a problem with foo_random_pools and/or foo_playlist_attributes.
-- [foo_random_pools] Playlist updates (adds one new song from various potential criteria) when there's <3 songs in the playlist. However, I had 20 songs, so should act like a normal playlist.
-- [foo_playlist_attributes] Set to remove tracks when played and when skipped (which includes hitting a new song in the middle of playing another).
1) Song A was playing.
2) Added 3 other songs to the queue
3) Clicked on song B which removed Song A (which foo_playlist_attributes would have regarded as skipped).
4) The 3 songs in the queue all changed to a different set of 3 songs, each from the same active playlist from which Songs A and B and the songs which were originally enqueued had come from.

Hope that helps, let me know if you need more info or if I've not been clear.

Cheers,

C.

PC = TAK + LossyWAV  ::  Portable = Opus (130)

foo_keep_queue

Reply #3
@carpman

For some reason, when foo_playlist_attributes's "Remove skipped tracks" removes a track, the queue indices aren't updated. foo_keep_queue receives and handles the on_items_removed callback (by saving the queue after the remove is done), but the indices in those queue items have not been updated. I have no idea why. (SDK bug? Since the API reports that the queue is still there, but gives wrong results.)

One workaround could be to just use the t_playback_queue_item's metadb_handle when readding the queue, but then the playlist doesn't mark which items are queued. So thats no good.

It's possible to update the queue item indices manually every on_items_removed callback. For the moment, I don't like that idea. But could do that if no other solutions are found.

PS: I guess this should go somewhere in the development forum?

foo_keep_queue

Reply #4
Thanks for the nice work.

Just a small issue.

Queue gets cleared upon clicking Playback/Previous.

foo_keep_queue

Reply #5
Queue gets cleared upon clicking Playback/Previous.

I didn't know about this feature of foobar. Will have a look at it.

In the meantime, I have fixed the compatibility issue with playlist attributes, and possibly other components. Will upload it later.

foo_keep_queue

Reply #6
My traditional wish - could your plugin keep queue on closing/restarting foobar?

foo_keep_queue

Reply #7
My traditional wish - could your plugin keep queue on closing/restarting foobar?

I'll try to add that feature when I have time.

foo_keep_queue

Reply #8
Nice, thanks you!
Could you add a command "Keep playback queue" in playback submenu of main menu that toggles the functionality on and off?


 

foo_keep_queue

Reply #10
foo_keep_queue v0.3.2 update

Update includes:
  • Fixed compatibility issues with foo_playlist_attributes
  • Fixed: Queue gets cleared upon clicking Playback/Previous
  • Added menu option to keep queue on closing/restarting foobar (Playback -> Keep queue on exit)
  • Added menu option to enable/disable keep queue (Playback -> Keep queue)


Download: foo_keep_queue 0.3.2
Source: src

Thanks everyone for your feedback.

Too bad I can't update my first post in here to change the links to the new version. Is there anything I can do to update the first post?

/Q/;

foo_keep_queue

Reply #11
Thanks Qtax for the quick fix. 

Only super-users i.e. admins, mods, developers can edit their posts after the restricted timeline.

You could have a chat with boys at the top for maintaining the original post.

foo_keep_queue

Reply #12
Thanks for the update Qtax. Seems to work well with playlist attributes!

However, got a crash on exiting fb2k while playing queued item:
Both "keep queue" and "keep queue on exit" were ticked.

Code: [Select]
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 01363476h
Access violation, operation: read, address: 03141528h

Call path not available.

Code bytes (01363476h):
01363436h:  00 00 00 8B 4C 24 04 8B 11 8B 82 D4 00 00 00 56
01363446h:  FF D0 C7 44 24 10 FF FF FF FF 8B 4C 24 04 8B 11
01363456h:  8B 02 FF D0 8B 4C 24 08 64 89 0D 00 00 00 00 59
01363466h:  83 C4 10 C3 CC CC CC CC CC CC 8B 08 85 C9 74 06
01363476h:  8B 11 8B 02 FF E0 C3 CC CC CC 68 84 78 36 01 56
01363486h:  C7 06 00 00 00 00 E8 FE 11 00 00 83 C4 08 8B C6
01363496h:  C3 CC CC CC CC CC CC CC CC CC 83 EC 0C 85 C0 75
013634A6h:  10 51 FF 15 D0 70 36 01 83 C4 04 33 C0 83 C4 0C

Stack (0012FC9Ch):
0012FC7Ch:  0012DFD8 7C9C76F0 77F643DD 7C9C76F0
0012FC8Ch:  00000004 00000000 0012D4E4 00000000
0012FC9Ch:  01362A67 00000000 0136B058 0136285F
0012FCACh:  0136657E 01383C58 78543607 0136584F
0012FCBCh:  01366570 00000001 00000000 01360000
0012FCCCh:  01366570 00000000 0012FD18 0136596E
0012FCDCh:  01383C9C 01383C48 01383C48 342AB1E9
0012FCECh:  00000000 0012FD38 00254120 C0000005
0012FCFCh:  00000001 0012FCE8 0012F890 0012FDB8
0012FD0Ch:  01365B85 350EDC71 00000001 0012FD24
0012FD1Ch:  013659EB 01360000 0012FD44 7C9011A7
0012FD2Ch:  01360000 00000000 00000001 00254120
0012FD3Ch:  00000000 00253FE8 0012FDC8 7C923F31
0012FD4Ch:  013659CD 01360000 00000000 00000001
0012FD5Ch:  00000000 7C90E88E 00000000 00000014
0012FD6Ch:  00000001 00000000 001632E8 00000000
0012FD7Ch:  003C0000 003C3BA8 00000202 0012FDAC
0012FD8Ch:  7C910945 7C91094E 003C4BBC 7C91393D
0012FD9Ch:  00253FE8 7FFDF000 7FFDB000 013659CD
0012FDACh:  00254120 0012FD5C 0012F8C0 0012FEAC

Registers:
EAX: 01383EC0, EBX: 0136B6D8, ECX: 03141528, EDX: 01383EC0
ESI: 01383EC0, EDI: 00000002, EBP: 0012FCD4, ESP: 0012FC9C

Crash location:
Module: foo_keep_queue
Offset: 3476h

Loaded modules:
foobar2000                      loaded at 00400000h - 005E5000h
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 - 77F56000h
USER32                          loaded at 77D40000h - 77DD0000h
SHLWAPI                          loaded at 77F60000h - 77FD6000h
DSOUND                          loaded at 73F10000h - 73F6C000h
ole32                            loaded at 774E0000h - 7761C000h
WINMM                            loaded at 76B40000h - 76B6D000h
VERSION                          loaded at 77C00000h - 77C08000h
UxTheme                          loaded at 5AD70000h - 5ADA8000h
SHELL32                          loaded at 7C9C0000h - 7D1D4000h
shared                          loaded at 10000000h - 1002A000h
imagehlp                        loaded at 76C90000h - 76CB8000h
dbghelp                          loaded at 59A60000h - 59B01000h
COMDLG32                        loaded at 763B0000h - 763F9000h
zlib1                            loaded at 5A4C0000h - 5A4D4000h
lgscroll                        loaded at 10100000h - 1010F000h
MSVCR80                          loaded at 78130000h - 781CB000h
MSVCP80                          loaded at 7C420000h - 7C4A7000h
NTMARTA                          loaded at 77690000h - 776B1000h
WLDAP32                          loaded at 76F60000h - 76F8C000h
SAMLIB                          loaded at 71BF0000h - 71C03000h
WINTRUST                        loaded at 76C30000h - 76C5E000h
CRYPT32                          loaded at 77A80000h - 77B14000h
MSASN1                          loaded at 77B20000h - 77B32000h
wdmaud                          loaded at 72D20000h - 72D29000h
msacm32                          loaded at 72D10000h - 72D18000h
MSACM32                          loaded at 77BE0000h - 77BF5000h
midimap                          loaded at 77BD0000h - 77BD7000h
foo_converter                    loaded at 00EF0000h - 00F6B000h
foo_masstag                      loaded at 00F90000h - 00FE4000h
foo_random_pools                loaded at 01010000h - 01048000h
foo_navigator                    loaded at 01070000h - 010A4000h
foo_ui_columns                  loaded at 010D0000h - 0125C000h
gdiplus                          loaded at 4EC50000h - 4EDF3000h
USP10                            loaded at 74D90000h - 74DFB000h
foo_dsp_std                      loaded at 012A0000h - 012E8000h
foo_dbsearch_api_demo            loaded at 01310000h - 01331000h
foo_keep_queue                  loaded at 01360000h - 0136F000h
MSVCR90                          loaded at 78520000h - 785C3000h
foo_verifier                    loaded at 01390000h - 013D3000h
foo_input_tak                    loaded at 01400000h - 01447000h
tak_deco_lib                    loaded at 01460000h - 0147C000h
oleaut32                        loaded at 77120000h - 771AC000h
foo_quicktag                    loaded at 01590000h - 015C4000h
foo_dsp_crossfader              loaded at 015F0000h - 01622000h
foo_scheduler                    loaded at 01650000h - 0172E000h
POWRPROF                        loaded at 74AD0000h - 74AD8000h
foo_input_std                    loaded at 01750000h - 018A4000h
foo_rgscan                      loaded at 018D0000h - 0191D000h
foo_playcount                    loaded at 01940000h - 0197B000h
foo_playlist_attributes          loaded at 019A0000h - 019E4000h
foo_abx                          loaded at 01A10000h - 01A42000h
foo_unpack                      loaded at 01A70000h - 01A9E000h
foo_dsp_silence                  loaded at 01AC0000h - 01AEC000h
foo_queuecontents                loaded at 01B10000h - 01BCD000h
foo_np_simple                    loaded at 01BF0000h - 01C1E000h
foo_cdartdisplay                loaded at 01C40000h - 01C78000h
foo_ui_std                      loaded at 01CA0000h - 01DB8000h
MSIMG32                          loaded at 76380000h - 76385000h
foo_cdda                        loaded at 01DE0000h - 01E2E000h
foo_dbsearch                    loaded at 01E50000h - 01EC0000h
foo_popupplus                    loaded at 01EE0000h - 01F40000h
RICHED20                        loaded at 74E30000h - 74E9C000h
foo_preview                      loaded at 01F50000h - 01F72000h
foo_fileops                      loaded at 01F90000h - 01FD6000h
foo_utils                        loaded at 02000000h - 02044000h
foo_browser                      loaded at 02070000h - 020A9000h
foo_dynra                        loaded at 020D0000h - 020F2000h
foo_uie_vis_channel_spectrum    loaded at 02110000h - 0213B000h
foo_talktome                    loaded at 02160000h - 0218A000h
foo_albumlist                    loaded at 021B0000h - 0220D000h
foo_shutdown                    loaded at 02230000h - 02249000h
foo_jesus                        loaded at 02270000h - 0228A000h
CLBCATQ                          loaded at 76FD0000h - 7704F000h
COMRes                          loaded at 77050000h - 77115000h
KsUser                          loaded at 73EE0000h - 73EE4000h
Mmm                              loaded at 06030000h - 06055000h
PSAPI                            loaded at 76BF0000h - 76BFB000h

Stack dump analysis:
Address: 01362A67h (foo_keep_queue+2A67h)
Address: 0136B058h (foo_keep_queue+B058h)
Address: 0136285Fh (foo_keep_queue+285Fh)
Address: 0136657Eh (foo_keep_queue+657Eh)
Address: 78543607h (MSVCR90+23607h), symbol: "decode_pointer" (+0h)
Address: 0136584Fh (foo_keep_queue+584Fh)
Address: 01366570h (foo_keep_queue+6570h)
Address: 01360000h (foo_keep_queue+0h)
Address: 01366570h (foo_keep_queue+6570h)
Address: 0136596Eh (foo_keep_queue+596Eh)
Address: 01365B85h (foo_keep_queue+5B85h)
Address: 013659EBh (foo_keep_queue+59EBh)
Address: 01360000h (foo_keep_queue+0h)
Address: 7C9011A7h (ntdll+11A7h), symbol: "LdrInitializeThunk" (+29h)
Address: 01360000h (foo_keep_queue+0h)
Address: 7C923F31h (ntdll+23F31h), symbol: "LdrShutdownProcess" (+142h)
Address: 013659CDh (foo_keep_queue+59CDh)
Address: 01360000h (foo_keep_queue+0h)
Address: 7C90E88Eh (ntdll+E88Eh), symbol: "ZwTerminateProcess" (+0h)
Address: 7C910945h (ntdll+10945h), symbol: "RtlAcquirePebLock" (+28h)
Address: 7C91094Eh (ntdll+1094Eh), symbol: "RtlAcquirePebLock" (+31h)
Address: 7C91393Dh (ntdll+1393Dh), symbol: "RtlDecodePointer" (+0h)
Address: 013659CDh (foo_keep_queue+59CDh)
Address: 7C90EE18h (ntdll+EE18h), symbol: "strchr" (+117h)
Address: 7C923E98h (ntdll+23E98h), symbol: "LdrShutdownProcess" (+A9h)
Address: 7C81CA3Eh (kernel32+1CA3Eh), symbol: "IsValidLocale" (+8EBh)
Address: 7C91393Dh (ntdll+1393Dh), symbol: "RtlDecodePointer" (+0h)
Address: 7C910ECAh (ntdll+10ECAh), symbol: "wcsncpy" (+43Bh)
Address: 7C910E91h (ntdll+10E91h), symbol: "wcsncpy" (+402h)
Address: 7C91056Dh (ntdll+1056Dh), symbol: "RtlFreeHeap" (+130h)
Address: 7C91393Dh (ntdll+1393Dh), symbol: "RtlDecodePointer" (+0h)
Address: 7C91056Dh (ntdll+1056Dh), symbol: "RtlFreeHeap" (+130h)
Address: 7C90EE18h (ntdll+EE18h), symbol: "strchr" (+117h)
Address: 7C910570h (ntdll+10570h), symbol: "RtlFreeHeap" (+133h)
Address: 7C91056Dh (ntdll+1056Dh), symbol: "RtlFreeHeap" (+130h)
Address: 7C911962h (ntdll+11962h), symbol: "RtlDeleteCriticalSection" (+D8h)
Address: 7C911993h (ntdll+11993h), symbol: "RtlDeleteCriticalSection" (+109h)
Address: 7C97C080h (ntdll+7C080h)
Address: 005A14C8h (foobar2000+1A14C8h)
Address: 0053DA4Dh (foobar2000+13DA4Dh)
Address: 005A2270h (foobar2000+1A2270h)
Address: 0053C46Dh (foobar2000+13C46Dh)
Address: 0053DA4Dh (foobar2000+13DA4Dh)
Address: 7C8399F3h (kernel32+399F3h), symbol: "FindAtomW" (+94h)
Address: 7C81CA78h (kernel32+1CA78h), symbol: "IsValidLocale" (+925h)
Address: 7C81CAB6h (kernel32+1CAB6h), symbol: "ExitProcess" (+14h)
Address: 77E8F3B0h (RPCRT4+1F3B0h), symbol: "UuidCreateSequential" (+7E8h)
Address: 0053728Eh (foobar2000+13728Eh)
Address: 005374BAh (foobar2000+1374BAh)
Address: 005601E4h (foobar2000+1601E4h)
Address: 005601DCh (foobar2000+1601DCh)
Address: 00537A90h (foobar2000+137A90h)
Address: 005374E0h (foobar2000+1374E0h)
Address: 005350F0h (foobar2000+1350F0h)
Address: 00537A90h (foobar2000+137A90h)
Address: 7C816D4Fh (kernel32+16D4Fh), symbol: "RegisterWaitForInputIdle" (+49h)
Address: 7C8399F3h (kernel32+399F3h), symbol: "FindAtomW" (+94h)
Address: 7C816D58h (kernel32+16D58h), symbol: "RegisterWaitForInputIdle" (+52h)
Address: 00535135h (foobar2000+135135h)
Address: 0057005Ch (foobar2000+17005Ch)
Address: 004E0049h (foobar2000+E0049h)
Address: 004F0044h (foobar2000+F0044h)
Address: 00530057h (foobar2000+130057h)
Address: 0057005Ch (foobar2000+17005Ch)
Address: 005C0073h (foobar2000+1C0073h)
Address: 004B0063h (foobar2000+B0063h)
Address: 00530022h (foobar2000+130022h)
Address: 00500069h (foobar2000+100069h)
Address: 00500069h (foobar2000+100069h)
Address: 00410072h (foobar2000+10072h)
Address: 00540079h (foobar2000+140079h)
Address: 0057005Ch (foobar2000+17005Ch)
Address: 004E0049h (foobar2000+E0049h)
Address: 004F0044h (foobar2000+F0044h)
Address: 00530057h (foobar2000+130057h)
Address: 0057005Ch (foobar2000+17005Ch)
Address: 005C0053h (foobar2000+1C0053h)
Address: 005C0073h (foobar2000+1C0073h)
Address: 00500069h (foobar2000+100069h)
Address: 004D002Eh (foobar2000+D002Eh)
Address: 00500069h (foobar2000+100069h)
Address: 0044002Eh (foobar2000+4002Eh)
Address: 0044002Eh (foobar2000+4002Eh)
Address: 00410072h (foobar2000+10072h)
Address: 00540079h (foobar2000+140079h)
Address: 0057005Ch (foobar2000+17005Ch)
Address: 004E0049h (foobar2000+E0049h)
Address: 004F0044h (foobar2000+F0044h)
Address: 00530057h (foobar2000+130057h)
Address: 0057005Ch (foobar2000+17005Ch)
Address: 005C0053h (foobar2000+1C0053h)
Address: 005C0073h (foobar2000+1C0073h)
Address: 0044002Eh (foobar2000+4002Eh)
Address: 004D002Eh (foobar2000+D002Eh)
Address: 0044002Eh (foobar2000+4002Eh)
Address: 0052002Eh (foobar2000+12002Eh)
Address: 0052002Eh (foobar2000+12002Eh)
Address: 00410072h (foobar2000+10072h)
Address: 00540079h (foobar2000+140079h)
Address: 0057005Ch (foobar2000+17005Ch)
Address: 004E0049h (foobar2000+E0049h)
Address: 004F0044h (foobar2000+F0044h)
Address: 00530057h (foobar2000+130057h)
Address: 0057005Ch (foobar2000+17005Ch)
Address: 005C0053h (foobar2000+1C0053h)
Address: 005C0073h (foobar2000+1C0073h)
Address: 0052002Eh (foobar2000+12002Eh)
Address: 004D002Eh (foobar2000+D002Eh)

Environment:
App: foobar2000 v1.1
OS: Windows 5.1.2600 Service Pack 2 x86
CPU: AMD Athlon™ 64 Processor 3500+, features: 3DNow!ex MMX SSE SSE2 SSE3
Audio: M-Audio Delta AP Multi; M-Audio Delta AP 1/2; M-Audio Delta AP S/PDIF
UI: Columns UI 0.3.8.6

Components:
Core (2010-08-21 11:42:56 UTC)
    foobar2000 core 1.1
foo_abx.dll (2009-06-07 13:25:26 UTC)
    ABX Comparator 1.3.4
foo_albumlist.dll (2010-08-21 11:41:12 UTC)
    Album List 4.5
foo_browser.dll (2007-03-23 15:53:12 UTC)
    Music Browser 1.2.3b [Mar 23 2007 - 16:52:56]
foo_cdartdisplay.dll (2010-04-23 08:23:10 UTC)
    CD Art Display Interface 2.0.1 release 100
foo_cdda.dll (2010-08-21 11:41:04 UTC)
    CD Audio Decoder 3.0
foo_converter.dll (2010-08-21 11:40:42 UTC)
    Converter 1.5
foo_dbsearch.dll (2007-01-25 20:58:48 UTC)
    Database Search 1.4
foo_dbsearch_api_demo.dll (2007-01-22 12:01:38 UTC)
    Database Search Toolbar Demo 1.0
foo_dsp_crossfader.dll (2010-01-13 20:46:10 UTC)
    Gapless Crossfader 1.3.4.1
foo_dsp_silence.dll (2009-08-10 00:32:54 UTC)
    Post-track silence 0.0.3
foo_dsp_std.dll (2010-08-21 11:41:12 UTC)
    Standard DSP Array 1.0
foo_dynra.dll (2010-09-23 16:41:44 UTC)
    Dynamic Rating 0 beta
foo_fileops.dll (2010-08-21 11:39:48 UTC)
    File Operations 2.1.3
foo_input_std.dll (2010-08-21 11:40:42 UTC)
    Standard Input Array 1.0
foo_input_tak.dll (2007-05-13 17:54:34 UTC)
    TAK Decoder 0.3.2
foo_jesus.dll (2010-09-23 01:34:06 UTC)
    Autosave & Autobackup 10
foo_keep_queue.dll (2010-11-06 19:56:22 UTC)
    Keep Queue 0.3.2
foo_masstag.dll (2009-09-18 09:01:36 UTC)
    Masstagger 1.8.4
foo_navigator.dll (2010-02-20 01:13:14 UTC)
    Navigator 0.64
foo_np_simple.dll (2009-01-10 17:11:52 UTC)
    Now Playing Simple 1.8
foo_playcount.dll (2010-08-24 08:50:04 UTC)
    Playback Statistics 3.0
foo_playlist_attributes.dll (2009-11-16 19:33:46 UTC)
    Playlist Attributes 0.2.2 [Nov 16 2009 - 20:33:31]
foo_popupplus.dll (2007-09-26 18:26:56 UTC)
    PopUp Plus 20070926
foo_preview.dll (2008-12-22 20:41:12 UTC)
    Preview 1.4
foo_queuecontents.dll (2010-05-20 09:18:58 UTC)
    Queue Contents Editor 0.3.9
foo_quicktag.dll (2010-09-01 09:15:08 UTC)
    Quick Tagger 1.0.3
foo_random_pools.dll (2010-04-05 08:00:44 UTC)
    Random Pools 0.0.2.1
foo_rgscan.dll (2010-08-21 11:40:44 UTC)
    ReplayGain Scanner 2.0.9
foo_scheduler.dll (2010-06-10 17:03:54 UTC)
    Scheduler 4.04
foo_shutdown.dll (2006-12-06 07:59:26 UTC)
    Foo Shutdown 0.9.3
foo_talktome.dll (2010-07-20 04:58:42 UTC)
    TalkToMe 0.6
foo_ui_columns.dll (2010-05-03 13:38:34 UTC)
    Columns UI 0.3.8.6
foo_ui_std.dll (2010-08-21 11:41:10 UTC)
    Default User Interface 0.9.5
foo_uie_vis_channel_spectrum.dll (2007-12-08 14:17:18 UTC)
    Channel Spectrum panel 0.12
foo_unpack.dll (2010-08-21 11:40:10 UTC)
    ZIP/GZIP/RAR Reader 1.6
foo_utils.dll (2008-02-08 22:26:58 UTC)
    Playlist Tools 0.6.2 beta 6
foo_verifier.dll (2009-10-05 10:39:20 UTC)
    File Integrity Verifier 1.1

Recent events:
"Rate" : 0:00.034082
"Recent" : 0:00.412833
Startup time : 0:05.705768
Dynamic rating recalculation took 3.6332115 s
Location not parsable: "D:\20_library\00_audio\10_music\pop\p_moby_harbour_feat_sineadoconnor.mp3"
Autobackup: Backed up 48 items to autobackup.20101106-195322.zip
Opening track for playback: "D:\20_library\00_audio\10_music\p_collections_zzz\p_yousaypartywesaydie_2005_hitthefloor\p_yousaypartywesaydie_jazzcrabs_lw000.tak"
Opening track for playback: "D:\20_library\00_audio\10_music\pop\p_youngn_tillthemorningcomes.mp3"
Shutting down...

Same scenario as my last post.
Queued 3 items, this time it worked: queued items were correct and everything worked as expected.
Then decided to see if remembered queue on exit. So closed fb2k while playing first queued item.
This caused the above crash.

On re-opening fb2k, everything was working as it should.
The queue had been remembered and the song position was correct.
So the crash is the only problem. Otherwise everything seemed to be working as expected.

Hope this helps.

C.
PC = TAK + LossyWAV  ::  Portable = Opus (130)

foo_keep_queue

Reply #13
However, got a crash on exiting fb2k while playing queued item

Can't reproduce the crash. And don't know how to get anything interesting out of that report. :/
Can you reproduce it all the time?

foo_keep_queue

Reply #14
Repeated steps below and crashed again, this time with:

Quote
Runtime Error!
address of foobar2000.exe

R6025
- pure virtual function call


Steps to reproduce:

1) Have a playlist with say 10 items:
2) Play a song from that playlist
3) Queue up 3 other songs
4) Then click an another song (not in the queue), and let it play
5) Let it get around to playing the first song in the queue
6) Exit foobar2000 while that song is playing.

I'm just about to try this in another playlist with different attributes.

Yep, same result this time fb2k outputted another crash dump:

Code: [Select]
Registers:
EAX: 01D83E60, EBX: 01D6B6D8, ECX: 02CF62E8, EDX: 01D83E60
ESI: 01D83E60, EDI: 00000002, EBP: 0012FCD4, ESP: 0012FC9C

Crash location:
Module: foo_keep_queue
Offset: 3476h


EDIT: Just ran it again this time instead of random playback mode, I changed it to shuffle tracks, same result.
i.e. it's 100% repeatable.

EDIT2: This also happens if "keep queue on exit" is unticked.

C.
PC = TAK + LossyWAV  ::  Portable = Opus (130)

foo_keep_queue

Reply #15
I have no success to reproduce the crash.

foo_keep_queue

Reply #16
Steps to reproduce:

1) Have a playlist with say 10 items:
2) Play a song from that playlist
3) Queue up 3 other songs
4) Then click an another song (not in the queue), and let it play
5) Let it get around to playing the first song in the queue
6) Exit foobar2000 while that song is playing.

[...]

EDIT: Just ran it again this time instead of random playback mode, I changed it to shuffle tracks, same result.
i.e. it's 100% repeatable.

EDIT2: This also happens if "keep queue on exit" is unticked.

Tried several times, with all kinds of settings, but cant reproduce it. Possibly one of your components needed to make it happen? Can you try with a clean foobar2k? (Easy to test when installed in portable mode.)

foo_keep_queue

Reply #17
When you say a clean install, do you mean without Columns UI?
EDIT: I think it's worth waiting until someone who can read these crash reports gives some feedback.

C.
PC = TAK + LossyWAV  ::  Portable = Opus (130)

foo_keep_queue

Reply #18
When you say a clean install, do you mean without Columns UI?

I guess. If you want to try different configurations you can just download, run the installer and choose to install in portable mode (somewhere else than your current installation). Then play around with that install and see what components don't like each other. That way you don't need to touch your current configuration.

foo_keep_queue

Reply #19
It's not a problem with a clean install with only Columns UI and foo_keep_queue. So clearly foo_keep_queue has a problem with one or more of the installed components.

EDIT1: The crash report points at foo_keep_queue, not any of the other components.
Quote
Crash location:
Module: foo_keep_queue

Further, it seems to crash any time you exit foobar2000 while playing a song when there are queued items.

Hope that helps.

EDIT2:
Then play around with that install and see what components don't like each other.

That would be like debugging foo_keep_queue? That's your job.   

C.
PC = TAK + LossyWAV  ::  Portable = Opus (130)

foo_keep_queue

Reply #20
Okay this seems to be the conflict:
foosion's foo_dbsearch_api_demo.dll

Removed it and I no longer got the crash.

C.

EDIT: However, I like that component, so it would be very nice if you could get to the bottom of why these two components don't like oneanother.
PC = TAK + LossyWAV  ::  Portable = Opus (130)

foo_keep_queue

Reply #21
Thanks for this! It feels like you read my mind.

-stripe

foo_keep_queue

Reply #22
@carpman,
Cant reproduce the bug with that component installed either. Possibly more components involved?

Also, does the crash happen if you do all the same steps but uncheck all of the keep queue options just before exiting foobar?

foo_keep_queue

Reply #23
No it doesn't crash when keep queue options are unticked before exiting.
Good call.

C.
PC = TAK + LossyWAV  ::  Portable = Opus (130)

foo_keep_queue

Reply #24
re. PM -- still crashes.

C.
PC = TAK + LossyWAV  ::  Portable = Opus (130)