Spider Monkey Panel
Table of contents
This is a component for the foobar2000 audio player.
It allows to use JavaScript to create full-fledged CUI/DUI panels!
Base functionality includes:
- Graphics functions: drawing (text, images, lines, rectangles and etc), image modification (resize, blur, inversion of colours and etc).
- Access to font and colour settings from CUI/DUI preferences.
- Capture of foobar2000 events with callbacks.
- Capture of keystrokes and mouse movement/clicks.
- Execution of main menu and context menu commands.
- Creation of custom buttons and menus.
- Playlist management: create, destroy, sort, change, rename and do anything that fb2k can do.
- Media Library access with ability to sort and filter it’s content.
- File tag management.
- Per panel settings storage.
- Built-in web and filesystem functionality.
- foo_acfu integration.
- And more!
Getting started!
- Use Installation Guide.
- Check out Samples and User scripts.
- Take a look at Documentation, if you are craving for more!
Information for JScript Panel users
>>Click<<
The main difference from the excellent JScript Panel
component by marc2003 is the underlying JavaScript engine:
foo_jscript_panel
uses closed-sourceJScript
engine from Internet Explorer, which was abandoned by Microsoft after the development of IE Edge.foo_spider_monkey_panel
uses open-sourceSpiderMonkey
engine from Mozilla Firefox, which is being actively developed and improved every day!
Main features of Mozilla SpiderMonkey
engine:
- ECMAScript 2019 conformant JavaScript.
- Potential support of ECMAScript Next once it has been released.
- Blazing-fast performance!
- Easily customizable: allows to implement a lot of features that couldn’t be implemented before.
See the corresponding page for the detailed list of API changes.
Or just use the Migration Guide to make your scripts compatible.
Links
Frequently Asked Questions
Support thread
Changelog
Detailed list of API Changes
Current tasks and plans
Dev build
Credits
- marc2003: original foo_jscript_panel, sample scripts and multiple contributions to this project.
- T.P. Wang: original WSH Panel Mod.
- #jsapi IRC channel: wouldn’t make it through without them, love you guys!
Especially huge thanks to sfink and jonco, who spent literally tens of hours helping me! - Respective authors of the code being used in this project.