aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Initial working Obj-C sound (leak)Nicholas Tay2022-12-094-14/+75
| | | | | It seems to memory leak so needs to be fixed, but this was before I had to return my work MacBook - until I get my own!
* Initial macOS support (key hooking only, no sound yet)Nicholas Tay2022-11-034-3/+180
| | | | | | | | | | | | | | | | 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.
* Add a proper cache for Linux+SDLNicholas Tay2022-05-301-14/+50
|
* Update README with some more details and targetsNicholas Tay2022-05-281-14/+23
|
* Add goals + licence to READMENicholas Tay2022-05-252-1/+17
|
* Ensure EOL at end of C filesNicholas Tay2022-05-252-2/+2
| | | | macOS clang warned me lol
* Add LICENCENicholas Tay2022-05-181-0/+25
|
* Add Windows readme infoNicholas Tay2022-05-181-3/+6
|
* Fix indent/stylingNicholas Tay2022-05-184-20/+32
|
* Fix readmeNicholas Tay2022-05-171-1/+3
| | | | Thanks james for boards -> board lol
* Add READMENicholas Tay2022-05-171-0/+57
|
* Add Linux supportNicholas Tay2022-05-178-13/+187
| | | | | | | | 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.
* Improve plugin loading architectureNicholas Tay2022-05-119-67/+69
| | | | | | | | | | | | | 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.
* Dynamic load boards as DLL (windows only for now)Nicholas Tay2022-05-1016-71/+149
| | | | | | 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.
* More messing around with plugin systemNicholas Tay2022-05-088-25/+40
| | | | | Just more attempts, but I think I'm gonna switch over to dynamic .so/.dll loading. That would be pretty fun to check out.
* Split out platform-specific code for WindowsNicholas Tay2022-05-074-75/+116
| | | | | Not sure if I'm really doing it in the best way possible. Feels a bit weird that some place assumes the existence of other functions.
* Windows low-level hook workingNicholas Tay2022-05-071-5/+85
| | | | | | | | Had to do some stuff with the previous VK tracking, just like what I had to do in C# with Meccha, since it keeps firing events. GetMessage part also just blocks to ensure we keep receiving Windows events, but not sure what to do otherwise.
* Dynamically take in board nameNicholas Tay2022-05-071-7/+23
|
* Split out sound logic (for xplatform)Nicholas Tay2022-04-281-5/+17
|
* Iterate boards in CNicholas Tay2022-04-282-3/+19
|
* Initial working Windows playsoundNicholas Tay2022-04-285-0/+50