Help - Search - Members - Calendar
Full Version: foo_playlist_tree
Hydrogenaudio Forums > Hosted Forums > foobar2000 > 3rd Party Plugins - (fb2k)
Pages: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37
cwbowron
QUOTE(marcomk @ Dec 9 2004, 09:58 PM)
As long as there are so many strings around written for Albumlist, it would be very useful if they could give the same results also on Playlisttree.  Is it difficult to remove all these "All" folders?
Thanks again  wink.gif
*


Fixed it. Should work more like you want it to now.

QUOTE(marcomk @ Dec 9 2004, 09:58 PM)
Another small request (I hope). Is it possible to add to the query an optional limit for the items to be displayed, like in extended playlist generator (eg. Limit to [nn] tracks)?
In this way, it will be possible to create dynamic folders such as 100 most played, 100 top rated, 50 last played, etc.

*


Added an optional limit to the number of items returned on a query.

I also fixed the "New Folder" problem mentioned elsewhere.
Desman
Another charset problem... When I drag an item from the tree to the playlist it won't play it if the directory where it's stored has non-ASCII name. It turns out that Unicode string gets messed up somewhere, so garbage goes to playlist instead of Unicode folder name. And the same stuff gets displayed in the tree when I edit Cyrillic folder name (changes to correct display after refresh). ASCII is fine, though.

Damn, it's a pity that I quit C/C++ programming 10 years ago... Would love to help in development. Anyway, I only can thank you again for the plugin!

EDIT: Spelling
cwbowron
QUOTE(Desman @ Dec 10 2004, 08:19 AM)
Another charset problem... When I drag an item from the tree to the playlist it won't play it if the directory where it's stored has non-ASCII name. It turns out that Unicode string gets messed up somewhere, so garbage goes to playlist instead of Unicode folder name. And the same stuff gets displayed in the tree when I edit Cyrillic folder name (changes to correct display after refresh). ASCII is fine, though.
*


Drag and drop to playlist unicode support has been improved. It should work now.

Also fixed should be the garbage characters when rearranging trees and editting labels.
marcomk
QUOTE(cwbowron @ Dec 10 2004, 06:15 AM)
QUOTE(marcomk @ Dec 9 2004, 09:58 PM)
As long as there are so many strings around written for Albumlist, it would be very useful if they could give the same results also on Playlisttree.  Is it difficult to remove all these "All" folders?
Thanks again  wink.gif
*


Fixed it. Should work more like you want it to now.


Thanks, much better now. There are still some little inconsistencies between the two plugins, in certain cases I get double folders with Playlisttree... I still can't understand where is the problem, as soon as I figure it out I will post a comment. smile.gif

QUOTE(cwbowron @ Dec 10 2004, 06:15 AM)
QUOTE(marcomk @ Dec 9 2004, 09:58 PM)
Another small request (I hope). Is it possible to add to the query an optional limit for the items to be displayed, like in extended playlist generator (eg. Limit to [nn] tracks)?
In this way, it will be possible to create dynamic folders such as 100 most played, 100 top rated, 50 last played, etc.

*


Added an optional limit to the number of items returned on a query.
*


That's great. smile.gif However, I realised you also need a "sort criteria" field in the dynamic folder window if you what to create something like "100 Top Rated" folder (In playlist generator: Query=1 Sort criteria= %rating% Display=as you like it Limit to =100 tracks.)

You're working at an amazing rate. I can't believe it. wink.gif
Gemini
Is it possible to send the songs to a manually selected playlist (like in db list)? I'd rather have a playlist specifically made for playing the songs I select, rather than having a new playlist each time.
marcomk
I realised it is still not possible to access to other plugins via context menu if you right click on a folder (and not on a single file). For example, you can't diplay the properties for a group of files, access to masstagger or freedb. You probably already planned to make it possible eventually, just a little reminder. Take you time, anyway wink.gif
cwbowron
QUOTE(Gemini @ Dec 10 2004, 12:06 PM)
Is it possible to send the songs to a manually selected playlist (like in db list)? I'd rather have a playlist specifically made for playing the songs I select, rather than having a new playlist each time.
*


I'll add that soon as right click menu option, but in the mean time an alternative would be to set the double click action to create new playlist.
marcomk
QUOTE(marcomk @ Dec 10 2004, 05:54 PM)
There are still some little inconsistencies between the two plugins, in certain cases I get double folders with Playlisttree... I still can't understand where is the problem, as soon as I figure it out I will post a comment.  smile.gif


Ok, I think I understood where the problem is with display string management.

Consider this display string. (Nothing really useful, just an example):

$if(%singletrack%,%title%,%album%)|$if(%singletrack%,,%title%)

If you insert this string in Albumlist, you'll have:

....+--Album1
....+--Album2
.....---Singletrack1
.....---Singletrack2

In Playlist tree, you'll have:

....+--Album1
....+--Album2
....+--Singletrack1
.............|----Singletrack1
....+--Singletrack2
.............|----Singletrack2

An extra folder is created for singletracks, although the second "if" in the string shouldn't have had any effect on singletracks.

Thanks very much again and again. wink.gif
cwbowron
QUOTE(marcomk @ Dec 10 2004, 12:18 PM)
I realised it is still not possible to access to other plugins via context  menu if you right click on a folder (and not on a single file). For example, you can't diplay the properties for a group of files, access to masstagger or freedb.  You probably already planned to make it possible eventually, just a little reminder. Take you time, anyway  wink.gif
*


In albumlist, each folder contains a list of all the entries that are located inside the folder in the form of a metadb_handle_list. In playlist tree only leaf nodes contains the handles. The presence of these lists are what create the menu options in the right click menu. I would either have to 1) create a list of handles at each level of the tree for all the handles in tree and subtrees which is a pain for adding and removing items and creates more storage, or 2) create this list on the fly when the item is right clicked. This could potentially take a bit of time to do if you were to right click on a large folder.

Long story short. It might be a while. I would just suggest creating a new playlist and sending the files you want to that if you need to do any freedb'ing or masstagging...

I'm thinking what I might do is add a Ctl-Right Click option that does option 2) above. that way we dont have to generate these playlists unless you really want to do a big playlist option.
cwbowron
QUOTE(marcomk @ Dec 10 2004, 11:54 AM)
That's great.  smile.gif  However, I realised you also need a "sort criteria" field in the dynamic folder window if you what to create something like "100 Top Rated" folder  (In playlist generator: Query=1  Sort criteria= %rating%  Display=as you like it  Limit to =100 tracks.)
*


If I were to make it so that it sorted based on the query string would that be sufficient? that way it would not require any more variables and it should still be able to work... that way you could do "[%rating%]" as your query string and it could still take the top 100 or whatever.
marcomk
QUOTE(cwbowron @ Dec 10 2004, 07:36 PM)
If I were to make it so that it sorted based on the query string would that be sufficient?  that way it would not require any more variables and it should still be able to work... that way you could do "[%rating%]" as your query string and it could still take the top 100 or whatever.
*


Well, yes! It would work for 100 Top rated, 100 most played, 100 last played, etc. By now I can't think of any meaingful dynamic playlist for which it wouldn't work.... wink.gif
marcomk
QUOTE(cwbowron @ Dec 10 2004, 07:36 PM)
If I were to make it so that it sorted based on the query string would that be sufficient?  that way it would not require any more variables and it should still be able to work... that way you could do "[%rating%]" as your query string and it could still take the top 100 or whatever.
*


Well, yes! It would work for 100 Top rated, 100 most played, 100 last played, etc. By now I can't think of any meaingful dynamic playlist for which it wouldn't work.... Maybe you just need a "Reverse sorting" checkbox like in Extended Playlist generator if you want to have Least Played, etc. wink.gif

EDIT: sorry for the double post
NEMO7538
the plugin seems very promising, however it has crashed three times (the last time it suddenly crashed was when I changed the "line" color). Also it refuses to handle this (long) string copied from my albumlist panel formatting into the "edit display" of a dynamic folder.

I would also suggest an option :
1/ to remove the track level from the tree
2/ to "autosend to a playlist" (like abum list panel)

Keep up the good work !

CODE

$directory(%_path%,2)|$if($strcmp($strstr($directory(%_path%,1),%artist%),1)
,$if($strcmp($strstr(%artist%,'('),0),%artist%,
$cut(%artist%,$sub($strstr(%artist%,'('),2))),' Various')|
$if($strcmp($strstr($replace(%album%,Vol.,'(',CD,'(',Disc,'('),'('),0),,
$if($strcmp($strstr($directory(%_path%,1),%artist%),1),'['%date%']' ,)$cut(%album%,$sub($strstr($replace(%album%,Vol.,'(',CD,'(',Disc,'('),'('),2)) $if($strcmp($strstr(%artist%,'('),0),,$if($strcmp($strstr($directory(%_path%,1),
%artist%),1),$right(%artist%,$sub($len(%artist%),
$sub($strstr(%artist%,'('),1))),)))
|$if($strcmp($strstr($replace(%album%,Vol.,'(',CD,'(',Disc,'('),'('),0),
$if($strcmp($strstr($directory(%_path%,1),%artist%),1),'['%date%']' %album% $if($strcmp($strstr(%artist%,'('),0),,$right(%artist%,$sub($len(%artist%),
$sub($strstr(%artist%,'('),1)))),%album% '['%date%']'),$right(%album%,$sub($len(%album%),
$sub($strstr($replace(%album%,Vol.,'(',CD,'(',Disc,'('),'('),1)))
$if($strcmp($strstr($directory(%_path%,1),%artist%),1),, '['%date%']'))




Crash info:
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 50010042h
Access violation, operation: read, address: 50010042h
Call path:
WinMain=>app_mainloop
This is the first crash logged by this instance.
Access violation, operation: read, address: 50010042h
Stack (0012FC88h):
0012FC68h: 78461F55 78462528 FFFFFFFF 0460DE50
0012FC78h: 77E9F6C9 00070000 00000000 0010E948
0012FC88h: 77B0543F 093301A8 77A54EB0 071551D8
0012FC98h: 00000001 093301A8 00000000 0012FCE4
0012FCA8h: 77B0560B 07159BF8 00000000 00000000
0012FCB8h: 00000004 00000000 00000036 0000006F
0012FCC8h: 0012FE00 000001B8 093301A8 00210270
0012FCD8h: 0013D070 07156CD0 00000000 0012FD4C
0012FCE8h: 77ACBE94 000702F4 00000004 0013D070
0012FCF8h: 093301A8 00000000 00000036 0000006F
0012FD08h: 0012FE00 00210270 07156CE8 00000000
0012FD18h: 0012FD78 00000000 00000000 77E038BB
0012FD28h: 00000000 00000000 00000000 00000000
0012FD38h: 0012FDC4 7847FF57 0012FD48 00000018
0012FD48h: 80004005 0012FDC4 77ACBC4D 07156CD0
0012FD58h: 093301A8 00000000 00000036 0000006F
0012FD68h: 0012FE00 0012FEF8 093301A8 77ACBD15
0012FD78h: 093301A8 0013D070 013DCDA8 07156CD0
0012FD88h: 013DDDD8 00000000 00000036 0000006F
0012FD98h: 00000001 0012FE00 00000000 00010011
Registers:
EAX: 093301A8, EBX: 013DDDD8, ECX: 0714B668, EDX: FFFFFFFF
ESI: 77E1A7A0, EDI: 77E9BB03, EBP: 0012FCA4, ESP: 0012FC88
Unable to identify crash location

Loaded modules:
foobar2000 loaded at 00400000h - 00452000h
ntdll loaded at 78460000h - 784E3000h
KERNEL32 loaded at 77E70000h - 77F2E000h
USER32 loaded at 77E00000h - 77E65000h
GDI32 loaded at 77F40000h - 77F7B000h
ole32 loaded at 77A40000h - 77B2F000h
RPCRT4 loaded at 770C0000h - 77131000h
ADVAPI32 loaded at 78ED0000h - 78F32000h
COMCTL32 loaded at 77B40000h - 77BC9000h
utf8api loaded at 10000000h - 1000D000h
comdlg32 loaded at 76B00000h - 76B3E000h
SHLWAPI loaded at 77C60000h - 77CA9000h
SHELL32 loaded at 77580000h - 777CC000h
MSVCRT loaded at 78000000h - 78045000h
foo_ac3 loaded at 00800000h - 00813000h
foo_albumlist loaded at 00820000h - 0082B000h
foo_burninate loaded at 00830000h - 0083C000h
VERSION loaded at 77810000h - 77817000h
LZ32 loaded at 75950000h - 75956000h
foo_cdda loaded at 00840000h - 0084E000h
foo_clienc loaded at 00850000h - 0085B000h
foo_console loaded at 00860000h - 00867000h
foo_dbsearch loaded at 00870000h - 00888000h
foo_diskwriter loaded at 00890000h - 008A2000h
WINMM loaded at 77540000h - 77571000h
foo_dsp_extra loaded at 00930000h - 00945000h
foo_dsp_nogaps loaded at 00950000h - 00957000h
foo_dynamics loaded at 00960000h - 00967000h
foo_faac loaded at 00970000h - 009A3000h
foo_flac loaded at 009B0000h - 009CC000h
foo_flaccer loaded at 009D0000h - 009E6000h
foo_freedb loaded at 009F0000h - 00A1E000h
WS2_32 loaded at 74FB0000h - 74FC4000h
WS2HELP loaded at 74FA0000h - 74FA8000h
foo_id3v2 loaded at 00A20000h - 00A50000h
MSVCP60 loaded at 780C0000h - 78121000h
foo_infobox loaded at 00A50000h - 00A63000h
foo_input_std loaded at 00A70000h - 00B0E000h
MSACM32 loaded at 773E0000h - 773F3000h
foo_masstag loaded at 00B10000h - 00B24000h
foo_null loaded at 00B30000h - 00B37000h
foo_output_std loaded at 00B40000h - 00B49000h
foo_out_dsound_ex loaded at 00B50000h - 00B59000h
DSOUND loaded at 51080000h - 510DD000h
foo_out_ks loaded at 00B70000h - 00B7B000h
SETUPAPI loaded at 783C0000h - 78451000h
USERENV loaded at 78D20000h - 78D82000h
foo_playlistgen_ex loaded at 00B80000h - 00B8F000h
foo_rgscan loaded at 00B90000h - 00B9D000h
foo_scroll loaded at 00BA0000h - 00BA6000h
foo_ui_std loaded at 00BB0000h - 00BC7000h
foo_utils loaded at 00BD0000h - 00BE1000h
foo_vis_manager loaded at 00BF0000h - 00BF8000h
foo_vorbisenc loaded at 00C00000h - 00D11000h
foo_wma loaded at 00D20000h - 00D3A000h
WMVCore loaded at 08530000h - 0872D000h
WMASF loaded at 07260000h - 07299000h
OLEAUT32 loaded at 779A0000h - 77A3B000h
foo_history loaded at 01150000h - 01165000h
foo_history_panel loaded at 01270000h - 01278000h
foo_openwith loaded at 01280000h - 01289000h
MSVCR71 loaded at 7C340000h - 7C396000h
foo_osd loaded at 012A0000h - 012AB000h
foo_pod loaded at 012B0000h - 01312000h
foo_podclienc loaded at 01320000h - 0132E000h
foo_podtranscoder loaded at 01330000h - 0133B000h
foo_read_http loaded at 01340000h - 01353000h
foo_shuffle loaded at 01360000h - 0136A000h
foo_temple loaded at 01370000h - 0137B000h
foo_web loaded at 01380000h - 01398000h
foo_write_http loaded at 013A0000h - 013BA000h
foo_playlistfind loaded at 013C0000h - 013CB000h
foo_playlist_tree loaded at 013D0000h - 013E4000h
foo_scheduler loaded at 013F0000h - 01405000h
foo_uie_albumlist loaded at 01410000h - 0141F000h
foo_uie_dbexplorer loaded at 01420000h - 0142B000h
foo_uie_tabs loaded at 01430000h - 0143A000h
foo_uie_trackinfo loaded at 01440000h - 0144B000h
foo_uie_volume loaded at 01450000h - 0145A000h
foo_ui_columns loaded at 01460000h - 01497000h
Powrprof loaded at 76690000h - 76697000h
CLBCATQ loaded at 72C60000h - 72CF0000h
SSSensor loaded at 06270000h - 06285000h
wdmaud loaded at 77530000h - 77538000h
msacm32 loaded at 773D0000h - 773D8000h
KsUser loaded at 5EF80000h - 5EF84000h
cscui loaded at 77840000h - 77880000h
CSCDLL loaded at 77090000h - 770B3000h
ntshrui loaded at 76F70000h - 76F7F000h
ATL loaded at 773B0000h - 773C5000h
NETAPI32 loaded at 750F0000h - 7513F000h
Secur32 loaded at 78FB0000h - 78FBF000h
NTDSAPI loaded at 77BE0000h - 77BF1000h
DNSAPI loaded at 77970000h - 77994000h
WSOCK32 loaded at 74FD0000h - 74FD9000h
WLDAP32 loaded at 77940000h - 7796B000h
NETRAP loaded at 75140000h - 75146000h
SAMLIB loaded at 750D0000h - 750DF000h
browseui loaded at 76DE0000h - 76EA7000h
SHDOCVW loaded at 78DB0000h - 78EC2000h
imagehlp loaded at 77910000h - 77933000h
DBGHELP loaded at 72970000h - 7299D000h

Stack dump analysis:
Address: 77B0543Fh, location: "ole32", loaded at 77A40000h - 77B2F000h
Address: 77A54EB0h, location: "ole32", loaded at 77A40000h - 77B2F000h
Address: 77B0560Bh, location: "ole32", loaded at 77A40000h - 77B2F000h
Address: 77ACBE94h, location: "ole32", loaded at 77A40000h - 77B2F000h
Address: 77E038BBh, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 7847FF57h, location: "ntdll", loaded at 78460000h - 784E3000h
Address: 77ACBC4Dh, location: "ole32", loaded at 77A40000h - 77B2F000h
Address: 77ACBD15h, location: "ole32", loaded at 77A40000h - 77B2F000h
Address: 013DCDA8h, location: "foo_playlist_tree", loaded at 013D0000h - 013E4000h
Address: 013DDDD8h, location: "foo_playlist_tree", loaded at 013D0000h - 013E4000h
Address: 013D56B8h, location: "foo_playlist_tree", loaded at 013D0000h - 013E4000h
Address: 013DCDA8h, location: "foo_playlist_tree", loaded at 013D0000h - 013E4000h
Address: 77E01EF0h, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77E0204Ch, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 013D542Eh, location: "foo_playlist_tree", loaded at 013D0000h - 013E4000h
Address: 77E061E0h, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77E0620Fh, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77E0621Fh, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 7847FF57h, location: "ntdll", loaded at 78460000h - 784E3000h
Address: 77E2BCE4h, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77E02198h, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77E021AFh, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77E108FBh, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 100036BCh, location: "utf8api", loaded at 10000000h - 1000D000h
Symbol: "uIsDialogMessage" (+0000000Eh)
Address: 0041236Ch, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 0042D10Ah, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 00410FEAh, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 00438DB5h, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 00400000h, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 00438DE0h, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 0043C320h, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 77E9893Dh, location: "KERNEL32", loaded at 77E70000h - 77F2E000h
Address: 77EC1F44h, location: "KERNEL32", loaded at 77E70000h - 77F2E000h
Address: 77E72B18h, location: "KERNEL32", loaded at 77E70000h - 77F2E000h
Address: 00438C81h, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 00800000h, location: "foo_ac3", loaded at 00800000h - 00813000h

Version info:
foobar2000 v0.8.3
UNICODE
marcomk
QUOTE(NEMO7538 @ Dec 10 2004, 10:16 PM)
the plugin seems very promising, however it has crashed three times (the last time it suddenly crashed was when I changed the "line" color). Also it refuses to handle this (long) string copied from my albumlist panel formatting into the "edit display" of a dynamic folder.


Well, it's because the plugin doesn't accept the "enter" code in display string like Albumlist. If you remove the "enter" characters, it will accept it.

QUOTE(NEMO7538 @ Dec 10 2004, 10:16 PM)
I would also suggest an option :
1/ to remove the track level from the tree


This depends from the behaviour described by this post
cwbowron
QUOTE(cwbowron @ Dec 10 2004, 01:33 PM)
I'm thinking what I might do is add a Ctl-Right Click option that does option 2) above.  that way we dont have to generate these playlists unless you really want to do a big playlist option.
*


I implemented option 2. Now if you want to access all the extra features like masstagger, convert, bla bal, you can right click on a folder while holding control.

the issue with the trailing ||| and the like has been fixed too.. it should work more similarly to albumlist now...

BTW this release I upped that query limit size to 2048 from the previous 1024...
jkwarras
QUOTE(marcomk @ Dec 10 2004, 08:54 AM)
You're working at an amazing rate. I can't believe it.   wink.gif
*


Yeah. I'm really amaze all the time investment and the speed cwbowron you're updating and developing your plugin. Just a word (again): thanks! smile.gif
jkwarras
QUOTE(cwbowron @ Dec 10 2004, 10:33 AM)
In albumlist, each folder contains a list of all the entries that are located inside the folder in the form of a metadb_handle_list.  In playlist tree only leaf nodes contains the handles.  The presence of these lists are what create the menu options in the right click menu.  I would either have to 1) create a list of handles at each level of the tree for all the handles in tree and subtrees which is a pain for adding and removing items and creates more storage, or 2) create this list on the fly when the item is right clicked. This could potentially take a bit of time to do if you were to right click on a large folder.
*

Just a suggestion. Maybe you could create a submenu for the 'playlist tree' menu options in the default right-click menu, like the 'foo_pod' or 'www services' components. This way, the menu options specific to your component are only generated if you go to this subgroup. But I'm not a developper so maybe I'm talking nosense
ph34r.gif
marcomk
QUOTE(cwbowron @ Dec 10 2004, 10:46 PM)
I implemented option 2.  Now if you want to access all the extra features like masstagger, convert, bla bal, you can right click on a folder while holding control.


Works great. No speed issues at all. I couldn't appreciate the difference between right click and ctrl+right click in terms of time, even when I added 10 dynamic folders containing each one my entire collection (25-30 Gb of music). I have an Athlon XP 2600 , not that bad, still not the quickest processor on the market.
Maybe you could also have the Ctrl+right click menu as the default right click menu if there are no other drawbacks smile.gif

QUOTE(cwbowron @ Dec 10 2004, 10:46 PM)
the issue with the trailing ||| and the like has been fixed too.. it should work more similarly to albumlist now...


It's fine, I think that there are no other issues. People just have to take away the "Enter" codes from their Albumlist strings to make them work in Playlist tree.

I saw you already inserted a Sort Criteria field in the Dynamic Folder window (thanks smile.gif ) .

BTW, I noticed a strange behaviour for dynamic folders. If you insert in the Query field the string:

%rating%

or

%artist%

the folder should display only the files which contain that tag... In fact, all files are displayed.

Thanks again for all your work wink.gif
NEMO7538
QUOTE(marcomk @ Dec 10 2004, 01:35 PM)
QUOTE(NEMO7538 @ Dec 10 2004, 10:16 PM)
the plugin seems very promising, however it has crashed three times (the last time it suddenly crashed was when I changed the "line" color). Also it refuses to handle this (long) string copied from my albumlist panel formatting into the "edit display" of a dynamic folder.


Well, it's because the plugin doesn't accept the "enter" code in display string like Albumlist. If you remove the "enter" characters, it will accept it.



I did'nt have any "Enter" code but rather a longer than 1024 format string.
It seems ok now with the new version.

QUOTE(marcomk @ Dec 10 2004, 01:35 PM)
QUOTE(NEMO7538 @ Dec 10 2004, 10:16 PM)
I would also suggest an option :
1/ to remove the track level from the tree


This depends from the behaviour described by this post
*


Not sure I undestood everything but my request was (in case the "format" string of the dynamic playlist does not include the track level) to have the tracks not necessarily being displayed at the last level but rather sent to the main area so that they can be formatted as columns.

To say it differently, if you simply use "%artist%|%album%" as the format of a dynamic folder, it should stop expanding at the album level, like :

+ dynamic folder
..+ Artist 1
.....+ Album a <----(This level should not be expandable, like in AlbumList)
.....+ Album b

while the current behaviour (to be fixed IMHO) is to show :

+ dynamic folder
..+ Artist 1
....+ Album a <----(Repeated for each track)
....+ Album a
....+ Album a
....+ Album a
....+ Album a
....+ Album a

....+ Album b <----(Repeated for each track)
....+ Album b
....+ Album b
....+ Album b
cwbowron
QUOTE(jkwarras @ Dec 10 2004, 05:40 PM)
Just a suggestion. Maybe you could create a submenu for the 'playlist tree' menu options in the default right-click menu, like the 'foo_pod' or 'www services' components. This way, the menu options specific to your component are only generated if you go to this subgroup. But I'm not a developper so maybe I'm talking nosense
ph34r.gif
*


I just uploaded a new version... When you right click a folder now there is a menu option "More..." that lists all the options not particular to playlist tree

I also added menu options for adding a folder to a new playlist and adding bolded items to a new playlist.
marcomk
QUOTE(cwbowron @ Dec 11 2004, 10:46 PM)
I just uploaded a new version... When you right click a folder now there is a menu option "More..." that lists all the options not particular to playlist tree
*


It's fine. smile.gif

To say the truth, I would have preferred a single, leaner contex menu like other panels have (main window, playlist switcher, albumlist, history, ecc.) as apparently there are no significant speed issues in creating playlists on the fly. However, I really don't want to bother you and the context menu is fine the way it is. It was just a comment wink.gif
jkwarras
QUOTE(cwbowron @ Dec 11 2004, 01:46 PM)
I just uploaded a new version... When you right click a folder now there is a menu option "More..." that lists all the options not particular to playlist tree
*

Thanks you very much. Now I can use your component as my album list replacement, I love it.

Here everything seems to work fine, except that special characters like ● (useful for rating and stuff like that) it's replaced by ?. When you type it on the display format window it's there but when you hit enter and look at the display in the playlits tree window, is replaced by ?. Here it happens with ● and □.
NEMO7538
QUOTE(NEMO7538 @ Dec 10 2004, 03:08 PM)
....

To say it differently, if you simply use "%artist%|%album%" as the format of a dynamic folder, it should stop expanding at the album level, like :

+ dynamic folder
..+ Artist 1
.....+ Album a    <----(This level should not be expandable, like in AlbumList)
.....+ Album b

while the current behaviour (to be fixed IMHO) is to show :

+ dynamic folder
..+ Artist 1
....+  Album a    <----(Repeated for each track)
....+  Album a
....+  Album a
....+  Album a
....+  Album a
....+  Album a
 
....+  Album b    <----(Repeated for each track)
....+  Album b
....+  Album b
....+  Album b
*


Is there any plan to fix this and send the selection results to a given playlist ?
The Link
I'd love to be able to use the same syntax as with foo_playlistgen for dynamic folders. It would shorten my strings and expand the possibilities. The possibility that it automatically scans all tag values if there are several for the same tag would also be nice (now i have to use $meta(%blah%,n)).

An option to automatically save the whole playlist tree would also be a nice feature imho. You just specify one location where to save it to.

Regards,
The Link
cwbowron
QUOTE(NEMO7538 @ Dec 12 2004, 08:33 AM)
QUOTE(NEMO7538 @ Dec 10 2004, 03:08 PM)
....

To say it differently, if you simply use "%artist%|%album%" as the format of a dynamic folder, it should stop expanding at the album level, like :

+ dynamic folder
..+ Artist 1
.....+ Album a    <----(This level should not be expandable, like in AlbumList)
.....+ Album b

while the current behaviour (to be fixed IMHO) is to show :

+ dynamic folder
..+ Artist 1
....+  Album a    <----(Repeated for each track)
....+  Album a
....+  Album a
....+  Album a
....+  Album a
....+  Album a
 
....+  Album b    <----(Repeated for each track)
....+  Album b
....+  Album b
....+  Album b
*


Is there any plan to fix this and send the selection results to a given playlist ?
*


no.

I don't see a need for this... all the functionaity of this is already there... just put the title in and leave the last folder unexpanded... make the double click option create new playlist... then instead of clicking on a folder, double click on it...
cwbowron
QUOTE(The Link @ Dec 12 2004, 08:45 AM)
I'd love to be able to use the same syntax as with foo_playlistgen for dynamic folders. It would shorten my strings and expand the possibilities. The possibility that it automatically scans all tag values if there are several for the same tag would also be nice (now i have to use $meta(%blah%,n)).

An option to automatically save the whole playlist tree would also be a nice feature imho. You just specify one location where to save it to.

Regards,
The Link
*


I just uploaded a new version that allows foo_playlistgen style syntax (check the extended search box)... I haven't done any hardcore testing on it, but my simple artist HAS Dylan tests worked...

Autosave would be a nice feature... i will probaly implement that soon...
cwbowron
QUOTE(jkwarras @ Dec 12 2004, 08:03 AM)
Here everything seems to work fine, except that special characters like ● (useful for rating and stuff like that) it's replaced by ?. When you type it on the display format window it's there but when you hit enter and look at the display in the playlits tree window, is replaced by ?. Here it happens with ● and □.
*


Just uploaded a new version that should fix that...
The Link
Thank you!! smile.gif It works now with playlistgen syntax.

Also thank you for considering an autosave option.

One problem still exists: Playlist tree in panel stack generates visual artifacts when opening foobar and moving the mouse over the album list panel (see picture):
user posted image

Regards,
The Link
cwbowron
QUOTE(The Link @ Dec 12 2004, 04:10 PM)
Also thank you for considering an autosave option.

One problem still exists: Playlist tree in panel stack generates visual artifacts when opening foobar and moving the mouse over the album list panel (see picture):
user posted image
*


I just uploaded a new version with autosave...

I'm not sure what could be causing the visual artifacts... I'm wondering if it might be a situation of foo_uie_tabs not sending a repaint command... or maybe it is and im not dealing with it properly...
Chaser
Real great plugin! I have read, that you want to implement a function, that would update the playlist like for example "foo_uie_albumlist" does?! That would also be great. I'm not sure, whether it is already possible to let foo_playlist_tree get the current items of the db (also like albumlist does)?

Go on with your good work!
stroke
1. playlist tree crashes when i try to move embedded folder one (or more) level(s) higher in hierarchy. this is a reproducible crash (at least with my config).

2. what do you think about adding an option to refresh playlist tree on expanding/collapsing a folder? would be useful for dynamic folders relying on changable tags (like playcounter).

3. this plugin is becoming a real killer smile.gif i'm especially happy about the compatibility with playlist generator syntax (frankly speaking i thought about that, just didn't manage to be the first one to suggest that feature sad.gif ) what else is it going to replace? laugh.gif any ideas?
marcomk
Hi cwbowron,

I think I found a reproducible crash. From the empty playlist tree, just create a dynamic folder with any query (I tried with 1, which includes any file in database). Then drag the folder you created and drop on itself. Crash crying.gif

This is the log, if you need it

Illegal operation:
Code: C0000005h, flags: 00000000h, address: 00150241h
Access violation, operation: read, address: 15024000h
Call path:
WinMain=>app_mainloop
This is the first crash logged by this instance.
Code bytes (00150241h):
00150201h: 02 15 00 00 02 15 00 08 02 15 00 08 02 15 00 10
00150211h: 02 15 00 10 02 15 00 18 02 15 00 18 02 15 00 20
00150221h: 02 15 00 20 02 15 00 28 02 15 00 28 02 15 00 30
00150231h: 02 15 00 30 02 15 00 28 52 4F 02 28 52 4F 02 40
00150241h: 02 15 00 40 02 15 00 48 02 15 00 48 02 15 00 50
00150251h: 02 15 00 50 02 15 00 58 02 15 00 58 02 15 00 60
00150261h: 02 15 00 60 02 15 00 68 02 15 00 68 02 15 00 70
00150271h: 02 15 00 70 02 15 00 78 02 15 00 78 02 15 00 80
Stack (0012FC3Ch):
0012FC1Ch: 017ADB9C 7C9D76F0 77E943DD 7C9D76F0
0012FC2Ch: 00000004 00000000 017AD0A8 00000000
0012FC3Ch: 775C809A 024F5228 774B6E2C 01D93BC8
0012FC4Ch: 00000000 024F5228 00000000 0012FC98
0012FC5Ch: 775C82C0 01DDCD00 00000000 00000000
0012FC6Ch: 00000004 00000000 000000DF 000001FB
0012FC7Ch: 0012FDB4 00000CC0 024F5228 00160240
0012FC8Ch: 0300D578 01DB0750 00000001 0012FD00
0012FC9Ch: 7759F400 00160426 00000004 0300D578
0012FCACh: 024F5228 00000000 000000DF 000001FB
0012FCBCh: 0012FDB4 00160240 01DB0768 00000000
0012FCCCh: 0012FD2C 00000000 77D1B3C4 00000000
0012FCDCh: 00000000 00000000 00000000 0012FD78
0012FCECh: 7C91EAE3 0012FCF8 00000018 005D3B10
0012FCFCh: 80004005 0012FD78 7759F288 01DB0750
0012FD0Ch: 024F5228 00000000 000000DF 000001FB
0012FD1Ch: 0012FDB4 0012FE10 024F5228 7759FBB5
0012FD2Ch: 024F5228 0300D578 016B0440 01DB0750
0012FD3Ch: 016AFB88 00000000 000000DF 000001FB
0012FD4Ch: 00000001 0012FDB4 00000000 00010011
Registers:
EAX: 024F5229, EBX: 016AFB88, ECX: 00150238, EDX: 60380003
ESI: 77D2674F, EDI: 7C809737, EBP: 0012FC58, ESP: 0012FC3C
Unable to identify crash location

Loaded modules:
foobar2000 loaded at 00400000h - 00460000h
ntdll loaded at 7C910000h - 7C9C6000h
kernel32 loaded at 7C800000h - 7C8FF000h
USER32 loaded at 77D10000h - 77DA0000h
GDI32 loaded at 77E40000h - 77E86000h
ole32 loaded at 774B0000h - 775EC000h
msvcrt loaded at 77BE0000h - 77C38000h
ADVAPI32 loaded at 77F40000h - 77FEB000h
RPCRT4 loaded at 77DA0000h - 77E31000h
COMCTL32 loaded at 773A0000h - 774A2000h
SHLWAPI loaded at 77E90000h - 77F2D000h
utf8api loaded at 10000000h - 1000D000h
comdlg32 loaded at 76360000h - 763AA000h
SHELL32 loaded at 7C9D0000h - 7EB16000h
foo_abx loaded at 008D0000h - 008DC000h
foo_ac3 loaded at 008E0000h - 008F3000h
foo_albumlist loaded at 00900000h - 0090B000h
foo_ape loaded at 00910000h - 0092F000h
foo_apl loaded at 00930000h - 0093A000h
foo_bitcompare loaded at 00940000h - 00949000h
foo_burninate loaded at 00950000h - 0095C000h
VERSION loaded at 77BD0000h - 77BD8000h
foo_cdda loaded at 00960000h - 0096E000h
foo_clienc loaded at 00970000h - 0097B000h
foo_console loaded at 00980000h - 00987000h
foo_convolve loaded at 00990000h - 009DF000h
foo_dbsearch loaded at 009E0000h - 009F8000h
foo_diskwriter loaded at 00A00000h - 00A12000h
WINMM loaded at 76B00000h - 76B2E000h
serwvdrv loaded at 5D190000h - 5D197000h
umdmxfrm loaded at 5B4B0000h - 5B4B7000h
foo_dsp_crossfade loaded at 00AA0000h - 00AA7000h
foo_dsp_crossfeed loaded at 00AB0000h - 00AB6000h
foo_dsp_extra loaded at 00AC0000h - 00AD5000h
foo_dsp_nogaps loaded at 00AE0000h - 00AE7000h
foo_dsp_pause loaded at 00AF0000h - 00AF7000h
foo_dsp_skip_silence loaded at 00B00000h - 00B07000h
foo_dsp_soundtouch loaded at 00B10000h - 00B1B000h
MSVCP60 loaded at 76030000h - 76095000h
foo_dynamics loaded at 00B20000h - 00B27000h
foo_faac loaded at 00B30000h - 00B63000h
foo_festalon loaded at 00B70000h - 00CAE000h
foo_flac loaded at 00CB0000h - 00CCC000h
foo_flaccer loaded at 00CD0000h - 00CE6000h
foo_freedb loaded at 00CF0000h - 00D0D000h
WS2_32 loaded at 71A30000h - 71A47000h
WS2HELP loaded at 71A20000h - 71A28000h
foo_history loaded at 00D10000h - 00D20000h
foo_id3v2 loaded at 00D20000h - 00D50000h
foo_infobox loaded at 00D50000h - 00D63000h
foo_input_std loaded at 00D70000h - 00E0E000h
MSACM32 loaded at 77BB0000h - 77BC5000h
foo_lpac loaded at 00E10000h - 00E17000h
lpac_codec_api loaded at 00E20000h - 00E2A000h
lpaccodec loaded at 00E30000h - 00E59000h
foo_masstag loaded at 01080000h - 01094000h
foo_matroska loaded at 010A0000h - 010E8000h
foo_mod loaded at 010F0000h - 010F9000h
BASS loaded at 01100000h - 0115A000h
foo_monkey loaded at 01160000h - 0117C000h
foo_mpeg4u loaded at 01180000h - 011A9000h
foo_nez loaded at 011B0000h - 011DB000h
foo_null loaded at 011E0000h - 011E7000h
foo_ofr loaded at 011F0000h - 011F6000h
OptimFROG loaded at 01200000h - 0122C000h
foo_oggpreview loaded at 01240000h - 01341000h
foo_output_std loaded at 01350000h - 01359000h
foo_out_dsound_ex loaded at 01360000h - 01369000h
DSOUND loaded at 73E80000h - 73EDC000h
foo_out_ks loaded at 01380000h - 0138B000h
SETUPAPI loaded at 01390000h - 01679000h
foo_playcount loaded at 01680000h - 0168A000h
foo_playlistgen_ex loaded at 01690000h - 0169F000h
foo_playlist_tree loaded at 016A0000h - 016BD000h
foo_pphsresample loaded at 016C0000h - 016D0000h
foo_psf loaded at 016D0000h - 0177C000h
foo_quicktag loaded at 01780000h - 01789000h
foo_read_http loaded at 01790000h - 017A5000h
foo_rgscan loaded at 017B0000h - 017BD000h
foo_scroll loaded at 017C0000h - 017C6000h
foo_search_ex loaded at 017D0000h - 017D8000h
foo_shn loaded at 017E0000h - 017EF000h
foo_shuffle loaded at 017F0000h - 017FB000h
foo_sid loaded at 01950000h - 01997000h
foo_spc loaded at 01800000h - 01811000h
foo_speex loaded at 01820000h - 01838000h
foo_tfmx loaded at 019A0000h - 019A9000h
foo_tta loaded at 019B0000h - 019B9000h
foo_tta_old loaded at 019C0000h - 019C9000h
foo_uie_albumlist loaded at 019D0000h - 019DF000h
foo_uie_simple_spectrum loaded at 019E0000h - 019EB000h
foo_uie_tabs loaded at 019F0000h - 019FA000h
foo_uie_trackinfo loaded at 01A00000h - 01A0B000h
foo_uie_volume loaded at 01A10000h - 01A1A000h
foo_ui_columns loaded at 01A20000h - 01A57000h
foo_ui_std loaded at 01A60000h - 01A77000h
foo_unpack loaded at 01A80000h - 01AB1000h
OLEAUT32 loaded at 770F0000h - 7717C000h
foo_utils loaded at 01AC0000h - 01AD1000h
foo_vis_manager loaded at 01AE0000h - 01AE8000h
foo_vis_simple_spectrum loaded at 01AF0000h - 01AFA000h
foo_vorbisenc loaded at 01B00000h - 01C11000h
foo_wavpack loaded at 01C20000h - 01C32000h
foo_wma loaded at 01C40000h - 01C5A000h
WMVCore loaded at 086C0000h - 08904000h
WMASF loaded at 070D0000h - 0710B000h
foo_xa loaded at 01C60000h - 01C6F000h
uxtheme loaded at 5B180000h - 5B1B8000h
LgWndHk loaded at 01CD0000h - 01CD7000h
iTchHk loaded at 01CE0000h - 01CE7000h
LgMsgHk loaded at 01F50000h - 01F5B000h
idle loaded at 60300000h - 60307000h
MSVCR71 loaded at 7C340000h - 7C396000h
kbdhook loaded at 01F70000h - 01F77000h
appHelp loaded at 77B10000h - 77B32000h
CLBCATQ loaded at 76F90000h - 7700F000h
COMRes loaded at 77010000h - 770E2000h
cscui loaded at 03080000h - 031E2000h
CSCDLL loaded at 765B0000h - 765CD000h
browseui loaded at 75F30000h - 7602C000h
ntshrui loaded at 76950000h - 769E0000h
ATL loaded at 76AE0000h - 76AF1000h
NETAPI32 loaded at 5BC70000h - 5BCC4000h
USERENV loaded at 03220000h - 032D4000h
shdocvw loaded at 035E0000h - 03BE9000h
CRYPT32 loaded at 77A50000h - 77AE5000h
MSASN1 loaded at 77AF0000h - 77B02000h
CRYPTUI loaded at 76890000h - 76913000h
WINTRUST loaded at 76BF0000h - 76C1E000h
IMAGEHLP loaded at 76C50000h - 76C78000h
WININET loaded at 77180000h - 77227000h
WLDAP32 loaded at 76F20000h - 76F4D000h
MPR loaded at 71AA0000h - 71AB2000h
drprov loaded at 75F10000h - 75F17000h
ntlanman loaded at 71BA0000h - 71BAE000h
NETUI0 loaded at 71C60000h - 71C77000h
NETUI1 loaded at 71C20000h - 71C60000h
NETRAP loaded at 71C10000h - 71C17000h
SAMLIB loaded at 71B80000h - 71B93000h
davclnt loaded at 75F20000h - 75F29000h
MSGINA loaded at 75920000h - 75A91000h
WINSTA loaded at 76310000h - 76320000h
ODBC32 loaded at 745E0000h - 7461D000h
odbcint loaded at 20000000h - 20018000h
Secur32 loaded at 04230000h - 04241000h
xpsp2res loaded at 04250000h - 04525000h
sti loaded at 73B10000h - 73B24000h
CFGMGR32 loaded at 74A70000h - 74A77000h
DBGHELP loaded at 59E60000h - 59F01000h

Stack dump analysis:
Address: 775C809Ah, location: "ole32", loaded at 774B0000h - 775EC000h
Symbol: "StgGetIFillLockBytesOnFile" (+000085ADh)
Address: 774B6E2Ch, location: "ole32", loaded at 774B0000h - 775EC000h
Address: 775C82C0h, location: "ole32", loaded at 774B0000h - 775EC000h
Symbol: "StgGetIFillLockBytesOnFile" (+000087D3h)
Address: 7759F400h, location: "ole32", loaded at 774B0000h - 775EC000h
Symbol: "CreateDataCache" (+00003CD2h)
Address: 77D1B3C4h, location: "USER32", loaded at 77D10000h - 77DA0000h
Symbol: "DefWindowProcW" (+000001DFh)
Address: 7C91EAE3h, location: "ntdll", loaded at 7C910000h - 7C9C6000h
Symbol: "KiUserCallbackDispatcher" (+00000013h)
Address: 7759F288h, location: "ole32", loaded at 774B0000h - 775EC000h
Symbol: "CreateDataCache" (+00003B5Ah)
Address: 7759FBB5h, location: "ole32", loaded at 774B0000h - 775EC000h
Symbol: "DoDragDrop" (+000000ABh)
Address: 016B0440h, location: "foo_playlist_tree", loaded at 016A0000h - 016BD000h
Address: 016AFB88h, location: "foo_playlist_tree", loaded at 016A0000h - 016BD000h
Address: 016A8672h, location: "foo_playlist_tree", loaded at 016A0000h - 016BD000h
Address: 016B0440h, location: "foo_playlist_tree", loaded at 016A0000h - 016BD000h
Address: 016A83E8h, location: "foo_playlist_tree", loaded at 016A0000h - 016BD000h
Address: 77D18709h, location: "USER32", loaded at 77D10000h - 77DA0000h
Symbol: "GetDC" (+00000072h)
Address: 016A83E8h, location: "foo_playlist_tree", loaded at 016A0000h - 016BD000h
Address: 016A83E8h, location: "foo_playlist_tree", loaded at 016A0000h - 016BD000h
Address: 77D187EBh, location: "USER32", loaded at 77D10000h - 77DA0000h
Symbol: "GetDC" (+00000154h)
Address: 016A83E8h, location: "foo_playlist_tree", loaded at 016A0000h - 016BD000h
Address: 77D40494h, location: "USER32", loaded at 77D10000h - 77DA0000h
Symbol: "GetClipboardFormatNameA" (+0000014Fh)
Address: 77D18808h, location: "USER32", loaded at 77D10000h - 77DA0000h
Symbol: "GetDC" (+00000171h)
Address: 77D189A5h, location: "USER32", loaded at 77D10000h - 77DA0000h
Symbol: "GetWindowLongW" (+00000127h)
Address: 016A83E8h, location: "foo_playlist_tree", loaded at 016A0000h - 016BD000h
Address: 77D253A0h, location: "USER32", loaded at 77D10000h - 77DA0000h
Symbol: "SetActiveWindow" (+00000020h)
Address: 77D40494h, location: "USER32", loaded at 77D10000h - 77DA0000h
Symbol: "GetClipboardFormatNameA" (+0000014Fh)
Address: 77D189C8h, location: "USER32", loaded at 77D10000h - 77DA0000h
Symbol: "GetWindowLongW" (+0000014Ah)
Address: 77D189E8h, location: "USER32", loaded at 77D10000h - 77DA0000h
Symbol: "DispatchMessageW" (+0000000Fh)
Address: 77D3E819h, location: "USER32", loaded at 77D10000h - 77DA0000h
Symbol: "IsDialogMessageW" (+000000DBh)
Address: 100036BCh, location: "utf8api", loaded at 10000000h - 1000D000h
Symbol: "uIsDialogMessage" (+0000000Eh)
Address: 0041236Ch, location: "foobar2000", loaded at 00400000h - 00460000h
Address: 00410FEAh, location: "foobar2000", loaded at 00400000h - 00460000h
Address: 00438DB5h, location: "foobar2000", loaded at 00400000h - 00460000h
Address: 00400000h, location: "foobar2000", loaded at 00400000h - 00460000h
Address: 00438DE0h, location: "foobar2000", loaded at 00400000h - 00460000h
Address: 0043C320h, location: "foobar2000", loaded at 00400000h - 00460000h
Address: 7C816D4Fh, location: "kernel32", loaded at 7C800000h - 7C8FF000h
Symbol: "RegisterWaitForInputIdle" (+00000049h)
Address: 7C8399F3h, location: "kernel32", loaded at 7C800000h - 7C8FF000h
Symbol: "FindAtomW" (+00000094h)
Address: 7C816D58h, location: "kernel32", loaded at 7C800000h - 7C8FF000h
Symbol: "RegisterWaitForInputIdle" (+00000052h)
Address: 00438C81h, location: "foobar2000", loaded at 00400000h - 00460000h

Version info:
foobar2000 v0.8.3
UNICODE

Let's talk about queries, now. smile.gif
1. I can't really understand how to create a dynamic folder which contains all the files that contain a specific tag (%rating% for example). I tried to insert "%rating%" in the query, or the extended playlist generator expression "NOT %rating% MISSING" but I'm not having consistent results.
2. I don't think that the Sort criteria field in dynamic folder window works. Also (sorry to ask you this again) I think it is important to have something like a "reverse order" checkbox if you want to be able to create Most played/Least played kind of folders.
3. What is the "extended search" checkbox?

That's all (for now). I hope you don't get bored to develop this fantastic plugin. wink.gif
marcomk
Hi,

for once I'm not going to make specific requests, I just want to share my views on this fantastic plugin. I know that cwbowron started from the idea of (manually) organising playlists in hierarchical form. In my opinion, however, the killer feature of this plugin is dynamic folders. Dynamic folders allow not only to reproduce any view of your database as Albumlist does, but also to create any special section of your database like with Extended Playlist Generator (Top Rated, Most Played, Last Played, you can also make a dynamic folder with your Hystory list). That’s almost all I want and need. Last thing I may like to have is a good way to store my personal playlists.

At first I thought I would have used plain folders in Playlist tree to store my personal playlists, intended as collections of files I could not group toghether with any specific query (a cd I made to go on holiday, a compilation I made for a friend, etc.). But then I thought there was a better, more reliable way to organize these playlists. I created a new “PLAYLIST” tag, tagged these files with the playlist name and stored them in a dynamic folder. Multiple values allow to have the same song in different playlists. No risk to mess up folders and no need to store playlists on separate files. It’s like using labels in Gmail or in Mozilla Thunderbird.

For me, non-dynamic folders are just needed to group toghether several dynamic folders or to temporally store files which are not yet better organized.
In my opinion, I would also make non-dynamic folders just a special case of dynamic folders with a disabled query, so that also non-dynamic folders can have their own property window with display string and sort criteria.

I have some other suggestion for future development but at the moment I don’t want to overwhelm cwbowron with tons of new requests. I’ll just wait for the present features to be fully developed. wink.gif

Keep up the good work! smile.gif
cwbowron
QUOTE(marcomk @ Dec 12 2004, 06:57 PM)
Hi cwbowron,

I think I found a reproducible crash.  From the empty playlist tree, just create a dynamic folder with any query (I tried with 1, which includes any file in database). Then drag the folder you created and drop on itself.  Crash  crying.gif

Let's talk about queries, now.  smile.gif
1. I can't really understand how to create a dynamic folder which contains all the files that contain a specific tag (%rating% for example).  I tried to insert "%rating%" in the query, or the extended playlist generator expression "NOT %rating% MISSING" but I'm not having consistent results.
2. I don't think that the Sort criteria field in dynamic folder window works. Also (sorry to ask you this again) I think it is important to have something like a "reverse order" checkbox if you want to be able to create Most played/Least played kind of folders.
3. What is the "extended search" checkbox?

That's all (for now). I hope you don't get bored to develop this fantastic plugin.  wink.gif
*


I dont know what the issue with the crash is... I dont get a similar crash...

The extended search box checkbox means that the query is in foo_playlist_gen format... It will be renamed to "foo_playlist_gen" format in the next release...

The sort criteria not working is a known bug and is listed in the readme file...

You might try a test like $if2(%rating%,"") or $if2(%ratingt%,) for your test...
cwbowron
QUOTE(cwbowron @ Dec 12 2004, 10:24 PM)
QUOTE(marcomk @ Dec 12 2004, 06:57 PM)
Hi cwbowron,

2. I don't think that the Sort criteria field in dynamic folder window works. Also (sorry to ask you this again) I think it is important to have something like a "reverse order" checkbox if you want to be able to create Most played/Least played kind of folders.
*


*


I just uploaded a version that a reverse button for reversing the sort criteria... I dont know how well the sort thing is working though...
Killmaster
Your new query box doesn't support tabbing. It's also a bit large for what it is.. I realize that you're still working on this thing so I will withhold judgement for now, just thought you might find it helpful smile.gif
jkwarras
QUOTE(stroke @ Dec 12 2004, 03:21 PM)
2. what do you think about adding an option to refresh playlist tree on expanding/collapsing a folder? would be useful for dynamic folders relying on changable tags (like playcounter).
*

That would be cool, but I would like something that's auto-refreshing instead of just when I expand/collapse a folder. I don't think that will require too much ressoruces, when I hit refresh view on album list panel it doesn't take more than 1 second.

BTW, I don't know if what you suggest needs to scan the database instead of just refreshing. AFAIK refreshing will update the panel with values that have changed in the database. If you have changed something outside foobar, you'll need to scan it and refresh. For playcounter refresh option is enough smile.gif
stroke
QUOTE(jkwarras @ Dec 13 2004, 03:19 PM)
QUOTE(stroke @ Dec 12 2004, 03:21 PM)

2. what do you think about adding an option to refresh playlist tree on expanding/collapsing a folder? would be useful for dynamic folders relying on changable tags (like playcounter).
*

That would be cool, but I would like something that's auto-refreshing instead of just when I expand/collapse a folder.
*

if it would be possible for playlist tree to watch changes to database, then autorefresh on every change would be fantastic, if not, there would always be the problem of how often should it autorefresh itself, i guess smile.gif
QUOTE(jkwarras @ Dec 13 2004, 03:19 PM)
BTW, I don't know if what you suggest needs to scan the database instead of just refreshing. AFAIK refreshing will update the panel with values that have changed in the database. If you have changed something outside foobar, you'll need to scan it and refresh. For playcounter refresh option is enough smile.gif
*


i thought about refresh option that would synchronize display with database, if i make changes outside foobar i always rescan the database (and think that there is no keyboard shortcut to accomplish that, grhhhh wink.gif )
cwbowron
QUOTE(stroke @ Dec 13 2004, 10:43 AM)
i thought about refresh option that would synchronize display with database, if i make changes outside foobar i always rescan the database (and think that there is no keyboard shortcut to accomplish that, grhhhh wink.gif )
*


I don't think you're going to get an automatic refresh option, but I just uploaded something that might be useful instead... I added a main menu item to refresh the queries... its under Components->Playlist Tree->Refresh Queries... I would suggest mapping it to a global hotkey...

I also added a configuration option "Manual query refresh". This option will delay the population of the queries until you manually refresh the query... this can cut down on loading time... you dont have to populate the query until you want to.
stroke
QUOTE(cwbowron @ Dec 13 2004, 06:06 PM)
I don't think you're going to get an automatic refresh option, but I just uploaded something that might be useful instead... I added a main menu item to refresh the queries... its under Components->Playlist Tree->Refresh Queries... I would suggest mapping it to a global hotkey...
*


a global hotkey... is OK smile.gif
marcomk
QUOTE(cwbowron @ Dec 13 2004, 04:24 AM)
I dont know what the issue with the crash is... I dont get a similar crash...


Well, I made some further tests. I reinstalled a Lite configuration of foobar with Columns UI 0.1.2 RC1 and the last Playlist tree.

At first I included in the database just a small portion of my music library (6Gb of music) and I created a couple of simple dynamic folders (Query=1, Display=%artist%|%album%).
Moving a folder in itself or at higher level doesn't create any problem.

Then I included all my music in the database (23Gb) and I tried again.
Moving the folder in itself, in the root, in another folder causes a crash.

Here's the log.

CODE

Illegal operation:
Code: C0000005h, flags: 00000000h, address: 775C8097h
Access violation, operation: read, address: 00000008h
Call path:
WinMain=>app_mainloop
This is the first crash logged by this instance.
Code bytes (775C8097h):
775C8057h:  11 6A 01 FF 75 30 FF D7 50 FF D6 C7 45 0C 01 00
775C8067h:  00 00 FF 75 24 8B 03 FF 75 20 FF 75 1C FF 75 18
775C8077h:  FF 75 F8 53 FF 50 18 83 7D 0C 01 89 45 FC 75 0A
775C8087h:  6A 00 FF 75 30 FF D7 50 FF D6 8B 45 F8 8B 08 50
775C8097h:  FF 51 08 33 FF E9 F4 00 00 00 68 18 BC 4B 77 FF
775C80A7h:  75 0C FF 15 48 15 4B 77 3B C7 89 45 F8 74 06 8B
775C80B7h:  08 50 FF 51 08 8B 03 53 FF 50 14 EB 12 FF 75 24
775C80C7h:  8B 03 FF 75 20 FF 75 1C FF 75 18 53 FF 50 10 89
Stack (0012FC40h):
0012FC20h:  04A1E498 7C9D76F0 77E943DD 7C9D76F0
0012FC30h:  00000004 00000000 04A1D9A4 00000000
0012FC40h:  00D3AA80 774B6E2C 00F234B8 00000000
0012FC50h:  00D3AA80 00000000 0012FC98 775C82C0
0012FC60h:  00F23138 00000000 00000000 00000004
0012FC70h:  00000000 000001E4 0000032C 0012FDB4
0012FC80h:  00000A84 00D3AA80 0010079C 00151E90
0012FC90h:  00F23558 00000001 0012FD00 7759F400
0012FCA0h:  00070848 00000004 00151E90 00D3AA80
0012FCB0h:  00000000 000001E4 0000032C 0012FDB4
0012FCC0h:  0010079C 00F23570 00000000 0012FD2C
0012FCD0h:  00000000 77D1B3C4 00000000 00000000
0012FCE0h:  00000000 00000000 0012FD78 7C91EAE3
0012FCF0h:  0012FCF8 00000018 006588C8 80004005
0012FD00h:  0012FD78 7759F288 00F23558 00D3AA80
0012FD10h:  00000000 000001E4 0000032C 0012FDB4
0012FD20h:  0012FE10 00D3AA80 7759FBB5 00D3AA80
0012FD30h:  00151E90 00A10470 00F23558 00A0FBB8
0012FD40h:  00000000 000001E4 0000032C 00000001
0012FD50h:  0012FDB4 00000000 00010011 00070848
Registers:
EAX: 00D3AA80, EBX: 00A0FBB8, ECX: 00000000, EDX: 7C91EB94
ESI: 77D2674F, EDI: 7C809737, EBP: 0012FC58, ESP: 0012FC40
Crash location: "ole32", loaded at 774B0000h - 775EC000h
Symbol: "StgGetIFillLockBytesOnFile" (+000085AAh)

Loaded modules:
foobar2000                       loaded at 00400000h - 00452000h
ntdll                            loaded at 7C910000h - 7C9C6000h
kernel32                         loaded at 7C800000h - 7C8FF000h
USER32                           loaded at 77D10000h - 77DA0000h
GDI32                            loaded at 77E40000h - 77E86000h
ole32                            loaded at 774B0000h - 775EC000h
msvcrt                           loaded at 77BE0000h - 77C38000h
ADVAPI32                         loaded at 77F40000h - 77FEB000h
RPCRT4                           loaded at 77DA0000h - 77E31000h
COMCTL32                         loaded at 773A0000h - 774A2000h
SHLWAPI                          loaded at 77E90000h - 77F2D000h
utf8api                          loaded at 10000000h - 1000D000h
comdlg32                         loaded at 76360000h - 763AA000h
SHELL32                          loaded at 7C9D0000h - 7EB16000h
foo_input_std                    loaded at 008D0000h - 0096E000h
MSACM32                          loaded at 77BB0000h - 77BC5000h
WINMM                            loaded at 76B00000h - 76B2E000h
serwvdrv                         loaded at 5D190000h - 5D197000h
umdmxfrm                         loaded at 5B4B0000h - 5B4B7000h
foo_output_std                   loaded at 009F0000h - 009F9000h
foo_playlist_tree                loaded at 00A00000h - 00A1C000h
foo_ui_columns                   loaded at 00A20000h - 00A57000h
foo_ui_std                       loaded at 00A60000h - 00A77000h
foo_vis_manager                  loaded at 00A80000h - 00A88000h
uxtheme                          loaded at 5B180000h - 5B1B8000h
LgWndHk                          loaded at 00BF0000h - 00BF7000h
iTchHk                           loaded at 00C00000h - 00C07000h
LgMsgHk                          loaded at 00C70000h - 00C7B000h
MSVCP60                          loaded at 76030000h - 76095000h
idle                             loaded at 60300000h - 60307000h
MSVCR71                          loaded at 7C340000h - 7C396000h
xpsp2res                         loaded at 20000000h - 202D5000h
imagehlp                         loaded at 76C50000h - 76C78000h
DBGHELP                          loaded at 59E60000h - 59F01000h
VERSION                          loaded at 77BD0000h - 77BD8000h

Stack dump analysis:
Address: 774B6E2Ch, location: "ole32", loaded at 774B0000h - 775EC000h
Address: 775C82C0h, location: "ole32", loaded at 774B0000h - 775EC000h
Symbol: "StgGetIFillLockBytesOnFile" (+000087D3h)
Address: 7759F400h, location: "ole32", loaded at 774B0000h - 775EC000h
Symbol: "CreateDataCache" (+00003CD2h)
Address: 77D1B3C4h, location: "USER32", loaded at 77D10000h - 77DA0000h
Symbol: "DefWindowProcW" (+000001DFh)
Address: 7C91EAE3h, location: "ntdll", loaded at 7C910000h - 7C9C6000h
Symbol: "KiUserCallbackDispatcher" (+00000013h)
Address: 7759F288h, location: "ole32", loaded at 774B0000h - 775EC000h
Symbol: "CreateDataCache" (+00003B5Ah)
Address: 7759FBB5h, location: "ole32", loaded at 774B0000h - 775EC000h
Symbol: "DoDragDrop" (+000000ABh)
Address: 00A10470h, location: "foo_playlist_tree", loaded at 00A00000h - 00A1C000h
Address: 00A0FBB8h, location: "foo_playlist_tree", loaded at 00A00000h - 00A1C000h
Address: 00A087AFh, location: "foo_playlist_tree", loaded at 00A00000h - 00A1C000h
Address: 00A10470h, location: "foo_playlist_tree", loaded at 00A00000h - 00A1C000h
Address: 00A08525h, location: "foo_playlist_tree", loaded at 00A00000h - 00A1C000h
Address: 77D18709h, location: "USER32", loaded at 77D10000h - 77DA0000h
Symbol: "GetDC" (+00000072h)
Address: 00A08525h, location: "foo_playlist_tree", loaded at 00A00000h - 00A1C000h
Address: 00A08525h, location: "foo_playlist_tree", loaded at 00A00000h - 00A1C000h
Address: 77D187EBh, location: "USER32", loaded at 77D10000h - 77DA0000h
Symbol: "GetDC" (+00000154h)
Address: 00A08525h, location: "foo_playlist_tree", loaded at 00A00000h - 00A1C000h
Address: 77D40494h, location: "USER32", loaded at 77D10000h - 77DA0000h
Symbol: "GetClipboardFormatNameA" (+0000014Fh)
Address: 77D18808h, location: "USER32", loaded at 77D10000h - 77DA0000h
Symbol: "GetDC" (+00000171h)
Address: 77D189A5h, location: "USER32", loaded at 77D10000h - 77DA0000h
Symbol: "GetWindowLongW" (+00000127h)
Address: 00A08525h, location: "foo_playlist_tree", loaded at 00A00000h - 00A1C000h
Address: 77D253A0h, location: "USER32", loaded at 77D10000h - 77DA0000h
Symbol: "SetActiveWindow" (+00000020h)
Address: 77D40494h, location: "USER32", loaded at 77D10000h - 77DA0000h
Symbol: "GetClipboardFormatNameA" (+0000014Fh)
Address: 77D189C8h, location: "USER32", loaded at 77D10000h - 77DA0000h
Symbol: "GetWindowLongW" (+0000014Ah)
Address: 77D189E8h, location: "USER32", loaded at 77D10000h - 77DA0000h
Symbol: "DispatchMessageW" (+0000000Fh)
Address: 77D3E819h, location: "USER32", loaded at 77D10000h - 77DA0000h
Symbol: "IsDialogMessageW" (+000000DBh)
Address: 100036BCh, location: "utf8api", loaded at 10000000h - 1000D000h
Symbol: "uIsDialogMessage" (+0000000Eh)
Address: 0041236Ch, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 00410FEAh, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 00438DB5h, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 00400000h, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 00438DE0h, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 0043C320h, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 7C816D4Fh, location: "kernel32", loaded at 7C800000h - 7C8FF000h
Symbol: "RegisterWaitForInputIdle" (+00000049h)
Address: 7C8399F3h, location: "kernel32", loaded at 7C800000h - 7C8FF000h
Symbol: "FindAtomW" (+00000094h)
Address: 7C816D58h, location: "kernel32", loaded at 7C800000h - 7C8FF000h
Symbol: "RegisterWaitForInputIdle" (+00000052h)
Address: 00438C81h, location: "foobar2000", loaded at 00400000h - 00452000h

Version info:
foobar2000 v0.8.3
UNICODE


QUOTE(cwbowron @ Dec 13 2004, 04:24 AM)
You might try a test like $if2(%rating%,"") or $if2(%ratingt%,) for your test...


[%rating%] works well as a filter, thanks. wink.gif


QUOTE(cwbowron @ Dec 13 2004, 04:24 AM)
The sort criteria not working is a known bug and is listed in the readme file...


Sorry, I didn't realize there was a readme file...

Thanks wink.gif
NEMO7538
Another crash


Illegal operation:
Code: C0000005h, flags: 00000000h, address: 013D4BAAh
Access violation, operation: read, address: 00730102h
Call path:
WinMain=>app_mainloop
This is the first crash logged by this instance.
Code bytes (013D4BAAh):
013D4B6Ah: 16 68 04 F6 3D 01 8D 4D E4 C7 45 FC 01 00 00 00
013D4B7Ah: E8 39 E7 FF FF EB 02 8B C6 8B 4D 08 50 E8 0E FD
013D4B8Ah: FF FF F6 45 FC 01 74 10 83 7D E8 00 74 0A FF 75
013D4B9Ah: E8 FF 15 E4 D0 3D 01 59 8B 45 08 5E C9 C2 04 00
013D4BAAh: F7 81 8C 00 00 00 FC FF FF FF 76 04 6A 13 EB 08
013D4BBAh: 83 79 68 00 74 04 6A 0E 58 C3 33 C0 39 41 6C 0F
013D4BCAh: 95 C0 40 C3 A1 04 59 3E 01 85 C0 74 08 50 FF 15
013D4BDAh: E4 D0 3D 01 59 C3 E8 05 00 00 00 E9 10 00 00 00
Stack (0012FBCCh):
0012FBACh: 78461F55 78462528 FFFFFFFF 00E5D4AC
0012FBBCh: 77E9F6C9 00070000 00000000 0015EDB0
0012FBCCh: 013D450C 00000000 00730076 00000001
0012FBDCh: 00000001 00000000 0A574A30 00000000
0012FBECh: 013D5580 0012FC3C 013D559B 0012FC10
0012FBFCh: 0000029B 0A1C4DE0 005035A0 00620075
0012FC0Ch: FFFF0002 00000000 00000000 00000000
0012FC1Ch: 00000000 00000000 00000000 00000000
0012FC2Ch: 00000000 00000000 00000000 00000000
0012FC3Ch: 0012FCB0 013D5556 00020356 00620075
0012FC4Ch: 00000001 0A1C4DE0 013D5494 013E1EB8
0012FC5Ch: 013D5D7E 00000111 001C0386 77E15038
0012FC6Ch: 0B3317D8 01010058 00000003 00000000
0012FC7Ch: 0B3317D8 004FF800 00000004 01010058
0012FC8Ch: 77F5EDFA 01010058 0B3317D8 01010058
0012FC9Ch: 77E02CC0 01010058 00000029 004FF800
0012FCACh: 77E1426A 0012FCD0 77E01EF0 00220308
0012FCBCh: 00000111 00000001 001C0386 001C0386
0012FCCCh: DCBAABCD 0012FD0C 77E1310E 013D5C5D
0012FCDCh: 00220308 00000111 00000001 001C0386
Registers:
EAX: 0012FC10, EBX: 005035A0, ECX: 00730076, EDX: 00000000
ESI: 00730076, EDI: 00730076, EBP: 0012FBF0, ESP: 0012FBCC
Crash location: "foo_playlist_tree", loaded at 013D0000h - 013EC000h

Loaded modules:
foobar2000 loaded at 00400000h - 00452000h
ntdll loaded at 78460000h - 784E3000h
KERNEL32 loaded at 77E70000h - 77F2E000h
USER32 loaded at 77E00000h - 77E65000h
GDI32 loaded at 77F40000h - 77F7B000h
ole32 loaded at 77A40000h - 77B2F000h
RPCRT4 loaded at 770C0000h - 77131000h
ADVAPI32 loaded at 78ED0000h - 78F32000h
COMCTL32 loaded at 77B40000h - 77BC9000h
utf8api loaded at 10000000h - 1000D000h
comdlg32 loaded at 76B00000h - 76B3E000h
SHLWAPI loaded at 77C60000h - 77CA9000h
SHELL32 loaded at 77580000h - 777CC000h
MSVCRT loaded at 78000000h - 78045000h
foo_ac3 loaded at 00800000h - 00813000h
foo_albumlist loaded at 00820000h - 0082B000h
foo_burninate loaded at 00830000h - 0083C000h
VERSION loaded at 77810000h - 77817000h
LZ32 loaded at 75950000h - 75956000h
foo_cdda loaded at 00840000h - 0084E000h
foo_clienc loaded at 00850000h - 0085B000h
foo_console loaded at 00860000h - 00867000h
foo_dbsearch loaded at 00870000h - 00888000h
foo_diskwriter loaded at 00890000h - 008A2000h
WINMM loaded at 77540000h - 77571000h
foo_dsp_extra loaded at 00930000h - 00945000h
foo_dsp_nogaps loaded at 00950000h - 00957000h
foo_dynamics loaded at 00960000h - 00967000h
foo_faac loaded at 00970000h - 009A3000h
foo_flac loaded at 009B0000h - 009CC000h
foo_flaccer loaded at 009D0000h - 009E6000h
foo_freedb loaded at 009F0000h - 00A1E000h
WS2_32 loaded at 74FB0000h - 74FC4000h
WS2HELP loaded at 74FA0000h - 74FA8000h
foo_id3v2 loaded at 00A20000h - 00A50000h
MSVCP60 loaded at 780C0000h - 78121000h
foo_infobox loaded at 00A50000h - 00A63000h
foo_input_std loaded at 00A70000h - 00B0E000h
MSACM32 loaded at 773E0000h - 773F3000h
foo_masstag loaded at 00B10000h - 00B24000h
foo_null loaded at 00B30000h - 00B37000h
foo_output_std loaded at 00B40000h - 00B49000h
foo_out_dsound_ex loaded at 00B50000h - 00B59000h
DSOUND loaded at 51080000h - 510DD000h
foo_out_ks loaded at 00B70000h - 00B7B000h
SETUPAPI loaded at 783C0000h - 78451000h
USERENV loaded at 78D20000h - 78D82000h
foo_playlistgen_ex loaded at 00B80000h - 00B8F000h
foo_rgscan loaded at 00B90000h - 00B9D000h
foo_scroll loaded at 00BA0000h - 00BA6000h
foo_ui_std loaded at 00BB0000h - 00BC7000h
foo_utils loaded at 00BD0000h - 00BE1000h
foo_vis_manager loaded at 00BF0000h - 00BF8000h
foo_vorbisenc loaded at 00C00000h - 00D11000h
foo_wma loaded at 00D20000h - 00D3A000h
WMVCore loaded at 08530000h - 0872D000h
WMASF loaded at 07260000h - 07299000h
OLEAUT32 loaded at 779A0000h - 77A3B000h
foo_history loaded at 01150000h - 01165000h
foo_history_panel loaded at 01270000h - 01278000h
foo_openwith loaded at 01280000h - 01289000h
MSVCR71 loaded at 7C340000h - 7C396000h
foo_osd loaded at 012A0000h - 012AB000h
foo_pod loaded at 012B0000h - 01312000h
foo_podclienc loaded at 01320000h - 0132E000h
foo_podtranscoder loaded at 01330000h - 0133B000h
foo_read_http loaded at 01340000h - 01353000h
foo_shuffle loaded at 01360000h - 0136A000h
foo_temple loaded at 01370000h - 0137B000h
foo_web loaded at 01380000h - 01398000h
foo_write_http loaded at 013A0000h - 013BA000h
foo_playlistfind loaded at 013C0000h - 013CB000h
foo_playlist_tree loaded at 013D0000h - 013EC000h
foo_scheduler loaded at 013F0000h - 01405000h
foo_uie_albumlist loaded at 01410000h - 0141F000h
foo_uie_dbexplorer loaded at 01420000h - 0142B000h
foo_uie_tabs loaded at 01430000h - 0143A000h
foo_uie_trackinfo loaded at 01440000h - 0144B000h
foo_uie_volume loaded at 01450000h - 0145A000h
foo_ui_columns loaded at 01460000h - 01497000h
Powrprof loaded at 76690000h - 76697000h
CLBCATQ loaded at 72C60000h - 72CF0000h
SSSensor loaded at 06270000h - 06285000h
cscui loaded at 77840000h - 77880000h
CSCDLL loaded at 77090000h - 770B3000h
ntshrui loaded at 76F70000h - 76F7F000h
ATL loaded at 773B0000h - 773C5000h
NETAPI32 loaded at 750F0000h - 7513F000h
Secur32 loaded at 78FB0000h - 78FBF000h
NTDSAPI loaded at 77BE0000h - 77BF1000h
DNSAPI loaded at 77970000h - 77994000h
WSOCK32 loaded at 74FD0000h - 74FD9000h
WLDAP32 loaded at 77940000h - 7796B000h
NETRAP loaded at 75140000h - 75146000h
SAMLIB loaded at 750D0000h - 750DF000h
browseui loaded at 76DE0000h - 76EA7000h
SHDOCVW loaded at 78DB0000h - 78EC2000h
wdmaud loaded at 77530000h - 77538000h
msacm32 loaded at 773D0000h - 773D8000h
KsUser loaded at 5EF80000h - 5EF84000h
imagehlp loaded at 77910000h - 77933000h
DBGHELP loaded at 72970000h - 7299D000h

Stack dump analysis:
Address: 013D450Ch, location: "foo_playlist_tree", loaded at 013D0000h - 013EC000h
Address: 013D5580h, location: "foo_playlist_tree", loaded at 013D0000h - 013EC000h
Address: 013D559Bh, location: "foo_playlist_tree", loaded at 013D0000h - 013EC000h
Address: 013D5556h, location: "foo_playlist_tree", loaded at 013D0000h - 013EC000h
Address: 013D5494h, location: "foo_playlist_tree", loaded at 013D0000h - 013EC000h
Address: 013E1EB8h, location: "foo_playlist_tree", loaded at 013D0000h - 013EC000h
Address: 013D5D7Eh, location: "foo_playlist_tree", loaded at 013D0000h - 013EC000h
Address: 77E15038h, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77F5EDFAh, location: "GDI32", loaded at 77F40000h - 77F7B000h
Address: 77E02CC0h, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77E1426Ah, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77E01EF0h, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77E1310Eh, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 013D5C5Dh, location: "foo_playlist_tree", loaded at 013D0000h - 013EC000h
Address: 77E061C1h, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77E036A9h, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77E039E5h, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77E1542Fh, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77E144FAh, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77E593C0h, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77E13E2Ah, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77E03A44h, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 0146E0C1h, location: "foo_ui_columns", loaded at 01460000h - 01497000h
Address: 77E1BAC7h, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77E150C6h, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77E01EF0h, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77E0204Ch, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77E1507Dh, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 7847FF57h, location: "ntdll", loaded at 78460000h - 784E3000h
Address: 77E10CDBh, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 0086355Ch, location: "foo_console", loaded at 00860000h - 00867000h
Address: 77E108BFh, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77E2BCE4h, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77E02198h, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 77E021AFh, location: "USER32", loaded at 77E00000h - 77E65000h
Address: 100038ECh, location: "utf8api", loaded at 10000000h - 1000D000h
Symbol: "uDispatchMessage" (+0000000Ah)
Address: 0041238Bh, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 0086355Ch, location: "foo_console", loaded at 00860000h - 00867000h
Address: 00410FEAh, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 00438DB5h, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 00400000h, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 00438DE0h, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 0043C320h, location: "foobar2000", loaded at 00400000h - 00452000h
Address: 77E9893Dh, location: "KERNEL32", loaded at 77E70000h - 77F2E000h

Version info:
foobar2000 v0.8.3
UNICODE
cwbowron
QUOTE(NEMO7538 @ Dec 13 2004, 01:49 PM)
Another crash

*


Useless.

Tell me what you were doing.
NEMO7538
QUOTE(cwbowron @ Dec 13 2004, 11:16 AM)
QUOTE(NEMO7538 @ Dec 13 2004, 01:49 PM)
Another crash

*


Useless.

Tell me what you were doing.
*


Dragging a dynamic folder at the top level
cwbowron
QUOTE(NEMO7538 @ Dec 13 2004, 02:28 PM)
QUOTE(cwbowron @ Dec 13 2004, 11:16 AM)
QUOTE(NEMO7538 @ Dec 13 2004, 01:49 PM)
Another crash

*


Useless.

Tell me what you were doing.
*


Dragging a dynamic folder at the top level
*


I'm thinking these dynamic folder movement crashes have something to do with the files in them or something rather than the magnitude of the folder contents... I created a dynamic folder with all my stuff in (>100 gigs) and I can move it around to various levels of the tree without crashing... it could be something in the way I pass around the pointers too... i'll take a look...
cwbowron
QUOTE(Killmaster @ Dec 13 2004, 03:52 AM)
Your new query box doesn't support tabbing. It's also a bit large for what it is.. I realize that you're still working on this thing so I will withhold judgement for now, just thought you might find it helpful smile.gif
*


I just uploaded a new version with a tabbable query edit box...
marcomk
QUOTE(cwbowron @ Dec 13 2004, 09:03 PM)
I'm thinking these dynamic folder movement crashes have something to do with the files in them or something rather than the magnitude of the folder contents... I created a dynamic folder with all my stuff in (>100 gigs) and I can move it around to various levels of the tree without crashing... it could be something in the way I pass around the pointers too... i'll take a look...
*


Well, I may try to find out if the problems occur with a specific group of files....
Is there any other test we can do that you might find helpful?
jkwarras
Thanks cwbowron, the possibility of adding queries in extended playlist geenrator format is really awesome (and very useful) smile.gif

I have two little request whatever you have time and interest in it wink.gif :

1) Add color strings in display (i.e. '$repeat(0080FF|000000●,%rating%)$repeat(414141|787878●,$sub(5,%rating%))')

2) Add the possibility of query in this format
CODE
tag
instead of just
CODE
%tag%
. This is possible in album list, so I guess that it wont be too difficult to add unsure.gif

An example of use: Let's take a file with the same tag %tag% but with different values:

%tag%=TagA
%tag%=TagB
%tag%=TagC

Display=%tag%|%artist%|%album%|%title%

This will display like this:

+T