Keep Queue (foo_keep_queue) (http://www.foobar2000.org/components/view/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 (http://www.qtax.se/files/foo_keep_queue_0.3.5.zip)
Source: src (http://www.qtax.se/files/foo_keep_queue_0.3.5_src.7z)
Version history0.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)
thanks, this should come in handy
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.
@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?
Thanks for the nice work.
Just a small issue.
Queue gets cleared upon clicking Playback/Previous.
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.
My traditional wish - could your plugin keep queue on closing/restarting foobar?
My traditional wish - could your plugin keep queue on closing/restarting foobar?
I'll try to add that feature when I have time.
Nice, thanks you!
Could you add a command "Keep playback queue" in playback submenu of main menu that toggles the functionality on and off?
Thank you, Qtax!
Could you add a command "Keep playback queue" in playback submenu of main menu that toggles the functionality on and off?
+1
foo_keep_queue v0.3.2 updateUpdate 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 (http://www.qtax.se/files/foo_keep_queue_0.3.2.zip)
Source: src (http://www.qtax.se/files/foo_keep_queue_0.3.2_src.7z)
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/;
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.
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.
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.
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?
Repeated steps below and crashed again, this time with:
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:
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.
I have no success to reproduce the crash.
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.)
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.
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.
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.
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.
Okay this seems to be the conflict:
foosion's foo_dbsearch_api_demo.dll (http://foosion.foobar2000.org/components/?id=dbsearch&version=1.4)
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.
Thanks for this! It feels like you read my mind.
-stripe
@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?
No it doesn't crash when keep queue options are unticked before exiting.
Good call.
C.
re. PM -- still crashes.
C.
Carpman's crash happens in the destructor of "[font= "Courier New"]static pfc::list_t<t_playback_queue_item> queue_backup[/font]", because the [font= "Courier New"]t_playback_queue_item.m_handle[/font] is invalid, but not [font= "Courier New"]NULL[/font] - probably points to an already released memory.
That certainly should not happen, [font= "Courier New"]metadb_handle[/font]s are reference counted for a reason. I can only guess, maybe some other component releases a handle too many times? Might be also that one of the callbacks forwarded to [font= "Courier New"]backup_queue()[/font] gets called after cleaning the [font= "Courier New"]queue_backup[/font] in [font= "Courier New"]on_quit()[/font], therefore filling it again, possibly leaving a stray pointer around again. I don't know and it's hard to guess.
So anyway, it might be a good idea to not hold any references to metadb_handles, services or other shared objects till DLL unload, so I'd suggest having maybe a global flag like "[font= "Courier New"]bool g_shutting_down[/font]", which would ensure nothing would be done after [font= "Courier New"]on_quit()[/font] and see if that helped. And perhaps explicitely destroying the [font= "Courier New"]queue_pos[/font] array too, in case there is anything left there.
Additionally, better don't include the 3 MB Debug\foo_keep_queue.ilk and testing fb2k install in your source code package, it's unnecessarily large then. If anything, including a .pdb file for the release would be more useful.
Thanks for the info Yirkha. I'll implement your suggestion. :) (Coding tips and thoughts always appreciated.)
That "source" package was mostly for my self I guess. And I did some clean on the project before packing, but seem it leaves some stuff behind. The next one will be lighter. ^^
foo_keep_queue v0.3.3Update includes:
- Possible component compatibility/bug fix.
Download: foo_keep_queue 0.3.3 (http://www.qtax.se/files/foo_keep_queue_0.3.3.zip)
Source: src (http://www.qtax.se/files/foo_keep_queue_0.3.3_src.7z)
(If some moderator could update the first post with these links it would be nice.)
Thanks for the update Qtax. Works for me! No crashes.
Cheers,
C.
Hey, love this component, have been missing it ever since i switched over from winamp. Just wanted to note that the queue gets cleared when playing a 'next random' track (Playback > Random). Keep up the good work!
Thanx for this, it's useful
(no crash for now, foobar 1.1.1 under Seven x64)
Hey, love this component, have been missing it ever since i switched over from winamp. Just wanted to note that the queue gets cleared when playing a 'next random' track (Playback > Random). Keep up the good work!
Thanks, and same reason I made this, been missing it ever since switching from winamp.
Didn't know about this random clearing feature, will have a look at it.
New version released, 0.3.5. A fix for clearing on random song, reported by lsn.
Now also available in the components repository:
http://www.foobar2000.org/components/view/foo_keep_queue (http://www.foobar2000.org/components/view/foo_keep_queue)
New version released, 0.3.5. A fix for clearing on random song, reported by lsn.
Now also available in the components repository:
http://www.foobar2000.org/components/view/foo_keep_queue (http://www.foobar2000.org/components/view/foo_keep_queue)
Props for the good work! You've got my support
hey
i just downloaded this and i get this message:
Failed to load DLL: foo_keep_queue.dll
Reason: This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem.
tell me how can i help you to help me
Failed to load DLL: foo_keep_queue.dll
Reason: This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem.
Try removing "foo_keep_queue.dll.cfg", it should in foorbars configuration folder. Other than that I have no idea what might cause this.
Thank you for this component. This is something I've wanted for a long time.
Try removing "foo_keep_queue.dll.cfg", it should in foorbars configuration folder. Other than that I have no idea what might cause this.
there's no "foo_keep_queue.dll.cfg" in the config folder
i can try disabling other plugins i have in my components folder, to see if any of them is causing problems. to eliminate them one by one..
i'll let you know if that helped asap.
i can also try using older versions of your plugin.
i just downloaded this and i get this message:
Failed to load DLL: foo_keep_queue.dll
Reason: This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem.
@ pyrotechnician,
probably you have to install a particular version of the Microsoft Visual C++ Redistributable Package. Read here (http://www.hydrogenaudio.org/forums/index.php?showtopic=80259&view=findpost&p=728424) how the Windows event viewer can tell you more. If you are missing another assembly than that mentioned in the post I linked to an Internet search will tell you what runtimes you need.
@ Qtax,
fbuser explained here (http://www.hydrogenaudio.org/forums/index.php?showtopic=83748&view=findpost&p=723493) how to avoid this problem.
EDIT: I am a slave to my poor English.
Wouldn't the message then be:
"This component is missing a required dependency, or was made for different version of foobar2000"
Wouldn't the message then be:
"This component is missing a required dependency, or was made for different version of foobar2000"
Yes for "normal" DLLs, but here a Side-by-side assembly DLL is missing.
... here a Side-by-side assembly DLL is missing.
Never heard about such a thing!
You also won't see that error for MSVC 2010 binaries compiled with dynamic runtime, since they're no longer stored in the Side by Side assemblies folder. (%systemroot%\WinSxS)
excellent plugin i love it.
i have a question... is there a way to see what's on the queue list ?
thanks
foo_queuecontents (http://www.hydrogenaudio.org/forums/index.php?showtopic=73648)
C.
Great plugin. No crashes as yet. One problem i'm having is that there is no menu under Playback.
Using latest f2k and v0.3.5.
I got the following headings:
Replay Gain
Total Play Time
Other
No mention of the queue.
No, you're looking at the File > Preferences menu. You want the main menu at the top:
File Edit View Playback Library Help
Just click (keep queue / keep queue on exit) to toggle on or off.
C.
Ahhh.
Cheers for that.
hey , it is possible to make something like this?
thank you.
(http://img69.imageshack.us/img69/6784/unledzo.th.jpg) (http://imageshack.us/photo/my-images/69/unledzo.jpg/)
Uploaded with ImageShack.us (http://imageshack.us)
demeuts,
foo_queuecontents (http://www.foobar2000.org/components/view/foo_queuecontents)
ty
thank you very much for this component!
i have "keep queue" ck marked but it doesnt keep my list intact. what am i doing wrong?
What are you doing at all? What list? What means intact?
This little component works so far for me - means: starting another track manually doesn't flush the playback queue.
What are you doing at all? What list? What means intact?
This little component works so far for me - means: starting another track manually doesn't flush the playback queue.
that does not work as you are describing for me. it does nothing. it simply flushes as if i did not download it. but if it works for you id like to know what i could be possibly doing wrong. its in the components dialogue box where it belongs/downloaded. i have it marked to keep the list..and that is after i click to see viewer list...
What list do you exactly mean? Without a 3rd-party component the playback queue isn't visible as list in fb2k
Edit:
What is a "viewer list"? I ask because that phrase doesn't exist in fb2k. Do you mean "playlist view"? Note that "playback queue" and "playlist view" are two absolutely different things. Maybe you can upload a screenshot.
i mean when i make a playlist..any list in foobar...then i click on playback and have a check mark in "keep queue"..what other list is there? it has to be a playlist in foobar..im talking about foobar...so i dont know why what list am i using makes any difference. if i have a check mark in "keep gueue"..it should keep it and not flush it. are you telling me there is some magic list that i dont know about that only works with this plug in?
when you/me click on playback it shows playback queue viewer...that is where i am getting viewer list from....i made up viewer list cuz it says queue viewer....thats all.
Do you speak to people in that manner when you are not under favour of anonymity? If you stop your your verbal aggressions and put a little more effort in describing your topics in a more appropriate way then i will be kind enough to explain you what the playback queue which you apparently don't know. Only friendly people get answers!
i mean when i make a playlist..any list in foobar...then i click on playback and have a check mark in "keep queue"..what other list is there? it has to be a playlist [. . .] if i have a check mark in "keep gueue"..it should keep it and not flush it. are you telling me there is some magic list that i dont know about that only works with this plug in?
For the sake of removing all doubt:
A playlist is not the same as
the playback queue.
when you/me click on playback it shows playback queue viewer...that is where i am getting viewer list from
So, are you referring to a playlist, as implied by your previous paragraph, or the queue, as implied by this one?
If you simply want the active playlist to keep all of its contents when you send a file to it from Windows Explorer, then activate the option
Set "enqueue" as the default action (http://wiki.hydrogenaudio.org/index.php?title=Foobar2000%3a%50references:Shell_Integration#Set_.22enqueue.22_as_the_default_action).
Maybe he enqueues files from explorer and the playlist (where the files are added to) is overwritten? Who knows! LessonBad:
...then i click on playback
Good:
... then i click some files in the windows explorer to add them to a foobar2000 playlist
Do you speak to people in that manner when you are not under favour of anonymity? If you stop your your verbal aggressions and put a little more effort in describing your topics in a more appropriate way then i will be kind enough to explain you what the playback queue which you apparently don't know. Only friendly people get answers!
i dont know any other way to describe it. you download the app and put it into the components "box" from preferences or library/configure then i expect it should work? right? what else is there? you say list. what list do you really think i am talking about? im talking about foobar right? so any list is a play-list...i think? and if i click on the playback tab..all the info (for the queue) is right there. its check marked! sooo, that tells me....it should do as it says. i mean tell me..what else is there? and i will attempt to fix it. it seems pretty straight forward..but it aint working for what-ever reason.
and yes...i do talk like i am posting..directly in front of the person/s. there is no other way.
i dont know any other way to describe it.
There are severals way to start playback: clicking files in explorer
or using explorers contextmenu
or pressing playback button from within foobar2000 itself
or clicking a track in a foobar2000 playlist. As long as you don't say it more precise we have to guess what you mean.
you download the app and put it into the components "box" from preferences or library/configure then i expect it should work? right?
Right!
what else is there? you say list. what list do you really think i am talking about? im talking about foobar right? so any list is a play-list...i think?
No, there are many lists: the playlist view is a list but also: facets gives you a list, the library search gives you a list and with a 3rd party component you also can display the mysterious playback queue as a list.
and if i click on the playback tab..all the info (for the queue) is right there.
What is a playback tab? Not existing term in fb2k!
....it should do as it says. i mean tell me..what else is there?
It does as it says. It's just that you have wrong assumptions about what it should do. If you indeed tries to add files to a playlist from windows explorer (as db1989 assumed) then you already heard the solution for your problem. And if you still want to know what there is else so please start to accept that there is indeed something that you didn't know.
Good night!
In that context i think it is appropriate to say that the name of option and comman "enqueue" is not choosen cleverly because in all other parts of fb2k that action is called "add".
"enqueue" indeed can lead to the wrong assumption that it is somehow related to playback queue
Edit
On the other side i have now the feeling that maniacal is fooling us. I guess it is my faul to have wasted my time.
Very useful component. Thanks!
When I right-click, Play from Facets the queue is cleared. The Keep Queue plug-in keeps that from happening when playing from a playlist but not from Facets. I use FB during parties and invite people to queue their own, but my request to never Play is invariably ignored.
Is there a way to prevent this?
Just noticed the website listed in the author's About says, "This domain name has been seized by ICE".
Also, his last reply here was 2 years ago. I hope all is well.
Hiya
This is a great component for me, being used to the way Mediamonkey works after having used it every day for 3 years.
I'd like to report a bug though, hoping you're still active in its development.
Simply put, when I exit Foobar, the queue is kept only partially. I've got the queue list enabled so I can see the current queue, and upon restarting part of it is kept while the first few upcoming tracks are not. The only pattern I can see is that it wipes the tracks until the next album. E.g. if the queue holds the last 5 tracks from album x and then starts with album y, all the tracks from x are gone after restarting.
Thanks for any help you could offer
PS: I'm by no means an idiot, computard, technophobe or otherwise unfit for advanced computer usage, so please don't hold back on being technical/to the point/etc... The only disadvantage I'm at is that I'm new to Foobar (installed it yesterday), but I've been tweaking it all afternoon and evening and just finished cleaning up every last tag and detail of my 35GB collection with lots of Foobar-fu (MM, like other programs, seem to be pretty inconsistent/incorrect with its tag formatting) as well as setting up a nice interface in the window, so I think I'm familiar enough with everything now.
As per the post immediately above your post, I would say it is unlikely this component is in active development.
You might consider rethinking the queue usage. It is not intended to be needed to use foobar2000 and for the most part hidden. That is, you may find you have no need for one when you begin to see that in Foobar2000 a playlist is nothing but a collection of tracks and a queue is generally nothing but the tracks assembled in the current playing playlist. All are equal in foobar2000. There are others that will disagree and thus there are some components that extend the usage of foobar2000 hidden queue.
Search on the subject and you will find plenty of information. Or you can describe why you believe you need the queue in foobar2000 and you may receive more detailed assistance.
It's mostly because I'm used to working in 3 main panels:
-a file browser
-a details list showing the information of the current selection in the browser
-a list of tracks, the tracks that were chosen to be queued up for playing
At first I tried doing it the way that's generally recommended, with a playlist. The problem is that, as far as I can tell, there's no way to attach a specific list to a list viewer. I'd only have a single list viewer and it would constantly show my selection instead of having 2 panels with one showing my selection and the other only ever showing the "now playing" list.
In other words, I'm currently making use of the queue because it has a separate, dedicated viewer.
Edit: in addition, I just tried again and made a Now Playing list. I set it to play, then went browsing through the library again. Upon clicking "send to current playlist", I expected my selection to be added to Now Playing but instead it got added to the "current library selection" list, just duplicating its contents into itself...
The only thing that seems to work is dragging the selection onto the Now Playing list in the manager, but that's a tad inconvenient and slow since I'd also have to open up the Now Playing list again first (to insert the selection at a specific point).
Mediamonkey's "Play now", "Play next" and "Play last" were my best friends, to sum it all up. One list to show the current selection, a second (preferably permanently visible) list that shows the current queue of tracks, set up in such a way that getting tracks from the library view into a specific spot in the queue is quick and simple.
Edit edit: I'll keep experimenting though, maybe I'll happen to come across some setup that suits me.
Hi, all. This component doesn't work as expected - when you add items to queue and then play something from any playlist manually - queue just flushed. It can only save queue on exit and restore it on start.
So, please, anyone, help us with this component and fix it !!! This is very needed.
For me it works as expected with last version of foobar2000.
Do you have enabled the functionality from main menu -> playback? Note thhat "keep queue" and "keep queue on exit" are seperated entries in the main menu.
Do you have enabled the functionality from main menu -> playback? Note thhat "keep queue" and "keep queue on exit" are seperated entries in the main menu.
Yes and queue is flushed no matter what. I use Columns UI.
Can't help until you provide more information like your playlist viewer. To find the culprit you could test if the behaviour remains in defaultui or in columnsui with a different playlist viewer
Can't help until you provide more information like your playlist viewer. To find the culprit you could test if the behaviour remains in defaultui or in columnsui with a different playlist viewer
What is Playlist Viewer ? I have only Columns UI with default "Playlist sidebar".
The bad thing that this issue is not permanent - it can work also.
Does anyone tries to maintain this project using sources shared by Qtax in his first post?
Eh... It was nice to graduate sound engineering but it seems that graduating programming would solve many (or maybe most) of my small sized life problems...
Does anyone tries to maintain this project using sources shared by Qtax in his first post?
Are there some problems with this plugin? If so I could probably look into it.
I see some old posts about issues, but without much details, so I couldn't reproduce.
In case of any issues steps to reproduce the problem with a clean install of foobar2000 would be helpful.
(I haven't had any problems, altho I'm on default UI with not too many plugins.)
In my case the problem looks like this:
I populate queue. Queue works as intended - when i play manually something else from regular playlist, then queue is not flushed. But when I search for something via Album List and play anything from search results - then queue is flushed. I use foobar v 1.2.9 with Default User Interface.
In my case the problem looks like this:
I populate queue. Queue works as intended - when i play manually something else from regular playlist, then queue is not flushed. But when I search for something via Album List and play anything from search results - then queue is flushed. I use foobar v 1.2.9 with Default User Interface.
Could reproduce with 1.3.1, thanks. I'll see what can be done about this when I have some more time.