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

WSH Panel Mod

Reply #1175
Thanks, ExtremeHunter. That's the reason then.

@T.P Wang: Another feature request: An interface method to check whether a wsh panel is loaded in the config by name, e.g. utils.WshPanelExists("panel_name").

WSH Panel Mod

Reply #1176
@T.P Wang: I'm running into a problem of callback on_playback_edited(), when the track is very short (under 1 min) and I have official foo_playcount install, this callback will be called at the start of the next track, which is not right. As I use this to check whether actual tags of a file has changed can you add parameter fromhook similar to on_metadb_changed callback, so my code can act accordingly. Thanks.

WSH Panel Mod

Reply #1177
I've just got a component crash. Here's the crash log:
Code: [Select]
Illegal operation:
Code: C0000005h, flags: 00000000h, address: 6F836444h
Access violation, operation: write, address: 769A6931h

Call path:
entry=>app_mainloop

Code bytes (6F836444h):
6F836404h:  5D C2 04 00 90 90 90 90 90 8B FF 55 8B EC 53 57
6F836414h:  8B F8 8B 46 14 47 85 C0 0F 84 57 16 00 00 8B 4E
6F836424h:  1C 8B 11 2B D0 83 EA 08 C1 FA 04 3B D7 0F 8C 42
6F836434h:  16 00 00 8B 01 8B 4D 08 83 E8 10 89 01 8B 56 1C
6F836444h:  89 10 8B 56 20 89 50 04 5F 89 46 20 89 4E 1C 33
6F836454h:  C0 5B 5D C2 04 00 90 90 90 90 90 8D 41 54 C3 90
6F836464h:  90 90 90 90 83 A0 98 00 00 00 F8 33 C9 89 08 89
6F836474h:  48 04 89 48 18 89 48 20 89 48 24 89 48 2C 89 48

Stack (004AF26Ch):
004AF24Ch:  00000000 FFFFFD34 000002E4 FFFFFD34
004AF25Ch:  000002CC 00000019 00000000 0229EF34
004AF26Ch:  004AF2E4 004AF2DC 004AF28C 6F82CF4E
004AF27Ch:  004AF2E4 00000002 004AF2DC 00000001
004AF28Ch:  004AF2A4 6F836022 00000002 022E6C80
004AF29Ch:  00000000 00000000 004AF318 6F835E7F
004AF2ACh:  00000001 022B5BC8 022B5BB8 05B77C23
004AF2BCh:  004AF37C 022B5BB8 0237D9A0 004A0000
004AF2CCh:  004AF2F4 76A10230 769A6901 2257F320
004AF2DCh:  022E6C80 00000000 769A6931 00000000
004AF2ECh:  004AF2C8 022E6C80 00000000 00000000
004AF2FCh:  00000000 00000000 004AEE10 004AF3F0
004AF30Ch:  6F8B6BE4 6A7ED043 00000000 004AF400
004AF31Ch:  6F82F4BE 0237D9A0 00000000 00000001
004AF32Ch:  022B5BC8 022B5BB8 0009001F 05B77B3B
004AF33Ch:  00000000 00000000 0237D9A0 00000000
004AF34Ch:  040CC9F0 004AF408 040CC9E8 004AF36C
004AF35Ch:  765D14D1 04430000 00000000 040CC9F0
004AF36Ch:  022E6C80 00000000 00000000 00000000
004AF37Ch:  022B5BC8 022B5BDC 00000001 00000000

Registers:
EAX: 769A6931, EBX: 004AF2DC, ECX: 004AF2E4, EDX: 004AF1B4
ESI: 0229EFA0, EDI: 00000003, EBP: 004AF274, ESP: 004AF26C

Crash location:
Module: jscript
Offset: 16444h
Symbol: "DllGetClassObject" (+52A8h)

Loaded modules:
foobar2000                      loaded at 00070000h - 00260000h
ntdll                            loaded at 76F30000h - 770B0000h
kernel32                        loaded at 765C0000h - 766C0000h
KERNELBASE                      loaded at 75360000h - 753A6000h
COMCTL32                        loaded at 72A90000h - 72C2E000h
msvcrt                          loaded at 756A0000h - 7574C000h
GDI32                            loaded at 74D60000h - 74DF0000h
USER32                          loaded at 76990000h - 76A90000h
ADVAPI32                        loaded at 76A90000h - 76B30000h
sechost                          loaded at 75190000h - 751A9000h
RPCRT4                          loaded at 75070000h - 75160000h
SspiCli                          loaded at 74AA0000h - 74B00000h
CRYPTBASE                        loaded at 74A90000h - 74A9C000h
LPK                              loaded at 74F00000h - 74F0A000h
USP10                            loaded at 752C0000h - 7535D000h
SHLWAPI                          loaded at 757B0000h - 75807000h
DSOUND                          loaded at 70F90000h - 71002000h
ole32                            loaded at 74F10000h - 7506C000h
WINMM                            loaded at 72740000h - 72772000h
POWRPROF                        loaded at 71990000h - 719B5000h
SETUPAPI                        loaded at 766F0000h - 7688D000h
CFGMGR32                        loaded at 75810000h - 75837000h
OLEAUT32                        loaded at 76900000h - 7698F000h
DEVOBJ                          loaded at 76890000h - 768A2000h
UxTheme                          loaded at 71E90000h - 71F10000h
SHELL32                          loaded at 75970000h - 765B9000h
zlib1                            loaded at 5A4C0000h - 5A4D4000h
shared                          loaded at 70DA0000h - 70DCB000h
imagehlp                        loaded at 766C0000h - 766EA000h
dbghelp                          loaded at 72C70000h - 72D5B000h
COMDLG32                        loaded at 74E80000h - 74EFB000h
Secur32                          loaded at 70F80000h - 70F88000h
CRYPT32                          loaded at 75840000h - 7595C000h
MSASN1                          loaded at 75960000h - 7596C000h
gdiplus                          loaded at 70C10000h - 70DA0000h
IMM32                            loaded at 75750000h - 757B0000h
MSCTF                            loaded at 753B0000h - 7547C000h
CLBCatQ                          loaded at 74DF0000h - 74E73000h
MMDevApi                        loaded at 70EB0000h - 70EE9000h
PROPSYS                          loaded at 71C50000h - 71D45000h
dwmapi                          loaded at 71D50000h - 71D63000h
foo_rgscan                      loaded at 70BC0000h - 70C0D000h
foo_input_tta                    loaded at 10000000h - 10042000h
foo_fileops                      loaded at 70B70000h - 70BB7000h
foo_input_alac                  loaded at 004F0000h - 0050D000h
foo_freedb2                      loaded at 70B30000h - 70B70000h
foo_run                          loaded at 00620000h - 0067F000h
foo_playcount                    loaded at 6FED0000h - 6FF0C000h
foo_input_std                    loaded at 6FD70000h - 6FEC5000h
foo_vst                          loaded at 70DD0000h - 70DFE000h
MSVCP90                          loaded at 6FCE0000h - 6FD6E000h
MSVCR90                          loaded at 6FC30000h - 6FCD3000h
foo_r128scan                    loaded at 6FBE0000h - 6FC22000h
foo_converter                    loaded at 6FB60000h - 6FBDB000h
foo_albumlist                    loaded at 6FB00000h - 6FB5D000h
foo_burninate                    loaded at 023F0000h - 02430000h
foo_input_tak                    loaded at 6FAB0000h - 6FAF4000h
tak_deco_lib                    loaded at 02430000h - 02450000h
foo_uie_esplaylist              loaded at 6FA40000h - 6FAA8000h
foo_chacon                      loaded at 6FA10000h - 6FA34000h
foo_input_ofr                    loaded at 02460000h - 0249F000h
OptimFROG                        loaded at 024C0000h - 024FD000h
foo_ui_hacks                    loaded at 03170000h - 031B0000h
psapi                            loaded at 76F00000h - 76F05000h
foo_cdda                        loaded at 73F20000h - 73F6E000h
foo_ui_std                      loaded at 73E00000h - 73F18000h
MSIMG32                          loaded at 71F20000h - 71F25000h
foo_input_monkey                loaded at 032D0000h - 03318000h
foo_uie_wsh_panel_mod            loaded at 6F940000h - 6FA02000h
AUDIOSES                        loaded at 70E00000h - 70E36000h
SXS                              loaded at 6F8E0000h - 6F93F000h
WindowsCodecs                    loaded at 71B50000h - 71C4B000h
jscript                          loaded at 6F820000h - 6F8D2000h
VERSION                          loaded at 72A80000h - 72A89000h
CRYPTSP                          loaded at 724B0000h - 724C6000h
rsaenh                          loaded at 72470000h - 724AB000h
RpcRtRemote                      loaded at 73B90000h - 73B9E000h
wshom                            loaded at 6F7F0000h - 6F811000h
MPR                              loaded at 72720000h - 72732000h
ScrRun                          loaded at 6F7C0000h - 6F7EA000h
msscript                        loaded at 73F80000h - 73F9A000h
vbscript                        loaded at 6F750000h - 6F7BB000h
hdphx                            loaded at 03790000h - 037C3000h
sud                              loaded at 6F690000h - 6F74B000h
ADVPACK                          loaded at 6F660000h - 6F68E000h
DUI70                            loaded at 71730000h - 717E2000h
avrt                            loaded at 70F60000h - 70F67000h
msxml3                          loaded at 6F520000h - 6F653000h
mshtml                          loaded at 6EF60000h - 6F517000h
urlmon                          loaded at 75480000h - 755B6000h
WININET                          loaded at 751C0000h - 752B5000h
iertutil                        loaded at 74B60000h - 74D5A000h
msls31                          loaded at 6EF30000h - 6EF5A000h
ntmarta                          loaded at 72A50000h - 72A71000h
WLDAP32                          loaded at 768B0000h - 768F5000h
IEFRAME                          loaded at 6E4B0000h - 6EF2F000h
OLEACC                          loaded at 6E470000h - 6E4AC000h
msxml6                          loaded at 6E310000h - 6E467000h
winhttp                          loaded at 72640000h - 72698000h
webio                            loaded at 725F0000h - 7263F000h
WS2_32                          loaded at 755C0000h - 755F5000h
NSI                              loaded at 751B0000h - 751B6000h
credssp                          loaded at 71A30000h - 71A38000h
mswsock                          loaded at 72A00000h - 72A3C000h
mlang                            loaded at 70F30000h - 70F5E000h
DNSAPI                          loaded at 72990000h - 729D4000h
IPHLPAPI                        loaded at 72830000h - 7284C000h
WINNSI                          loaded at 72820000h - 72827000h
rasadhlp                        loaded at 72900000h - 72906000h
wshtcpip                        loaded at 729F0000h - 729F5000h
wship6                          loaded at 71B30000h - 71B36000h
fwpuclnt                        loaded at 72910000h - 72948000h

Stack dump analysis:
Address: 6F82CF4Eh (jscript+CF4Eh)
Address: 6F836022h (jscript+16022h), symbol: "DllGetClassObject" (+4E86h)
Address: 6F835E7Fh (jscript+15E7Fh), symbol: "DllGetClassObject" (+4CE3h)
Address: 76A10230h (USER32+80230h), symbol: "ShutdownBlockReasonDestroy" (+596Ah)
Address: 769A6901h (USER32+16901h), symbol: "gapfnScSendMessage" (+939h)
Address: 769A6931h (USER32+16931h), symbol: "gapfnScSendMessage" (+969h)
Address: 6F8B6BE4h (jscript+96BE4h), symbol: "DllRegisterServer" (+19B0Bh)
Address: 6F82F4BEh (jscript+F4BEh)
Address: 0009001Fh (foobar2000+2001Fh)
Address: 765D14D1h (kernel32+114D1h), symbol: "HeapFree" (+14h)
Address: 6F84651Dh (jscript+2651Dh), symbol: "DllGetClassObject" (+15381h)
Address: 6F8B6BE4h (jscript+96BE4h), symbol: "DllRegisterServer" (+19B0Bh)
Address: 6F8B6BE4h (jscript+96BE4h), symbol: "DllRegisterServer" (+19B0Bh)
Address: 6F82EB02h (jscript+EB02h)
Address: 00080029h (foobar2000+10029h)
Address: 00213BC4h (foobar2000+1A3BC4h)
Address: 6F8B6BE4h (jscript+96BE4h), symbol: "DllRegisterServer" (+19B0Bh)
Address: 6F82A26Eh (jscript+A26Eh)
Address: 6F82A1B9h (jscript+A1B9h)
Address: 6F82F6C8h (jscript+F6C8h)
Address: 6F82C71Bh (jscript+C71Bh)
Address: 6F8B6BE4h (jscript+96BE4h), symbol: "DllRegisterServer" (+19B0Bh)
Address: 6F82971Eh (jscript+971Eh)
Address: 6F94B632h (foo_uie_wsh_panel_mod+B632h)
Address: 6F9D96A8h (foo_uie_wsh_panel_mod+996A8h), symbol: "foobar2000_get_interface" (+5AE98h)
Address: 6FA75516h (foo_uie_esplaylist+35516h), symbol: "foobar2000_get_interface" (+DC6h)
Address: 6FA5DC1Bh (foo_uie_esplaylist+1DC1Bh)
Address: 6FA77FC0h (foo_uie_esplaylist+37FC0h), symbol: "foobar2000_get_interface" (+3870h)
Address: 769A6E4Ch (USER32+16E4Ch), symbol: "GetClassNameW" (+348h)
Address: 769A61D3h (USER32+161D3h), symbol: "gapfnScSendMessage" (+20Bh)
Address: 76A10230h (USER32+80230h), symbol: "ShutdownBlockReasonDestroy" (+596Ah)
Address: 6F9CD928h (foo_uie_wsh_panel_mod+8D928h), symbol: "foobar2000_get_interface" (+4F118h)
Address: 6F94DCF0h (foo_uie_wsh_panel_mod+DCF0h)
Address: 6F9D6280h (foo_uie_wsh_panel_mod+96280h), symbol: "foobar2000_get_interface" (+57A70h)
Address: 72AC0417h (COMCTL32+30417h), symbol: "DetachScrollBars" (+1EDh)
Address: 769A6E4Ch (USER32+16E4Ch), symbol: "GetClassNameW" (+348h)
Address: 769A61D3h (USER32+161D3h), symbol: "gapfnScSendMessage" (+20Bh)
Address: 76A10230h (USER32+80230h), symbol: "ShutdownBlockReasonDestroy" (+596Ah)
Address: 6FA6E1B0h (foo_uie_esplaylist+2E1B0h)
Address: 6F9B77E0h (foo_uie_wsh_panel_mod+777E0h), symbol: "foobar2000_get_interface" (+38FD0h)
Address: 769A6F8Fh (USER32+16F8Fh), symbol: "IsThreadDesktopComposited" (+95h)
Address: 6F9B77E0h (foo_uie_wsh_panel_mod+777E0h), symbol: "foobar2000_get_interface" (+38FD0h)
Address: 769A701Bh (USER32+1701Bh), symbol: "GetWindowLongW" (+2Eh)
Address: 6F9CE5F7h (foo_uie_wsh_panel_mod+8E5F7h), symbol: "foobar2000_get_interface" (+4FDE7h)
Address: 6F94FDBFh (foo_uie_wsh_panel_mod+FDBFh)
Address: 6F9B7971h (foo_uie_wsh_panel_mod+77971h), symbol: "foobar2000_get_interface" (+39161h)
Address: 6F9B77E0h (foo_uie_wsh_panel_mod+777E0h), symbol: "foobar2000_get_interface" (+38FD0h)
Address: 769A701Bh (USER32+1701Bh), symbol: "GetWindowLongW" (+2Eh)
Address: 769A6238h (USER32+16238h), symbol: "gapfnScSendMessage" (+270h)
Address: 6F9B77E0h (foo_uie_wsh_panel_mod+777E0h), symbol: "foobar2000_get_interface" (+38FD0h)
Address: 6F9B77E0h (foo_uie_wsh_panel_mod+777E0h), symbol: "foobar2000_get_interface" (+38FD0h)
Address: 769A68EAh (USER32+168EAh), symbol: "gapfnScSendMessage" (+922h)
Address: 6F9B77E0h (foo_uie_wsh_panel_mod+777E0h), symbol: "foobar2000_get_interface" (+38FD0h)
Address: 6F9B77E0h (foo_uie_wsh_panel_mod+777E0h), symbol: "foobar2000_get_interface" (+38FD0h)
Address: 769A6899h (USER32+16899h), symbol: "gapfnScSendMessage" (+8D1h)
Address: 72AC0330h (COMCTL32+30330h), symbol: "DetachScrollBars" (+106h)
Address: 769C0155h (USER32+30155h), symbol: "DdeQueryStringW" (+6D7h)
Address: 769B0AB0h (USER32+20AB0h), symbol: "FillRect" (+110h)
Address: 6F9B77E0h (foo_uie_wsh_panel_mod+777E0h), symbol: "foobar2000_get_interface" (+38FD0h)
Address: 769B0AD6h (USER32+20AD6h), symbol: "CallWindowProcW" (+1Bh)
Address: 6F9B77E0h (foo_uie_wsh_panel_mod+777E0h), symbol: "foobar2000_get_interface" (+38FD0h)
Address: 72AC450Eh (COMCTL32+3450Eh), symbol: "DPA_Sort" (+18Dh)
Address: 6F9B77E0h (foo_uie_wsh_panel_mod+777E0h), symbol: "foobar2000_get_interface" (+38FD0h)
Address: 72AC463Dh (COMCTL32+3463Dh), symbol: "DefSubclassProc" (+92h)
Address: 6F9B77E0h (foo_uie_wsh_panel_mod+777E0h), symbol: "foobar2000_get_interface" (+38FD0h)
Address: 72AC44F4h (COMCTL32+344F4h), symbol: "DPA_Sort" (+173h)
Address: 6F9B77E0h (foo_uie_wsh_panel_mod+777E0h), symbol: "foobar2000_get_interface" (+38FD0h)
Address: 72BB720Eh (COMCTL32+12720Eh), symbol: "Ordinal234" (+B5h)
Address: 72AC45F1h (COMCTL32+345F1h), symbol: "DefSubclassProc" (+46h)
Address: 72ABFA37h (COMCTL32+2FA37h), symbol: "ImageList_GetIcon" (+2A4h)
Address: 72AC463Dh (COMCTL32+3463Dh), symbol: "DefSubclassProc" (+92h)
Address: 72ABF9FBh (COMCTL32+2F9FBh), symbol: "ImageList_GetIcon" (+268h)
Address: 72BB720Eh (COMCTL32+12720Eh), symbol: "Ordinal234" (+B5h)
Address: 72AC46E1h (COMCTL32+346E1h), symbol: "DefSubclassProc" (+136h)
Address: 72AC469Dh (COMCTL32+3469Dh), symbol: "DefSubclassProc" (+F2h)
Address: 72BB720Eh (COMCTL32+12720Eh), symbol: "Ordinal234" (+B5h)
Address: 769A6238h (USER32+16238h), symbol: "gapfnScSendMessage" (+270h)
Address: 72AC469Dh (COMCTL32+3469Dh), symbol: "DefSubclassProc" (+F2h)
Address: 72AC469Dh (COMCTL32+3469Dh), symbol: "DefSubclassProc" (+F2h)
Address: 769A68EAh (USER32+168EAh), symbol: "gapfnScSendMessage" (+922h)
Address: 72AC469Dh (COMCTL32+3469Dh), symbol: "DefSubclassProc" (+F2h)
Address: 769A6899h (USER32+16899h), symbol: "gapfnScSendMessage" (+8D1h)
Address: 769CF102h (USER32+3F102h), symbol: "CallNextHookEx" (+FCh)
Address: 769C0155h (USER32+30155h), symbol: "DdeQueryStringW" (+6D7h)
Address: 769A7D31h (USER32+17D31h), symbol: "LoadStringW" (+11Fh)
Address: 72AC469Dh (COMCTL32+3469Dh), symbol: "DefSubclassProc" (+F2h)
Address: 76F4F87Ah (ntdll+1F87Ah), symbol: "NtCallbackReturn" (+12h)
Address: 769C0155h (USER32+30155h), symbol: "DdeQueryStringW" (+6D7h)
Address: 769A7DFAh (USER32+17DFAh), symbol: "DispatchMessageW" (+Fh)
Address: 72AC469Dh (COMCTL32+3469Dh), symbol: "DefSubclassProc" (+F2h)
Address: 769C2292h (USER32+32292h), symbol: "IsDialogMessageW" (+11Eh)
Address: 73EA25A7h (foo_ui_std+A25A7h)
Address: 000DDE67h (foobar2000+6DE67h)
Address: 769A7E92h (USER32+17E92h), symbol: "GetMessageW" (+0h)
Address: 765D1199h (kernel32+11199h), symbol: "SetLastError" (+0h)
Address: 001BBCF8h (foobar2000+14BCF8h)
Address: 000DDFA6h (foobar2000+6DFA6h)
Address: 0022FA65h (foobar2000+1BFA65h)
Address: 000DEE72h (foobar2000+6EE72h)
Address: 001DB7E8h (foobar2000+16B7E8h)
Address: 001DB7E8h (foobar2000+16B7E8h)
Address: 001ED968h (foobar2000+17D968h)
Address: 001ED94Ch (foobar2000+17D94Ch)
Address: 76FA0AE5h (ntdll+70AE5h), symbol: "WinSqmSetIfMaxDWORD" (+35h)
Address: 76F5E38Ch (ntdll+2E38Ch), symbol: "RtlInitUnicodeString" (+164h)
Address: 76F5E0F2h (ntdll+2E0F2h), symbol: "RtlAllocateHeap" (+ACh)
Address: 001A8B3Dh (foobar2000+138B3Dh)
Address: 001AF341h (foobar2000+13F341h)
Address: 0008001Fh (foobar2000+1001Fh)
Address: 000A2E00h (foobar2000+32E00h)
Address: 001AC9C0h (foobar2000+13C9C0h)
Address: 001AF341h (foobar2000+13F341h)
Address: 001AD255h (foobar2000+13D255h)
Address: 001C9FABh (foobar2000+159FABh)
Address: 70DA27D8h (shared+27D8h), symbol: "uPrintCrashInfo_OnEvent" (+B1h)
Address: 001E3A74h (foobar2000+173A74h)
Address: 70DA281Eh (shared+281Eh), symbol: "uCallStackTracker::uCallStackTracker" (+31h)
Address: 001E3A74h (foobar2000+173A74h)
Address: 000DF08Dh (foobar2000+6F08Dh)
Address: 00070000h (foobar2000+0h)
Address: 001B2617h (foobar2000+142617h)
Address: 00218200h (foobar2000+1A8200h)
Address: 001AC1CAh (foobar2000+13C1CAh)
Address: 001A8E0Fh (foobar2000+138E0Fh)
Address: 001A8E09h (foobar2000+138E09h)
Address: 001D575Ch (foobar2000+16575Ch)
Address: 001D5760h (foobar2000+165760h)
Address: 001D2D51h (foobar2000+162D51h)
Address: 001AC9C0h (foobar2000+13C9C0h)
Address: 001A8E09h (foobar2000+138E09h)
Address: 001CA57Dh (foobar2000+15A57Dh)
Address: 001AA002h (foobar2000+13A002h)
Address: 00070000h (foobar2000+0h)
Address: 001B09EFh (foobar2000+1409EFh)
Address: 001AC9C0h (foobar2000+13C9C0h)
Address: 765D3677h (kernel32+13677h), symbol: "BaseThreadInitThunk" (+12h)
Address: 76F69F02h (ntdll+39F02h), symbol: "RtlInitializeExceptionChain" (+63h)
Address: 765F9775h (kernel32+39775h), symbol: "UnhandledExceptionFilter" (+0h)
Address: 765F9775h (kernel32+39775h), symbol: "UnhandledExceptionFilter" (+0h)
Address: 76FA0AE5h (ntdll+70AE5h), symbol: "WinSqmSetIfMaxDWORD" (+35h)
Address: 76F69ED5h (ntdll+39ED5h), symbol: "RtlInitializeExceptionChain" (+36h)
Address: 001AA055h (foobar2000+13A055h)
Address: 001AA055h (foobar2000+13A055h)

Environment:
App: foobar2000 v1.1.2
OS: Windows 6.1.7600 x64
CPU: Intel® Xeon® CPU          X3220  @ 2.40GHz, features: MMX SSE SSE2 SSE3
Audio: Speakers (USB Audio DAC  )
UI: Default User Interface 0.9.5

Components:
Core (2011-01-22 00:03:02 UTC)
    foobar2000 core 1.1.2
foo_albumlist.dll (2011-01-22 00:01:28 UTC)
    Album List 4.5
foo_burninate.dll (2010-01-18 15:10:44 UTC)
    Audio CD Writer 3.0.2
foo_cdda.dll (2011-01-22 00:01:02 UTC)
    CD Audio Decoder 3.0
foo_chacon.dll (2010-08-16 08:30:12 UTC)
    Chacon 3
foo_converter.dll (2011-01-22 00:00:36 UTC)
    Converter 1.5
foo_fileops.dll (2011-01-21 23:59:40 UTC)
    File Operations 2.1.3
foo_freedb2.dll (2011-01-21 23:59:42 UTC)
    freedb Tagger 0.6.3
foo_input_alac.dll (2010-08-31 12:55:58 UTC)
    ALAC Decoder 1.0.6
foo_input_monkey.dll (2010-08-16 08:30:22 UTC)
    Monkey's Audio Decoder 2.1.4
foo_input_ofr.dll (2011-02-11 04:47:20 UTC)
    OptimFROG Lossless/DualStream Decoder 1.30
foo_input_std.dll (2011-01-22 00:00:58 UTC)
    Standard Input Array 1.0
foo_input_tak.dll (2010-08-16 08:30:52 UTC)
    TAK Decoder 0.4.4
foo_input_tta.dll (2010-11-02 03:45:18 UTC)
    TTA Audio Decoder 3.2
foo_playcount.dll (2010-10-12 15:40:04 UTC)
    Playback Statistics 3.0.1
foo_r128scan.dll (2011-02-07 15:26:29 UTC)
    EBU R128 Gain scanner 1.21
foo_rgscan.dll (2011-01-22 00:00:36 UTC)
    ReplayGain Scanner 2.0.9
foo_run.dll (2010-08-16 08:31:16 UTC)
    Run services 0.3.7
foo_ui_hacks.dll (2011-02-11 09:30:04 UTC)
    UI Hacks 2011-01-22
foo_ui_std.dll (2011-01-22 00:00:58 UTC)
    Default User Interface 0.9.5
foo_uie_esplaylist.dll (2011-02-07 16:46:17 UTC)
    EsPlaylist 0.1.3.6.3
foo_uie_wsh_panel_mod.dll (2011-01-13 18:22:54 UTC)
    WSH Panel Mod 1.4.2
foo_vst.dll (2011-01-08 17:36:22 UTC)
    VST 2.4 adapter 0.8.0.1

Recent events:
Network disconnected, or last.fm server is offline.
Last.fm submission: Scrobble... ERROR
Network disconnected, or last.fm server is offline.
Last.fm submission: Now playing... ERROR
Network disconnected, or last.fm server is offline.
Opening track for playback: "D:\Music\ByArtist\Secret Garden\(1996) Songs From A Secret Garden\08. Heartstrings.m4a"
Last.fm submission: Scrobbled 1 track(s)... OK
Last.fm submission: Now playing... ERROR
Network disconnected, or last.fm server is offline.
Last.fm submission: Now playing... OK

Please take a look.

WSH Panel Mod

Reply #1178
i am new to this panel, but i just tried importing some scripts (.txt) and i am getting this error:
"Scripting Engine Initialization Failed ({DAD48235-7967-4F83-B0B4-CE98997E3008}, CODE: 0x80020101)
Check the console for more information (Always caused by unexcepted script error)."

I tried three different scripts and the same error is showing.

Edit:
The same error is showing everytime i start foobar now. I installed/reinstalled the .dll file, but the same problem remains.

WSH Panel Mod

Reply #1179
Quote
Check the console for more information


view menu>Console


WSH Panel Mod

Reply #1180
This is what console says:
"WSH Panel Mod: Warning: Could not load file C:\Documents and Settings\*****\Application Data\foobar2000\user-components\foo_uie_wsh_panel_mod\jscript.api
WSH Panel Mod: Warning: Could not load file C:\Documents and Settings\****\Application Data\foobar2000\user-components\foo_uie_wsh_panel_mod\interface.api
Error: WSH Panel Mod (Master panel): Microsoft JScript runtime error:
Automation server can't create object"

WSH Panel Mod

Reply #1181
First two warnings were because you didn't install these two api files wsh panel mod needs it for the code editor. Copy them from the component archive to the directory mentioned. The next error was my fault, and it seems you have it fixed after contacting me in that pack thread.

WSH Panel Mod

Reply #1182
WSH Panel Mod 1.4.3 Released
Changelog:
Code: [Select]
v1.4.3
- ADD: New callback on_playlist_items_selection_change() callback (Workaround: 3rd party playlist viewers may not receive on_selection_changed() callback).
- ADD: New Parameter 'metadb' to on_playback_edited() callback.


WSH Panel Mod

Reply #1184
Can anyone tell me the ways of animating something with Jscript? I was thinking of moving a simple image from A to B, or even moving some drawed rectangle. I mean with movement, not just "teleporting". I'm trying to create an interface with animated panels or objects, but nothing too fancy. Think modern smartphone interface subtle animations.

WSH Panel Mod

Reply #1185
Can anyone tell me the ways of animating something with Jscript? I was thinking of moving a simple image from A to B, or even moving some drawed rectangle. I mean with movement, not just "teleporting". I'm trying to create an interface with animated panels or objects, but nothing too fancy. Think modern smartphone interface subtle animations.


if you know jscript and callbacks available in WSH panel mod, you'll find it

here is a demo : here

how it works in macro description i would explain it like this:
- declare globals like a boolean variable that will take value=true when your object is dragged => var g_drag = false; and obj_x and obj_y coords for your object to drag/move
- in function on_mouse_lbtn_down(x,y), set g_drag to true if coords (x,y) of the mouse are in your object boundaries
- in function on_mouse_lbtn_up(x,y), reset g_drag to false (object released)
- in on_mouse_move(x,y), update your object coords (obj_x, obj_y variables) according to the mouse coords (x,y) and code a window.Repaint(); to call the main paint function (on_paint)
- in on_paint() function, just draw your object with its cooreds (obj_x, obj_y)

HTH

 

WSH Panel Mod

Reply #1186
Hi Falstaff, thank you for your reply, but perhaps I explained myself wrong when I said "move an image", I didn't mean to drag objects, but only making an object move slightly at a press of a button. For example, I press a track info button, and out of nowhere a panel with the text info appears and slides a little from a side to the center. Automatic movement, not drag and drop.
If you or anyone could give me samples of this, links to sites that teach this (yes, I googled, no effect), or even foobar configs that use this, I would appreciate it very much.
Again, thanks for your reply.

WSH Panel Mod

Reply #1187
Hi Falstaff, thank you for your reply, but perhaps I explained myself wrong when I said "move an image", I didn't mean to drag objects, but only making an object move slightly at a press of a button. For example, I press a track info button, and out of nowhere a panel with the text info appears and slides a little from a side to the center. Automatic movement, not drag and drop.
If you or anyone could give me samples of this, links to sites that teach this (yes, I googled, no effect), or even foobar configs that use this, I would appreciate it very much.
Again, thanks for your reply.


ok, but sounds of the same skills level ... (maybe a lower one ^^)

so your start event is a click on a button, so in function on_mouse_lbtn_click(x,y), test if the click is done on your button area with x,y coords in input : if button clicked, call a function that you have to create ( i.e: move_my_image() ) which will contain a loop to move your image from its actual/source location, to its target location (target coords). in this loop, you increment your image coords with a determined step (i.e: 1 pixel) and call a window.Repaint() at each iteration for refreshing the display of the panel and so, to see your image moving ! Exit the loop when target coords are reached (code the condtions you want to stop the loop)

according to me, it's far easy to do that if you know wsh panel mod callbacks and jscript. If this is not clear, maybe try to do easier things before trying to move images, to master wsh methods ... for example, try to play with defining a button, lauching an action on button click, move a rectangle on one axis only from coord(10,100) to (50,100) ...

good luck and enjoy

WSH Panel Mod

Reply #1188
Hi pipoawas! I made a little example for you. It uses timer for movement.

Code: [Select]
function RGB(r, g, b) {
    return (0xff000000 | (r << 16) | (g << 8) | (b));
}

var g_timer = false;
var closed = true;

var rectx = -200;
var recty = 80;
var rectw = 200;
var recth = 100;

function on_paint(gr) {

    gr.SetTextRenderingHint(5);

    gr.FillSolidRect(rectx, recty, rectw, recth, RGB(240, 240, 255));
    gr.DrawRect(rectx, recty, rectw, recth, 1, RGB(100, 100, 100));
    gr.Drawstring("Click Me", gdi.font("segoe_ui", 24, 0), 0xff000000, 20, 20, ww, 30, 0x11005000);
    gr.Drawstring("Artist: " + fb.TitleFormat("[%artist%]").Eval() + "\nAlbum: " + fb.TitleFormat("[%album%]").Eval(), gdi.font("segoe_ui", 14, 0), 0xff000000, rectx, recty, rectw, recth, 0x11005000);
}

function on_mouse_lbtn_up() {

    g_timer = window.CreateTimerInterval(5); // Change animation speed here

}

function on_timer(id) {

    if (g_timer && id == g_timer.ID) {

        if (closed) {

            if (rectx < 0) {
                rectx++;

            } else {

                window.KillTimer(g_timer);
                closed = false;

            }

        } else {

            if (rectx > -200) {

                rectx--;
            } else {
                window.KillTimer(g_timer);
                closed = true;
            }

        }
        window.RepaintRect(rectx - 5, recty - 5, rectw + 10, recth + 10);
    }

}

function on_size() {

    ww = window.Width;
    wh = window.Height;

}

WSH Panel Mod

Reply #1189
Falstaff, thanks for the tips, I will try those steps.

ExtremeHunter, what a cool demo, I will definitely play and "tamper" with its settings.

Thanks guys

WSH Panel Mod

Reply #1190
T.P.Wang there is already ProfilePath, ComponentsPath and FoobarPath. Could you also add LibraryPath? That would allow coders to set paths relative to the Library path for artist, album image displaying or lyrics. I hope this wouldn't be too much of a hassle to implement.

WSH Panel Mod

Reply #1191
Ah, crap. I'm just gonna ask because I tried this and asked someone else to use it since I thought maybe it was something with my script, but I added the flag,
DT_NOPREFIX = 0x00000800;  // NOTE: Please use this flag, or a '&' character will become a underline '_' [I added the DT_NOPREFIX]
, but maybe I didn't add it in the right place, but it Aw, crashed ;(

I added it to the line:
gr.GdiDrawText(stxt, g_font, RGB(45,45,45), ww/5, 0, 4*ww/5, wh/2, DT_NOPREFIX | DT_CENTER | DT_VCENTER | DT_SINGLELINE);

But is the whole code necessary for any help on it? Console just says <source text only available at compile time>

Code: [Select]
// Flags
var DT_CENTER = 0x00000001;
var DT_VCENTER = 0x00000002;
var DT_CENTER2 = 0x00000002;
var DT_SINGLELINE = 0x00000020;

//--------
function RGB(r,g,b){ return (0xff000000|(r<<16)|(g<<8)|(b)); }
function RGBA(r,g,b,a){ return ((a<<24)|(r<<16)|(g<<8)|(b)); }
//--------
function TimeFmt(t){
var zpad = function(n){
var str = n.toString();
return (str.length<2) ? "0"+str : str;
}
var h = Math.floor(t/3600); t-=h*3600;
var m = Math.floor(t/60); t-=m*60;
var s = Math.floor(t);
if(h>0) return h.toString()+":"+zpad(m)+":"+zpad(s);
return m.toString()+":"+zpad(s);
}
//----------------------------------------------------------------------------

var g_font = gdi.Font("Tahoma",16);
var g_titlefmt = fb.TitleFormat("$if(%ispaused%,PAUSED )$if($or($greater($right(%discnumber%,$sub($strchr(%discnumber%,/),1)),1),$greater(%totaldiscs%,1)),$if($strcmp(%codec%,Vorbis),'('CD$num($left(%discnumber%,$sub($strchr(%discnumber%,/),1)),1)')','('CD$num(%discnumber%,1)')')) %track%. %title% by %artist% -%_time_remaining%/%length%");
var g_titlefmt2 = fb.TitleFormat("$if(%ispaused%,PAUSED )'['%album%']' '('$if(%date%,%date%,)')' %_time_elapsed%/%length%");
var g_fileinfo = null;
var g_colors = new Array(RGB(235,190,99), RGB(0,161,0), RGB(235,190,99), RGB(0,161,0));



var g_drag = 0;
var g_drag_seek = 0;
var g_hover;
var g_bar = 0;
var Tooltip = window.CreateTooltip();


function on_paint(gr){

var ww = window.Width;
var wh = window.Height;
var spos = 0;
var length = fb.PlaybackLength;
var volume = (fb.Volume ) * 5;

var vpos = (window.Width / 5) * ((100+volume)/100);
var stxt;
var stxt2;
var vtxt = "v5";
var vtxt2 = "Vol. " + (Math.ceil(volume)) + "%";


if(length > 0) {
if ( g_drag && g_drag_seek && g_bar == 1) {
spos = (window.Width - window.Width/5) * g_drag_seek;
stxt = "Seek: " + TimeFmt(g_drag_seek * length) + " / " + TimeFmt(length);
}
else if ( g_drag && g_bar == 2) {


vpos = (window.Width / 5) * ((100+volume)/100);
vtxt = "v5";
var vtxt2 = "Vol. " + (Math.ceil(volume)) + "%";


}
if ( g_bar != 1 ) {
spos = (window.Width - window.Width/5) * (fb.PlaybackTime / length);
stxt = g_titlefmt.Eval();
stxt2 = g_titlefmt2.Eval();
}
}
else if ( fb.PlaybackTime ) { stxt = "Streaming..."; }












gr.FillGradRect(ww/5, 0, ww, wh, 90, RGB(38,103,108), RGB(38,103,199));
gr.FillGradRect(ww/5, 0, spos, wh, 90, g_colors[4], g_colors[2]);


gr.FillGradRect(0, 0, ww/5, wh, 90, RGB(38,103,199), RGB(38,103,199));
gr.FillGradRect(0, 0, vpos, wh, 90, g_colors[1], g_colors[3]);

gr.GdiDrawText(stxt, g_font, RGB(45,45,45), ww/5, 0, 4*ww/5, wh/2, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
gr.GdiDrawText(stxt2, g_font, RGB(45,45,45), ww/5, wh/2, 4*ww/5, wh/2, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
gr.GdiDrawText(vtxt, g_font, RGB(45,45,45), 0, 0, ww/5, wh/2, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
gr.GdiDrawText(vtxt2, g_font, RGB(45,45,45), 0, wh/2, ww/5, wh/2, DT_CENTER | DT_VCENTER | DT_SINGLELINE);




//if( g_hover && !g_drag ) { Tooltip.Text = g_hover; Tooltip.Activate(); }

}

function on_size(){
}

function on_focus(focused){
//fb.trace("focus " + focused);
}

function on_key_down(key){
//fb.trace("key " + key);
}

function on_mouse_lbtn_down(x,y){

g_drag = 1;
if ( x <= window.Width/5) g_bar = 2;
else if ( x > window.Width/5 ) g_bar = 1;
on_mouse_move(x,y);

}

function on_mouse_lbtn_up(x,y){
x=x-window.width/5;
if( g_drag ) {
if ( g_bar == 1 ) {
g_drag = 0;
g_drag_seek = x / (4*window.Width/5);
g_drag_seek = (g_drag_seek<0) ? 0 : (g_drag_seek<1) ? g_drag_seek : 1;
fb.PlaybackTime = fb.PlaybackLength * g_drag_seek;
g_bar = 0;
}
else if (g_bar == 2) {
x=x+window.width/5;
on_mouse_move(x,y);
g_drag = 0;
}
}
}

function on_mouse_move(x,y) {
x=x-window.width/5;
if(g_drag) {
if ( g_bar == 1 ) {
g_drag_seek = x / (4*window.Width/5);
g_drag_seek = (g_drag_seek<0) ? 0 : (g_drag_seek<1) ? g_drag_seek : 1;
window.Repaint();
}
else if ( g_bar == 2 ) {
x=x+window.width/5;
var v = x / (window.Width/5);


//v -= 4;
//v = (v<0) ? 0 : (v<1) ? v : 1;

v = -100 * (1-v);
v=v/5;
if(fb.Volume != v)
fb.Volume = v;
}
}
else {
if ( x <= 4*window.Width/5) {
g_hover = x / (4*window.Width/5);
g_hover = (g_hover<0) ? 0 : (g_hover<1) ? g_hover : 1;
g_hover = TimeFmt( g_hover * fb.PlaybackLength );
}
else if ( x > 4*window.Width/5 ) {
var v = x / (window.Width/5);
v -= 4;
v = (v<0) ? 0 : (v<1) ? v : 1;
v = -100 * (1-v);
v=v/5;

g_hover = Math.ceil(v) + " dB";
}
window.Repaint();
}

}

function on_mouse_leave() {
Tooltip.Deactivate();
}

function on_mouse_wheel(delta){
if(delta<0)
fb.VolumeUp();
else
fb.VolumeDown();
}
//--------
function on_playback_starting(cmd, paused){
}

function on_playback_new_track(info){
window.Repaint();
}

function on_playback_stop(){
window.Repaint();
}

function on_playback_seek(time){
window.Repaint();
}

function on_playback_pause(state){
window.Repaint();
}

function on_playback_edited(){
}

function on_playback_dynamic_info(){
}

function on_playback_dynamic_info_track(){
}

function on_playback_time(time){
window.Repaint();
}

function on_volume_change(val){
window.Repaint();
}

//EOF

WSH Panel Mod

Reply #1192
Scripting Engine Initialization Failed ({58F01810-5321-451E-8EFF-A0A53C13F696}, CODE: 0x80040154): Class not registered 


Anyone know how to fix this?  I uninstalled kaspersky2011, and ran the kavrevmoal tool from them, now foobar gives this error trying to start it with the Spotifoo theme.  Tried to reinstall foobar/theme same thing happens.

WSH Panel Mod

Reply #1193
I have a request: It would be great if we could decode base64 strings, it would make sharing scripts much easier since we wouldn't have to include a bunch of icons separately. Unless there is already a way to do it that I've missed?

WSH Panel Mod

Reply #1194
I have a request: It would be great if we could decode base64 strings, it would make sharing scripts much easier since we wouldn't have to include a bunch of icons separately. Unless there is already a way to do it that I've missed?
Maybe this helps.

WSH Panel Mod

Reply #1195
Thanks, I'm not sure how to get it working though. I'm not sure what to do with the output, I get a type mismatch error trying to use it in gr.DrawImage().

WSH Panel Mod

Reply #1196
Alright.  I have spent the last 2 hours looking through these forums, and cannot find an answer.  What I am looking for is a skeleton method (and event name) to use for executing an external program (likely a batch script) that passes the artist / song title from a streaming audio source whenever the currently playing song changes.  Specifically, I am looking for something that triggers when the current song playing changes, but does not need the actual playlist item to change.  The nearest event I could find that could have been used was on_playback_edited(), but that does not seem to be working.  Any help would be most appreciated.
Thanks in advance for any advice

WSH Panel Mod

Reply #1197
from callbacks.txt

Code: [Select]
// Per-track dynamic info (stream track titles etc) change. Happens less often than on_playback_dynamic_info().
function on_playback_dynamic_info_track() {}


inside that you need to use fb.TitleFormat (see interfaces.txt)

WSH Panel Mod

Reply #1198
Ok, that makes sense.  I didn't see a callbacks.txt in the zip that I downloaded, but I think I may have downloaded it from somewhere that wasn't the GoogleCode site.  That being said, I am trying to figure out how to invoke an external program.  I tried Wshell.run("notepad.exe"); but it didn't do anything.  Is there a specific way (or list of parameters) needed to invoke an external file/script?
Thank you again for your help