by drakinite » Sun Mar 13, 2022 1:12 am
tbessie wrote: ↑Thu Mar 10, 2022 2:48 am
Thanks for the links, I'll take a look! Like I said, I'm pretty busy as it is, but I could get motivated.
Is the entire plugin architecture in JavaScript and JSON? Or are other languages involved? The 1st document you refer to mentions DLLs - does that imply I can link in compiled Windows code for this or something?
I've done plenty of raw JavaScript programming, but don't love it (I like compiled, strongly-typed languages like Java, which is what I mostly work in, or C, which I used to do most of my work on). JavaScript has gotten more and more powerful, but it still has lots of things I find annoying. At my current job, they're trying to move everything on our project to React eventually; we all took a training in that, but I haven't gotten to use it yet.
- Tim
For MM5, I'm pretty sure DLLs only apply to audio-related plugins like codecs, DSP effects, and audio outputs (sorry).
It
might be possible to make a DLL plugin and use the COM API, but support is relatively limited and you can't control UI elements in COM.
The entire UI of MediaMonkey is now controlled by JavaScript, while the complex data operations like the database and file tagging are handled with native code. The advantage of this is that addons can control and override
anything in the UI with JS:
https://www.mediamonkey.com/wiki/Gettin ... dons)#Code
If you prefer strongly typed languages, you might be able to write addons in TypeScript (a strongly typed superset of JS) and compile it into JS. haven't used TypeScript myself, though, so I wouldn't know exactly how to do that. I've been meaning to write
.d.ts "header" files for MM objects & elements, though, which may help with the development process.
The only element of JSON that's used in addon development is the single info.json file, which contains metadata for the addon. (And in the case of skins, it lets you provide user-configurable options). I hope all the JS doesn't scare you off - if you're still interested and need help with anything, feel free to send me a PM.
[quote=tbessie post_id=495542 time=1646898529 user_id=2969]
Thanks for the links, I'll take a look! Like I said, I'm pretty busy as it is, but I could get motivated.
Is the entire plugin architecture in JavaScript and JSON? Or are other languages involved? The 1st document you refer to mentions DLLs - does that imply I can link in compiled Windows code for this or something?
I've done plenty of raw JavaScript programming, but don't love it (I like compiled, strongly-typed languages like Java, which is what I mostly work in, or C, which I used to do most of my work on). JavaScript has gotten more and more powerful, but it still has lots of things I find annoying. At my current job, they're trying to move everything on our project to React eventually; we all took a training in that, but I haven't gotten to use it yet.
- Tim
[/quote]
For MM5, I'm pretty sure DLLs only apply to audio-related plugins like codecs, DSP effects, and audio outputs (sorry).
It [i]might[/i] be possible to make a DLL plugin and use the COM API, but support is relatively limited and you can't control UI elements in COM.
The entire UI of MediaMonkey is now controlled by JavaScript, while the complex data operations like the database and file tagging are handled with native code. The advantage of this is that addons can control and override [i]anything[/i] in the UI with JS: https://www.mediamonkey.com/wiki/Getting_Started_(Addons)#Code
If you prefer strongly typed languages, you might be able to write addons in TypeScript (a strongly typed superset of JS) and compile it into JS. haven't used TypeScript myself, though, so I wouldn't know exactly how to do that. I've been meaning to write [b].d.ts[/b] "header" files for MM objects & elements, though, which may help with the development process.
The only element of JSON that's used in addon development is the single info.json file, which contains metadata for the addon. (And in the case of skins, it lets you provide user-configurable options). I hope all the JS doesn't scare you off - if you're still interested and need help with anything, feel free to send me a PM. :slight_smile: