Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: WSH Panel Mod script discussion/help (Read 1400224 times) previous topic - next topic
0 Members and 3 Guests are viewing this topic.

WSH Panel Mod script discussion/help

Reply #1100
thanks for posting that. now to *ahem* borrow some code.

a few issues: add a file and then add the same file again. aw, crashed

also, when you finally manage to add multiple files to the same playlist, it treats them all as the same track when selected or playing. not that i ever do this but you have to account for all possible actions.

using shift+click to select a range of files doesn't behave like a standard playlist. let's say i select track 5 with shift held down. now i click track 1 and tracks 1-5 are selected. so far, so good. but now i select track 10. the range should change from 5-10. but your playlist adds to the selection keeping 1-4 selected when they should be cleared.


WSH Panel Mod script discussion/help

Reply #1101
thanks for posting that. now to *ahem* borrow some code.

a few issues: add a file and then add the same file again. aw, crashed

also, when you finally manage to add multiple files to the same playlist, it treats them all as the same track when selected or playing. not that i ever do this but you have to account for all possible actions.

using shift+click to select a range of files doesn't behave like a standard playlist. let's say i select track 5 with shift held down. now i click track 1 and tracks 1-5 are selected. so far, so good. but now i select track 10. the range should change from 5-10. but your playlist adds to the selection keeping 1-4 selected when they should be cleared.


i never have a track more than once in a playlist (crazy thing for me), but it should handle it as well, i'll check that, thanx for reporting.

i know this behaviour for shift selection, but not on the top of my todo list actually

EDIT: FYI,  draw cover art just optimized, too much refresh done in the shared script, and cache engine optimized to handle a timer for each cover visible (not a full get'n draw like done in the shared script)


WSH Panel Mod script discussion/help

Reply #1103
for the crash issue on adding the same file, the fix is to change the function below with this (2 new lines in blue to add):

function on_playlist_items_selection_change() {
    g_metadb_playlist = plman.GetPlaylistItems(fb.ActivePlaylist);
    IC.list_total = fb.PlaylistItemCount(fb.ActivePlaylist);

    on_item_focus_change();
}

WSH Panel Mod script discussion/help

Reply #1104
When I see that, I think that it should be possible to create a big WSH panel to control entirely foobar2000 with a remote (sending keystrokes to the panel).  IMO, it's something that is missing in F2k.  It's a wonderful player to be used on a PC with a mouse, but currently, as far as I know, there is no way to integrate it easily in a multimedia-only PC, that has no keyboard or mouse.

Interested?  ;-)

WSH Panel Mod script discussion/help

Reply #1105
my scrollbar is quite separate from my content. in on_paint, the position of the grabber is determined by the position in my array of items of where i want to start looping. if i have 100 items but only room for 10 rows and i want to display the last 10, i'll be starting at 90.

My method is totally different.  All things to display are drawn in a bitmap (higher than the viewport), and the entire bitmap is scrolled totally automatically when needed.  The advantage is that you have just to draw your stuff once.  The viewport object does the rest automatically when the user uses the scrollbar.  That's very fast, as the object has only to scroll the bitmap and refresh the scrollbar.  There is no need to recreate all visible elements.  (Of course, you need to recreate the bitmap if the width of the window changes or if the things to show must be updated.)  Also, things that are outside the viewport (and are therefore at fixed positions) are not modified when the viewport refreshes itself.  So, you need also to draw them once.  Another advantage is that the viewport object holds constantly the X and Y mouse positions relatively to the top-left corner of the bitmap, so you don't need more or less complex calculations to find over what element the mouse is positioned: you can find it with X and Y.

My method has also some drawbacks.  You must allocate a bitmap large enough to hold the entire display.  For very big panels (such as important playlists), that could be a problem.
Also, in some cases, it is not easy to determine the height of the bitmap, and that's necessary before beginning to draw the elements.  (For example, I have created a panel to display the current track information, and it uses different (big) fonts for the artist, title, composer, performers, etc...  If a tag is missing, it must simply skip it, without leaving a blank space.  It is currently not simple to compute the height of the panel, and I will probably add a "dummy" flag to the viewport's draw method to simulate the drawing of the elements and return the total height.  It will then be sufficient to call the same function twice: once with the "dummy" flag to compute the height of the bitmap, and the second time to draw the stuff in the bitmap with the correct height.)


WSH Panel Mod script discussion/help

Reply #1107
...
I made a WSH graphical browser.
The scroll bar is simple but effective enough.


mind sharing script ?

Well, I am doing final debug and optimization, however, it would be a bad-efficient "component" as the original graphical browser, because it needs to evaluate all items inside a playlist.
mad messy misanthropist morbid mused

WSH Panel Mod script discussion/help

Reply #1108
ok, well, keep the good work and give us an optimized versions asap


WSH Panel Mod script discussion/help

Reply #1110
Hello marc2003,

In one dui tabstack i placed 4 of your autoplaylists script. I assume that they are expected to work independently. In that sense there seems to be a bug as they are not totally independent. Here a video that shows what i mean: http://www.youtube.com/watch?v=nRgIH0RoAjE

By the way: would be nice to have the opportunity to rename the caption "Autoplaylist" to something that matches the content of one list. When you have installed your script more than one time to achieve some sort of organization of autoplaylist some names like "Statistics", "By Artist", "By Genre" and so on would be helpful. I already did that by manipulating your script but after import of new versions of the script the names are lost.

WSH Panel Mod script discussion/help

Reply #1111
it's not a bug - it's a feature. because i switch between columns UI and default UI regularly, they share the data file named simply autoplaylists inside a folder named wsh_settings in your profile folder. if i ever remove the panel from my layout and then add it back again later, my autoplaylists are retained. i never thought anyone would run multiple instances.

as for your video, the panel reads the file into memory. but as soon as any changes are made it gets saved immediately. there is no synchronisation between panels for the reasons i mentioned above although it is possible.

however, adding support to name your own panels with separate files for each should be fairly trivial. i'll see what i can do.

edit: actually, i won't be doing any script updates until WSH panel mod 1.5 is released. i have no idea when that will be as the developer hasn't posted on the forums for awhile although development is very active at the moment - i've been checking his google code page for updates.

if you want independent scripts right now, simply edit line 8

Code: [Select]
var autoplaylists_file = settings_path + "autoplaylists";


eg

Code: [Select]
var autoplaylists_file = settings_path + "autoplaylists_panel1";
var autoplaylists_file = settings_path + "autoplaylists_panel2";


WSH Panel Mod script discussion/help

Reply #1112
i never thought anyone would run multiple instances.

That was the first i was thinking when starting the usage of your script. IMO several lists gives an better overview over a large amount of autoplaylists presets than a treeview could do.

Edit
Replaced the line in the txt.file, removed the wsh ui-elements, restarted foobar2000 and added again wsh ui-elements with importing autoplaylist script. It seems to have no effect.

WSH Panel Mod script discussion/help

Reply #1113
well if you're editing the script before importing then of course all panels will still use the same file. i meant edit the panels.

try this instead....

Code: [Select]
var autoplaylists_file = settings_path + "autoplaylists_" + window.GetProperty("id", window.ID);



WSH Panel Mod script discussion/help

Reply #1114
well if you're editing the script before importing then of course all panels will still use the same file.
How could i know that! 

Much thanks, now it works: all new added autoplaylist scripts start with a blank list.


WSH Panel Mod script discussion/help

Reply #1116

95% finished.

The only question: can not easily get the position of now playing item by using IFbMetadbHandleList
mad messy misanthropist morbid mused

 

WSH Panel Mod script discussion/help

Reply #1117
you're kidding?

var nowplaying = plman.GetPlayingItemLocation();
var pid = nowplaying.PlaylistItemIndex;



WSH Panel Mod script discussion/help

Reply #1118
you're kidding?

var nowplaying = plman.GetPlayingItemLocation();
var pid = nowplaying.PlaylistItemIndex;




problem is i re-arranged the contents of the list.
you can find that the order in browser is different from the playlist.
mad messy misanthropist morbid mused

WSH Panel Mod script discussion/help

Reply #1119
Hey, guys. Recently I'm getting frequent crashes in foobar and the reports point to this component. Thing is that I haven't changed anything and can't trace it to which of my panels is doing it (I have 3). Any help?

Code: [Select]
Illegal operation:
Code: 80000003h, flags: 00000000h, address: 6C81B5ACh
Additional parameters: 00000000h

Call path:
entry=>app_mainloop

Code bytes (6C81B5ACh):
6C81B56Ch:  4D F4 64 89 0D 00 00 00 00 5F 5E 5B 8B E5 5D C2
6C81B57Ch:  0C 00 8B 75 08 83 C6 64 8D 5D 8C E8 04 C4 02 00
6C81B58Ch:  8B 4D CC 8B 01 8B 50 04 FF D2 50 8B C3 50 68 18
6C81B59Ch:  11 89 6C E8 0B D6 02 00 83 C4 0C E8 84 BC FF FF
6C81B5ACh:  CC C7 45 FC FF FF FF FF B8 BA B5 81 6C C3 8B 75
6C81B5BCh:  E8 8B 16 8B 42 08 8B 7D E4 56 FF D0 8B C7 8B 4D
6C81B5CCh:  F4 64 89 0D 00 00 00 00 5F 5E 5B 8B E5 5D C2 0C
6C81B5DCh:  00 8B 75 08 83 C6 64 8D 9D 4C FF FF FF E8 A2 C3

Stack (0032E4A8h):
0032E488h:  00000000 FFFFFD34 000002E4 FFFFFD34
0032E498h:  000002CC 00000019 00000000 6C81B5AC
0032E4A8h:  6C87F0D7 0032F510 0032E748 0032E4C4
0032E4B8h:  0032F510 6C81B57E 0032F51C 0032E4F0
0032E4C8h:  6C87939D 6C81B57E 0032F510 00000100
0032E4D8h:  0032E548 6C87908B DEAF586F 6C89A954
0032E4E8h:  0032F510 00000001 0032E558 6C87E793
0032E4F8h:  0032F510 6C89A954 6C81B57E 00000000
0032E508h:  00000100 DEAF59EF 6C89A940 0032F510
0032E518h:  6C89A920 0032EB20 00000000 00000000
0032E528h:  00000000 00000000 0032E51C 0032F458
0032E538h:  6C87E581 6C81B57E 0032E50C 0032E06C
0032E548h:  0032E674 6C87AD00 B214D6FF 00000001
0032E558h:  0032E588 6C87EB1A 0032E748 0032F510
0032E568h:  00000001 6C89A954 00000000 00000100
0032E578h:  0032F510 0032E71C 6C89A954 00000000
0032E588h:  0032E5EC 6C87EEA5 0032E748 0032E798
0032E598h:  0032E71C 6C89A954 00E8297C 00000000
0032E5A8h:  00000000 E06D7363 1FFFFFFF 19930522
0032E5B8h:  77DBE0F2 00000011 00000000 6C89A940

Registers:
EAX: 00000000, EBX: 0032F4A8, ECX: 0032E4D8, EDX: 0000001D
ESI: 0764FDB4, EDI: 0032F510, EBP: 0032F51C, ESP: 0032E4A8

Crash location:
Module: foo_uie_wsh_panel_mod
Offset: B5ACh

Loaded modules:
foobar2000                       loaded at 00D00000h - 00EF2000h
ntdll                            loaded at 77D90000h - 77F10000h
kernel32                         loaded at 77090000h - 77190000h
KERNELBASE                       loaded at 77230000h - 77276000h
snxhk                            loaded at 736F0000h - 73724000h
COMCTL32                         loaded at 75330000h - 754CE000h
msvcrt                           loaded at 77510000h - 775BC000h
GDI32                            loaded at 75960000h - 759F0000h
USER32                           loaded at 77790000h - 77890000h
ADVAPI32                         loaded at 77280000h - 77320000h
sechost                          loaded at 77940000h - 77959000h
RPCRT4                           loaded at 767D0000h - 768C0000h
SspiCli                          loaded at 75900000h - 75960000h
CRYPTBASE                        loaded at 758F0000h - 758FC000h
LPK                              loaded at 767C0000h - 767CA000h
USP10                            loaded at 77190000h - 7722D000h
SHLWAPI                          loaded at 77890000h - 778E7000h
DSOUND                           loaded at 6C6B0000h - 6C722000h
ole32                            loaded at 773B0000h - 7750C000h
WINMM                            loaded at 754D0000h - 75502000h
POWRPROF                         loaded at 6C680000h - 6C6A5000h
SETUPAPI                         loaded at 76A70000h - 76C0D000h
CFGMGR32                         loaded at 76E10000h - 76E37000h
OLEAUT32                         loaded at 77670000h - 776FF000h
DEVOBJ                           loaded at 769E0000h - 769F2000h
UxTheme                          loaded at 75220000h - 752A0000h
SHELL32                          loaded at 759F0000h - 76639000h
zlib1                            loaded at 5A4C0000h - 5A4D4000h
shared                           loaded at 6DE20000h - 6DE4B000h
imagehlp                         loaded at 77640000h - 7766A000h
dbghelp                          loaded at 74130000h - 7421B000h
COMDLG32                         loaded at 775C0000h - 7763B000h
Secur32                          loaded at 739F0000h - 739F8000h
CRYPT32                          loaded at 768C0000h - 769DC000h
MSASN1                           loaded at 77D60000h - 77D6C000h
gdiplus                          loaded at 74E50000h - 74FE0000h
IMM32                            loaded at 76F10000h - 76F70000h
MSCTF                            loaded at 76E40000h - 76F0C000h
prio32                           loaded at 10000000h - 10006000h
DockShellHook                    loaded at 02BB0000h - 02C88000h
CLBCatQ                          loaded at 77700000h - 77783000h
MMDevApi                         loaded at 69F60000h - 69F99000h
PROPSYS                          loaded at 75100000h - 751F5000h
dwmapi                           loaded at 75200000h - 75213000h
foo_prettypop                    loaded at 02AC0000h - 02B11000h
MSCOREE                          loaded at 6DCC0000h - 6DD0A000h
MSVCR80                          loaded at 74B70000h - 74C0B000h
msvcm80                          loaded at 6DBD0000h - 6DC4D000h
mscoreei                         loaded at 6DB60000h - 6DBC6000h
mscorwks                         loaded at 688F0000h - 68E9A000h
profapi                          loaded at 74220000h - 7422B000h
mscorlib.ni                      loaded at 67DF0000h - 688E8000h
mscorjit                         loaded at 6DB00000h - 6DB5B000h
CRYPTSP                          loaded at 73560000h - 73576000h
rsaenh                           loaded at 73520000h - 7355B000h
foo_fileops                      loaded at 6DAB0000h - 6DAF7000h
foo_out_ks                       loaded at 02D20000h - 02D4A000h
foo_uie_lyrics3                  loaded at 06950000h - 06A50000h
WININET                          loaded at 76F90000h - 77085000h
urlmon                           loaded at 76640000h - 76776000h
iertutil                         loaded at 76C10000h - 76E0D000h
MSIMG32                          loaded at 74FF0000h - 74FF5000h
foo_quicksearch                  loaded at 6DA50000h - 6DAA7000h
WindowsCodecs                    loaded at 75000000h - 750FB000h
foo_input_std                    loaded at 6D8E0000h - 6DA49000h
foo_tagbox                       loaded at 04640000h - 046C0000h
foo_out_wasapi                   loaded at 031B0000h - 031D6000h
foo_uie_albumlist                loaded at 03460000h - 034A3000h
foo_masstag                      loaded at 04360000h - 043B4000h
foo_dsp_std                      loaded at 6D890000h - 6D8D8000h
foo_out_asio                     loaded at 044F0000h - 04526000h
foo_quicktag                     loaded at 6D780000h - 6D7B4000h
foo_rgscan                       loaded at 6D730000h - 6D77B000h
foo_discogs                      loaded at 6D6C0000h - 6D723000h
foo_audioscrobbler               loaded at 06800000h - 06833000h
foo_ui_std                       loaded at 6D4A0000h - 6D5B9000h
foo_uie_vis_peakmeter_spectrum   loaded at 06A60000h - 06A9F000h
foo_uie_wsh_panel_mod            loaded at 6C810000h - 6C8B7000h
foo_run                          loaded at 06DB0000h - 06E0F000h
foo_albumlist                    loaded at 6C7B0000h - 6C80D000h
foo_httpcontrol                  loaded at 6C610000h - 6C67D000h
WS2_32                           loaded at 76780000h - 767B5000h
NSI                              loaded at 76F70000h - 76F76000h
WSOCK32                          loaded at 75770000h - 75777000h
MPR                              loaded at 73680000h - 73692000h
foo_cdda                         loaded at 6D450000h - 6D49E000h
foo_dsp_span                     loaded at 6D690000h - 6D6BE000h
foo_wlm                          loaded at 6D610000h - 6D631000h
foo_ui_columns                   loaded at 07D00000h - 07E8E000h
foo_unpack                       loaded at 6D140000h - 6D16E000h
foo_uie_playlists_dropdown       loaded at 06E60000h - 06E9C000h
foo_queuecontents                loaded at 073C0000h - 0742D000h
foo_textdisplay                  loaded at 6CCC0000h - 6CD0B000h
foo_playcount                    loaded at 6C5D0000h - 6C60E000h
foo_freedb2                      loaded at 6C590000h - 6C5D0000h
foo_stop_after_queue             loaded at 6D870000h - 6D888000h
foo_uie_panel_splitter           loaded at 074A0000h - 074F9000h
foo_tlbRC                        loaded at 07140000h - 07167000h
foo_wave_seekbar                 loaded at 6C3F0000h - 6C58E000h
foo_keep_queue                   loaded at 6E1B0000h - 6E1BF000h
MSVCR90                          loaded at 74320000h - 743C3000h
AUDIOSES                         loaded at 69D50000h - 69D86000h
apphelp                          loaded at 736A0000h - 736EB000h
DropboxExt.14                    loaded at 07610000h - 07627000h
MSVCP71                          loaded at 7C3A0000h - 7C41B000h
MSVCR71                          loaded at 7C340000h - 7C396000h
EhStorShell                      loaded at 727C0000h - 727F1000h
GROOVEEX                         loaded at 72D00000h - 7310A000h
MSVCP90                          loaded at 74290000h - 7431E000h
ATL90                            loaded at 74640000h - 7466B000h
office                           loaded at 701A0000h - 705AF000h
GrooveIntlResource               loaded at 6F930000h - 70194000h
ntshrui                          loaded at 6F850000h - 6F8BF000h
srvcli                           loaded at 73950000h - 73969000h
cscapi                           loaded at 740B0000h - 740BB000h
slc                              loaded at 72980000h - 7298A000h
SXS                              loaded at 6F700000h - 6F75F000h
frontend_direct2d                loaded at 6C190000h - 6C1E7000h
d2d1                             loaded at 6B8F0000h - 6B9BF000h
frontend_direct3d9               loaded at 6B880000h - 6B8E3000h
d3d9                             loaded at 6AB20000h - 6ACE3000h
VERSION                          loaded at 75760000h - 75769000h
d3d8thk                          loaded at 6E1A0000h - 6E1A6000h
d3dx9_42                         loaded at 6A680000h - 6A865000h
SciLexer                         loaded at 6B500000h - 6B591000h
AhAScr                           loaded at 6CCA0000h - 6CCC0000h
aswCmnBS                         loaded at 757A0000h - 757EE000h
aswCmnOS                         loaded at 75780000h - 7579A000h
aswCmnIS                         loaded at 743D0000h - 743F9000h
Aavm4h                           loaded at 73E80000h - 73ED2000h
PSAPI                            loaded at 76F80000h - 76F85000h
AavmRpch                         loaded at 73E60000h - 73E73000h
ashBase                          loaded at 74260000h - 7428F000h
aswEngLdr                        loaded at 74250000h - 7425D000h
USERENV                          loaded at 74230000h - 74247000h
ashTask                          loaded at 73FD0000h - 73FF6000h
aswAux                           loaded at 74000000h - 740A8000h
aswProperty                      loaded at 73EE0000h - 73F13000h
jscript                          loaded at 6CBE0000h - 6CC92000h
aswJsFlt                         loaded at 6CBC0000h - 6CBD9000h
RpcRtRemote                      loaded at 73DF0000h - 73DFE000h
wshom                            loaded at 6C3C0000h - 6C3E1000h
ScrRun                           loaded at 6C390000h - 6C3BA000h
tiptsf                           loaded at 745E0000h - 74638000h
System.ni                        loaded at 664F0000h - 66C89000h
System.Drawing.ni                loaded at 6A4F0000h - 6A677000h
System.Windows.Forms.ni          loaded at 652F0000h - 65ECE000h
mswsock                          loaded at 73850000h - 7388C000h
wshtcpip                         loaded at 73730000h - 73735000h
explorerframe                    loaded at 6C220000h - 6C38F000h
DUser                            loaded at 6C1F0000h - 6C21F000h
DUI70                            loaded at 6ACF0000h - 6ADA2000h
avrt                             loaded at 6C160000h - 6C167000h
wship6                           loaded at 745A0000h - 745A6000h
DNSAPI                           loaded at 73800000h - 73844000h
IPHLPAPI                         loaded at 737E0000h - 737FC000h
WINNSI                           loaded at 737D0000h - 737D7000h
rasadhlp                         loaded at 737C0000h - 737C6000h
msxml3                           loaded at 6C020000h - 6C152000h
fwpuclnt                         loaded at 73740000h - 73778000h
ntmarta                          loaded at 752E0000h - 75301000h
WLDAP32                          loaded at 778F0000h - 77935000h
RASAPI32                         loaded at 728D0000h - 72922000h
rasman                           loaded at 73160000h - 73175000h
rtutils                          loaded at 73150000h - 7315D000h
sensapi                          loaded at 74550000h - 74556000h
Normaliz                         loaded at 76A00000h - 76A03000h
NLAapi                           loaded at 73890000h - 738A0000h
winrnr                           loaded at 737B0000h - 737B8000h
mlang                            loaded at 72790000h - 727BE000h
napinsp                          loaded at 737A0000h - 737B0000h
pnrpnsp                          loaded at 73780000h - 73792000h
msls31                           loaded at 72A20000h - 72A4A000h
XmlLite                          loaded at 6CAB0000h - 6CADF000h
LINKINFO                         loaded at 6CAE0000h - 6CAE9000h
SearchFolder                     loaded at 6AA80000h - 6AB1F000h
StructuredQuery                  loaded at 6F5F0000h - 6F64C000h
thumbcache                       loaded at 66C90000h - 66CA6000h
SHDOCVW                          loaded at 73120000h - 7314E000h
ieframe                          loaded at 71AD0000h - 7254F000h
OLEACC                           loaded at 74560000h - 7459C000h
samcli                           loaded at 74420000h - 7442F000h
SAMLIB                           loaded at 6B860000h - 6B872000h
netutils                         loaded at 73970000h - 73979000h
NetworkExplorer                  loaded at 6A100000h - 6A298000h
drprov                           loaded at 705C0000h - 705C8000h
WINSTA                           loaded at 739A0000h - 739C9000h
ntlanman                         loaded at 6AE20000h - 6AE34000h
davclnt                          loaded at 6AE00000h - 6AE16000h
DAVHLPR                          loaded at 6E0A0000h - 6E0A8000h
wkscli                           loaded at 740C0000h - 740CF000h
NetworkItemFactory               loaded at 6DE90000h - 6DE9D000h
dtsh                             loaded at 6D680000h - 6D68B000h
FirewallAPI                      loaded at 746F0000h - 74766000h
PortableDeviceApi                loaded at 6A920000h - 6A9A9000h
wbemprox                         loaded at 6D180000h - 6D18A000h
wbemcomn                         loaded at 6A3E0000h - 6A43C000h
WINTRUST                         loaded at 77960000h - 7798D000h
PortableDeviceTypes              loaded at 6A8F0000h - 6A91B000h
npmproxy                         loaded at 6F8C0000h - 6F8C8000h
EhStorAPI                        loaded at 6A3B0000h - 6A3D2000h
FunDisc                          loaded at 6A330000h - 6A35B000h
ATL                              loaded at 6ADE0000h - 6ADF4000h
msxml6                           loaded at 6C8C0000h - 6CA17000h
fdproxy                          loaded at 6C7A0000h - 6C7AA000h
fdwcn                            loaded at 6A310000h - 6A327000h
wcnapi                           loaded at 6A2F0000h - 6A309000h
fdWNet                           loaded at 6B830000h - 6B839000h
dfscli                           loaded at 6B4F0000h - 6B4FD000h
browcli                          loaded at 6AA70000h - 6AA7D000h
ieproxy                          loaded at 6F650000h - 6F67B000h
dhcpcsvc6                        loaded at 745D0000h - 745DD000h
dhcpcsvc                         loaded at 745B0000h - 745C2000h
actxprxy                         loaded at 6E030000h - 6E07E000h
zipfldr                          loaded at 6A0A0000h - 6A0F2000h
IconCodecService                 loaded at 72970000h - 72976000h
nvd3dum                          loaded at 64940000h - 652E9000h

Stack dump analysis:
Address: 6C87F0D7h (foo_uie_wsh_panel_mod+6F0D7h), symbol: "foobar2000_get_interface" (+36A37h)
Address: 6C81B57Eh (foo_uie_wsh_panel_mod+B57Eh)
Address: 6C87939Dh (foo_uie_wsh_panel_mod+6939Dh), symbol: "foobar2000_get_interface" (+30CFDh)
Address: 6C81B57Eh (foo_uie_wsh_panel_mod+B57Eh)
Address: 6C87908Bh (foo_uie_wsh_panel_mod+6908Bh), symbol: "foobar2000_get_interface" (+309EBh)
Address: 6C89A954h (foo_uie_wsh_panel_mod+8A954h), symbol: "foobar2000_get_interface" (+522B4h)
Address: 6C87E793h (foo_uie_wsh_panel_mod+6E793h), symbol: "foobar2000_get_interface" (+360F3h)
Address: 6C89A954h (foo_uie_wsh_panel_mod+8A954h), symbol: "foobar2000_get_interface" (+522B4h)
Address: 6C81B57Eh (foo_uie_wsh_panel_mod+B57Eh)
Address: 6C89A940h (foo_uie_wsh_panel_mod+8A940h), symbol: "foobar2000_get_interface" (+522A0h)
Address: 6C89A920h (foo_uie_wsh_panel_mod+8A920h), symbol: "foobar2000_get_interface" (+52280h)
Address: 6C87E581h (foo_uie_wsh_panel_mod+6E581h), symbol: "foobar2000_get_interface" (+35EE1h)
Address: 6C81B57Eh (foo_uie_wsh_panel_mod+B57Eh)
Address: 6C87AD00h (foo_uie_wsh_panel_mod+6AD00h), symbol: "foobar2000_get_interface" (+32660h)
Address: 6C87EB1Ah (foo_uie_wsh_panel_mod+6EB1Ah), symbol: "foobar2000_get_interface" (+3647Ah)
Address: 6C89A954h (foo_uie_wsh_panel_mod+8A954h), symbol: "foobar2000_get_interface" (+522B4h)
Address: 6C89A954h (foo_uie_wsh_panel_mod+8A954h), symbol: "foobar2000_get_interface" (+522B4h)
Address: 6C87EEA5h (foo_uie_wsh_panel_mod+6EEA5h), symbol: "foobar2000_get_interface" (+36805h)
Address: 6C89A954h (foo_uie_wsh_panel_mod+8A954h), symbol: "foobar2000_get_interface" (+522B4h)
Address: 00E8297Ch (foobar2000+18297Ch)
Address: 77DBE0F2h (ntdll+2E0F2h), symbol: "RtlAllocateHeap" (+ACh)
Address: 6C89A940h (foo_uie_wsh_panel_mod+8A940h), symbol: "foobar2000_get_interface" (+522A0h)
Address: 00E8297Ch (foobar2000+18297Ch)
Address: 6C89A950h (foo_uie_wsh_panel_mod+8A950h), symbol: "foobar2000_get_interface" (+522B0h)
Address: 6C89A920h (foo_uie_wsh_panel_mod+8A920h), symbol: "foobar2000_get_interface" (+52280h)
Address: 6C87F09Eh (foo_uie_wsh_panel_mod+6F09Eh), symbol: "foobar2000_get_interface" (+369FEh)
Address: 6C89A954h (foo_uie_wsh_panel_mod+8A954h), symbol: "foobar2000_get_interface" (+522B4h)
Address: 6C87907Bh (foo_uie_wsh_panel_mod+6907Bh), symbol: "foobar2000_get_interface" (+309DBh)
Address: 6C89A954h (foo_uie_wsh_panel_mod+8A954h), symbol: "foobar2000_get_interface" (+522B4h)
Address: 77E00AE5h (ntdll+70AE5h), symbol: "WinSqmSetIfMaxDWORD" (+35h)
Address: 6C89A954h (foo_uie_wsh_panel_mod+8A954h), symbol: "foobar2000_get_interface" (+522B4h)
Address: 77DD6AC9h (ntdll+46AC9h), symbol: "RtlDosSearchPath_Ustr" (+ADAh)
Address: 77DD6ADDh (ntdll+46ADDh), symbol: "RtlDosSearchPath_Ustr" (+AEEh)
Address: 77DD6A9Bh (ntdll+46A9Bh), symbol: "RtlDosSearchPath_Ustr" (+AACh)
Address: 6C88A5C0h (foo_uie_wsh_panel_mod+7A5C0h), symbol: "foobar2000_get_interface" (+41F20h)
Address: 77DD6A3Dh (ntdll+46A3Dh), symbol: "RtlDosSearchPath_Ustr" (+A4Eh)
Address: 6C88A5C0h (foo_uie_wsh_panel_mod+7A5C0h), symbol: "foobar2000_get_interface" (+41F20h)
Address: 69D59E29h (AUDIOSES+9E29h), symbol: "DllGetClassObject" (+5401h)
Address: 69D59E40h (AUDIOSES+9E40h), symbol: "DllGetClassObject" (+5418h)
Address: 69D56350h (AUDIOSES+6350h), symbol: "DllGetClassObject" (+1928h)
Address: 77DA010Fh (ntdll+1010Fh), symbol: "KiUserExceptionDispatcher" (+Fh)
Address: 7723B9BCh (KERNELBASE+B9BCh), symbol: "RaiseException" (+58h)
Address: 00E82C94h (foobar2000+182C94h)
Address: 00D08335h (foobar2000+8335h)
Address: 00E38CE1h (foobar2000+138CE1h)
Address: 00D0848Fh (foobar2000+848Fh)
Address: 6C892308h (foo_uie_wsh_panel_mod+82308h), symbol: "foobar2000_get_interface" (+49C68h)
Address: 7723B9BCh (KERNELBASE+B9BCh), symbol: "RaiseException" (+58h)
Address: 7723B9BCh (KERNELBASE+B9BCh), symbol: "RaiseException" (+58h)
Address: 00E82C94h (foobar2000+182C94h)
Address: 00D08335h (foobar2000+8335h)
Address: 00E38CE1h (foobar2000+138CE1h)
Address: 00D0848Fh (foobar2000+848Fh)
Address: 00E3D30Dh (foobar2000+13D30Dh)
Address: 00E82C94h (foobar2000+182C94h)
Address: 00D22A54h (foobar2000+22A54h)
Address: 00E82C94h (foobar2000+182C94h)
Address: 07E011C4h (foo_ui_columns+1011C4h), symbol: "foobar2000_get_interface" (+4B7B4h)
Address: 00E6C830h (foobar2000+16C830h)
Address: 00D99646h (foobar2000+99646h)
Address: 00DAB995h (foobar2000+AB995h)
Address: 00D2DD58h (foobar2000+2DD58h)
Address: 6C848C3Eh (foo_uie_wsh_panel_mod+38C3Eh), symbol: "foobar2000_get_interface" (+59Eh)
Address: 6C848C99h (foo_uie_wsh_panel_mod+38C99h), symbol: "foobar2000_get_interface" (+5F9h)
Address: 00D9A3AEh (foobar2000+9A3AEh)
Address: 6C82C6D9h (foo_uie_wsh_panel_mod+1C6D9h)
Address: 00EA6CD8h (foobar2000+1A6CD8h)
Address: 6C888FD8h (foo_uie_wsh_panel_mod+78FD8h), symbol: "foobar2000_get_interface" (+40938h)
Address: 77683E75h (OLEAUT32+13E75h), symbol: "DispCallFunc" (+A6h)
Address: 77683CEFh (OLEAUT32+13CEFh), symbol: "LoadRegTypeLib" (+AC1h)
Address: 7767F958h (OLEAUT32+F958h), symbol: "VarBstrCmp" (+A0h)
Address: 77684037h (OLEAUT32+14037h), symbol: "DispCallFunc" (+268h)
Address: 77683D76h (OLEAUT32+13D76h), symbol: "LoadRegTypeLib" (+B48h)
Address: 7767F958h (OLEAUT32+F958h), symbol: "VarBstrCmp" (+A0h)
Address: 6C81EC6Bh (foo_uie_wsh_panel_mod+EC6Bh)
Address: 6CBFDB58h (jscript+1DB58h), symbol: "DllGetClassObject" (+CA64h)
Address: 6CBF0B04h (jscript+10B04h)
Address: 6CBFDAACh (jscript+1DAACh), symbol: "DllGetClassObject" (+C9B8h)
Address: 6CBFDA1Fh (jscript+1DA1Fh), symbol: "DllGetClassObject" (+C92Bh)
Address: 77685D03h (OLEAUT32+15D03h), symbol: "LHashValOfNameSysA" (+35Eh)
Address: 6CBFE0D0h (jscript+1E0D0h), symbol: "DllGetClassObject" (+CFDCh)
Address: 6CBFDBAAh (jscript+1DBAAh), symbol: "DllGetClassObject" (+CAB6h)
Address: 6CBFD8E8h (jscript+1D8E8h), symbol: "DllGetClassObject" (+C7F4h)
Address: 6CBF51BAh (jscript+151BAh), symbol: "DllGetClassObject" (+40C6h)
Address: 6CBE9B9Eh (jscript+9B9Eh)
Address: 64CDEE9Ah (nvd3dum+39EE9Ah), symbol: "QueryOglResource" (+F25Ah)
Address: 64CE4752h (nvd3dum+3A4752h), symbol: "QueryOglResource" (+14B12h)
Address: 6CBF0001h (jscript+10001h)
Address: 6CBFF1DEh (jscript+1F1DEh), symbol: "DllGetClassObject" (+E0EAh)
Address: 64CF00F4h (nvd3dum+3B00F4h), symbol: "QueryOglResource" (+204B4h)
Address: 6CC76BA4h (jscript+96BA4h), symbol: "DllRegisterServer" (+19B83h)
Address: 6CBF5CBDh (jscript+15CBDh), symbol: "DllGetClassObject" (+4BC9h)
Address: 773F37D9h (ole32+437D9h), symbol: "CoGetComCatalog" (+458h)
Address: 6CBF5C1Bh (jscript+15C1Bh), symbol: "DllGetClassObject" (+4B27h)
Address: 773F8863h (ole32+48863h), symbol: "CoRevokeInitializeSpy" (+5C9h)
Address: 773F393Eh (ole32+4393Eh), symbol: "CoGetComCatalog" (+5BDh)
Address: 6CBF79C1h (jscript+179C1h), symbol: "DllGetClassObject" (+68CDh)
Address: 6CBF5E31h (jscript+15E31h), symbol: "DllGetClassObject" (+4D3Dh)
Address: 6CC76BA4h (jscript+96BA4h), symbol: "DllRegisterServer" (+19B83h)
Address: 6CBEF416h (jscript+F416h)
Address: 77DBE38Ch (ntdll+2E38Ch), symbol: "RtlInitUnicodeString" (+164h)
Address: 6CC064FDh (jscript+264FDh), symbol: "DllGetClassObject" (+15409h)
Address: 6CC76BA4h (jscript+96BA4h), symbol: "DllRegisterServer" (+19B83h)
Address: 6CC76BA4h (jscript+96BA4h), symbol: "DllRegisterServer" (+19B83h)
Address: 6CBEEA52h (jscript+EA52h)
Address: 77DBE38Ch (ntdll+2E38Ch), symbol: "RtlInitUnicodeString" (+164h)
Address: 6CC76BA4h (jscript+96BA4h), symbol: "DllRegisterServer" (+19B83h)
Address: 6CBEA1BCh (jscript+A1BCh)
Address: 6CBEA107h (jscript+A107h)
Address: 6CBEF620h (jscript+F620h)
Address: 6CC76BA4h (jscript+96BA4h), symbol: "DllRegisterServer" (+19B83h)
Address: 6CBE966Eh (jscript+966Eh)
Address: 6C81B558h (foo_uie_wsh_panel_mod+B558h)
Address: 6C894790h (foo_uie_wsh_panel_mod+84790h), symbol: "foobar2000_get_interface" (+4C0F0h)

Environment:
App: foobar2000 v1.1.8
OS: Windows 6.1.7600 x64
CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 5200+, features: 3DNow!ex MMX SSE SSE2 SSE3
Audio: Speakers (Saffire Audio)
UI: Columns UI 0.3.8.7

Components:
Core (2011-09-14 09:11:28 UTC)
    foobar2000 core 1.1.8
foo_albumlist.dll (2011-09-14 09:09:52 UTC)
    Album List 4.5
foo_audioscrobbler.dll (2011-05-02 23:48:11 UTC)
    Audioscrobbler 1.4.7
foo_cdda.dll (2011-09-14 09:09:40 UTC)
    CD Audio Decoder 3.0
foo_discogs.dll (2011-08-13 15:44:57 UTC)
    Discogs Tagger 1.30
foo_dsp_span.dll (2011-02-18 18:51:02 UTC)
    Surround Pan 1.3
foo_dsp_std.dll (2011-09-14 09:10:12 UTC)
    Standard DSP Array 1.0
foo_fileops.dll (2011-09-14 09:08:24 UTC)
    File Operations 2.1.3
foo_freedb2.dll (2011-09-14 09:08:22 UTC)
    freedb Tagger 0.6.4
foo_httpcontrol.dll (2011-08-22 13:14:20 UTC)
    HTTP Control 0.97.12
foo_input_std.dll (2011-09-20 17:21:14 UTC)
    Standard Input Array 1.0
foo_keep_queue.dll (2011-05-18 02:29:12 UTC)
    Keep Queue 0.3.5
foo_masstag.dll (2011-02-09 19:18:10 UTC)
    Masstagger 1.8.4
foo_out_asio.dll (2011-02-09 19:18:16 UTC)
    ASIO support 1.2.7
foo_out_ks.dll (2011-09-05 01:16:23 UTC)
    Kernel Streaming Output 1.2.2
foo_out_wasapi.dll (2011-02-09 19:18:25 UTC)
    WASAPI output support 2.1
foo_playcount.dll (2011-07-14 14:02:18 UTC)
    Playback Statistics 3.0.2
foo_prettypop.dll (2011-08-28 16:34:35 UTC)
    Pretty Popup 1.2.5
foo_queuecontents.dll (2011-09-15 14:48:30 UTC)
    Queue Contents Editor 0.4.5
foo_quicksearch.dll (2011-06-03 19:51:15 UTC)
    Quick Search Toolbar 3.2
foo_quicktag.dll (2011-02-09 19:18:33 UTC)
    Quick Tagger 1.0.3
foo_rgscan.dll (2011-09-14 09:09:32 UTC)
    ReplayGain Scanner 2.1.2
foo_run.dll (2011-06-07 17:38:41 UTC)
    Run services 0.3.7
foo_stop_after_queue.dll (2011-04-18 20:19:55 UTC)
    Stop After Queue 0.1
foo_tagbox.dll (2011-03-17 21:47:47 UTC)
    TagBox 0.212
foo_textdisplay.dll (2011-06-03 20:13:44 UTC)
    Text Display UI Element 1.1 beta 1
foo_tlbRC.dll (2009-05-04 23:44:34 UTC)
    TLB Remote Control 3.0
foo_ui_columns.dll (2011-02-09 19:18:43 UTC)
    Columns UI 0.3.8.7
foo_ui_std.dll (2011-09-14 09:09:46 UTC)
    Default User Interface 0.9.5
foo_uie_albumlist.dll (2011-02-28 22:30:56 UTC)
    Album list panel 0.3.5
foo_uie_lyrics3.dll (2011-10-09 23:50:57 UTC)
    Lyric Show Panel 3 0.1.4
foo_uie_panel_splitter.dll (2011-02-19 19:39:04 UTC)
    Panel Stack Splitter 0.3.8.3(alpha)
foo_uie_playlists_dropdown.dll (2011-05-25 02:20:44 UTC)
    Playlists Dropdown 0.7.6
foo_uie_vis_peakmeter_spectrum.dll (2011-02-19 22:31:09 UTC)
    Peakmeter Spectrum Visualisation 0.2.0.0 beta
foo_uie_wsh_panel_mod.dll (2010-06-19 15:52:06 UTC)
    WSH Panel Mod 1.3.6
foo_unpack.dll (2011-09-14 09:09:06 UTC)
    ZIP/GZIP/RAR Reader 1.6
foo_wave_seekbar.dll (2011-09-30 12:42:42 UTC)
    Waveform seekbar 0.2.13.13
foo_wlm.dll (2011-02-27 22:01:51 UTC)
    Windows Live Messenger Notifier 1.1.8a

Recent events:
Audioscrobbler: Submission succeeded.
Opening track for playback: "D:\Desktop\Mp3\Alice In Chains\Mp3\Albums\1992 - Dirt\Alice In Chains - 13. Would.mp3"
Audioscrobbler: Submitting track...
Audioscrobbler: Submission succeeded.
Opening track for playback: "D:\Desktop\Mp3\Alice In Chains\Mp3\Albums\1995 - Alice In Chains\Alice In Chains - 01. Grind.mp3"
Audioscrobbler: Submitting track...
Audioscrobbler: Submission succeeded.
Wave cache: finished analysis of "D:\Desktop\Mp3\Alice In Chains\Mp3\Albums\1995 - Alice In Chains\Alice In Chains - 02. Brush Away.mp3"
WSH Panel Mod (GUID: AE664E54-40B4-4288-9423-88FEB9A327FA): Unhandled C++ Exception: "The handle is invalid.   (0x80070006)", will crash now...
Additional Info:
==> IDispatch::Invoke: flag="DISPATCH_PROPERTYPUT", name="Volume", uuid="BAE2E084-6545-4A17-9795-1496A4EE2741"

WSH Panel Mod script discussion/help

Reply #1120
hi,

first, you pollute the thread with such long post, the good way is to use [ codebox ] ... [ /codebox ] balises instead of [ code ] [ /code ]

bad topic, you should post that to the WSH panel mod developer topic : http://www.hydrogenaudio.org/forums/index....c=70363&hl=

then i see :

foo_uie_wsh_panel_mod.dll (2010-06-19 15:52:06 UTC)
    WSH Panel Mod 1.3.6


so, you should try the last version v1.4.4 which may fix your issue?

HTH

WSH Panel Mod script discussion/help

Reply #1121
Sorry, i`m a newbie in wsh coding, but i learning

i wrote some function:
Code: [Select]
function HomePage() {
   
    var icon_test;
    icon_test = gdi.CreateImage(60, 60);
    gp = icon_test.GetGraphics();
    gp.fillroundrect(1,1,58,58,3,3,RGB(0,0,0));
    icon_test.ReleaseGraphics(gp);
    CollectGarbage();
   
    var icon_test_h;
    icon_test_h = gdi.CreateImage(60, 60);
    gp = icon_test_h.GetGraphics();
    gp.fillroundrect(1,1,58,58,3,3,RGB(50,50,50));
    icon_test_h.ReleaseGraphics(gp);
    CollectGarbage();
   
    var icon_test_c;
    icon_test_h = gdi.CreateImage(60, 60);
    gp = icon_test_h.GetGraphics();
    gp.fillroundrect(1,1,58,58,3,3,RGB(150,150,150));
    icon_test_h.ReleaseGraphics(gp);
    CollectGarbage();

    function btn_image(regular,hover,click) {
        this.regular=regular;
        this.hover=hover;
        this.click=click;
    }

   
    hp_buttons_temp={
        b1:new btn_image(icon_test,icon_test_h,icon_test_c),
        b2:new btn_image(icon_test,icon_test_h,icon_test_c)
    }
   
    my_hp_buttons_temp=new Array(
        hp_buttons_temp.b1,
        hp_buttons_temp.b2
        )

    hp_buttons=[];
   
    for (var i in my_hp_buttons_temp ) {
    hp_buttons.push(my_hp_buttons_temp[i]);
    }
   
    return hp_buttons;

}



could anybody explain me, why in other function, like on_paint, i cant draw like "hp_buttons[0].regular" or "hp_buttons[0].hover"?
is there some way to put this image in function Button(x,y,function etc)?

and one more question: i need to run some script when some usb-drive or cd is inserted, have wsh any callback for it, or some way to create it?

WSH Panel Mod script discussion/help

Reply #1122
I have discovered v1.5 and I think it's really wonderful!  I wanted to do a script to play the content of the active playlist in "Shuffle Sets" mode, and v1.5 contains everything needed to do it!  :-)

The difference between the native Shuffle Albums and my Shuffle Sets mode is that Shuffle Sets uses a special "MEDLEY" tag that must be set to true when the track continues seamlessly with the next track (ie when there is no silence at the end of the current track and it is not the last track of a disc).

When the tracks are correctly tagged and Shuffle Sets is enabled, the script builds a temporary IFbMetadbHandleList containing the first track of each set.  In on_playback_new_track, it verifies if the current track is the last one in a set, and if it's the case, it selects another set in the temp list, and adds it to the playback queue.  When a set is played, it is removed from the temp list, and when the list is empty, the playback stops.

I have 3 questions.

1. My script works already well, but I would like to be able to save the temp list to disc when foobar is closed, to be able to continue the shuffle when it is restarted.  I haven't found a way to save a IFbMetadbHandleList to disc (and to reload it, of course).  Is it possible?

2. Also, currently, to begin the playback of a specific item of the current playlist when foobar is not already playing something, I have to clear the playback queue, add the item to the queue, and call fb.Play().  That works well, but I wonder if it is possible to play an item from the active playlist without having to add it to the playback queue first.  I would like something like plman.PlayItem(playlist, item), but afaik that command doesn't exist.  Is it a way to do it?
(BTW, I suppose it is possible to set fb.PlayingPlaylist=playlist, and change the currently focussed item to the item to play, and finally call Play().  But it's not a better solution, as I don't like to change the focus.)

3. My script has a function that tries to add automatically the "MEDLEY" tags in the items of the active playlist.  It works relatively well, but the method I use is somewhat cumbersome.  It is necessary to add and configure the Skip Silence DSP manually, and the script plays the last 5 seconds of each track, and detects in on_playback_time() if the DSP has skipped some seconds.  I don't like the fact that it is necessary to reconfigure the DSP chain, and, more importantly, the function fails to detect the silence if it is too short.  Furthermore, when the playlist contains many tracks, foobar2000 crashes sometimes.  I don't know why.
Do you think there is a better method?  Do you know a DSP or extension that could tag the currently playing item when the overall volume of the last second is below a certain threshold?

Thanks in advance.

WSH Panel Mod script discussion/help

Reply #1123
you can get the path of a metadb handle so use that to build an m3u playlist and save it to file. (look at the interfaces doc)

i don't know about the other stuff.

WSH Panel Mod script discussion/help

Reply #1124
you can get the path of a metadb handle so use that to build an m3u playlist and save it to file. (look at the interfaces doc)

Good idea.  Thanks!