| Commit message (Collapse) | Author | Files | Lines |
|
Darwin only for now since that's what I'm on, will migrate the others a
bit later. Trying out a different plugin system that probably makes more
sense as an interface to each other. Might shuffle things around even
more later.
This is based somewhat on Tsoding's audio visualiser plugin system, I
thought that was way more elegant (the 'state' object), as opposed to
whatever the hell we were doing.
|
|
Thought I'd commit this first, since it'll be some Objective-C stuff
coming (tested it out in another mini probe). Mostly has stuff similar
to Linux so probably should abstract some out to *nix common. But uses
IOKit to get into the typing events.
Will use Obj-C for now for sound, since it'll probably be a NSSound
thing, hooked up with NSCache (like Linux) to reduce loading into NS
format multiple times. Also probably would need to free the sound object
on finish sound, and not sure how I'd do Obj-C delegates from C... it
would be fun to figure it out though eventually
Also switched the Makefile to use clang, it's warnings do seem to be
nicer :) and is what `gcc` is aliased to on a Mac by default anyway.
|
|
macOS clang warned me lol
|
|
|
|
Oh boy this was a bit of a hassle lol - dynamic loading was the easiest
part... but then came both sound and x11
Using SDL for now but I'd really like to change it for even lower layer,
but then I might have to make my own mixer... oh no.
|
|
This should be better, maybe the variable names could be better though.
Init is more extensible, we take in a 'board_data' struct on the plugin
end that has everything it needs (mainly function pointers for now).
Then, a 'board' struct is given back to the main Clak runtime, with
everything it needs to know (again, mainly function pointers).
It is a bit weird that the board is not stored with Clak but as a
pointer to the dynamically loaded bit, but not sure.
|
|
The .h files are pretty weird, should look at other C projects to see
how they load plugins. This function pointer business with typedefs is
kinda weird, not sure where they should live.
|
|
Just more attempts, but I think I'm gonna switch over to dynamic
.so/.dll loading. That would be pretty fun to check out.
|