summaryrefslogtreecommitdiffstats
path: root/src/JackDriver.cpp
AgeCommit message (Collapse)AuthorFilesLines
2020-11-29Completely isolate drivers from the rest of the applicationDavid Robillard1-428/+0
2020-11-29Add AudioDriver interfaceDavid Robillard1-34/+52
2020-11-29Remove flaky DSP load meterDavid Robillard1-33/+1
This never worked particularly well, and the underlying API is more or less useless with Jack 2. So, just replace it with a dropout counter.
2020-11-29Clean up member initialization in JackDriverDavid Robillard1-4/+0
2020-11-29Replace attached and detached signals with eventsDavid Robillard1-7/+5
2020-11-29Remove redundant loggingDavid Robillard1-3/+0
2020-11-28Remove unused fieldDavid Robillard1-1/+0
2020-11-28Clean up Jack driver codeDavid Robillard1-93/+81
2020-11-28Add missing includeDavid Robillard1-0/+1
2020-11-28Clean up includesDavid Robillard1-3/+2
2020-11-28Avoid using atoiDavid Robillard1-1/+1
2020-11-28Avoid copying port IDsDavid Robillard1-2/+2
2020-11-28Remove dead codeDavid Robillard1-25/+0
2020-11-28Abstract out sending of eventsDavid Robillard1-19/+10
This removes the details of how events are handled from drivers, so the owner can set them up to do anything. For example, a driver could be run in the GUI thread and have its events simply dispatched immediately, but here everything is enqueued to the same queue which is drained later for simplicity.
2020-11-28Refresh by emitting eventsDavid Robillard1-205/+39
This decouples drivers from the rest of the application, in particular the horrible situation where they were working with the canvas directly, by having them always communicate changes by emitting events.
2020-11-28Factor out getting client and port metadata and send it with eventsDavid Robillard1-40/+63
2020-11-28Move PortType to its own headerDavid Robillard1-0/+1
2020-11-28Move SignalDirection to its own headerDavid Robillard1-0/+1
2020-11-28Rename ModuleType to SignalDirectionDavid Robillard1-12/+13
2020-11-28Move handle_event() to separate filesDavid Robillard1-0/+2
2020-11-28Index clients and ports by IDDavid Robillard1-14/+24
2020-11-28Remove null port IDsDavid Robillard1-3/+1
This statically ensures that a PortID is always valid.
2020-11-28Make PatchageEvent a variantDavid Robillard1-15/+9
2020-11-28Remove useless doc commentsDavid Robillard1-7/+0
2020-11-28Simplify driver connection interfaceDavid Robillard1-30/+7
2020-11-28Always index Jack ports and refer to them by nameDavid Robillard1-20/+30
The Jack API annoyingly doesn't provide a way to get an ID from a port name. Since notification callbacks apparently don't have to worry about realtime concerns anymore, simply use the full name string as an ID everywhere. This means that every Jack port has a non-null ID, and all ports are always indexed, so the kludges for this in the canvas can be removed.
2020-11-28Remove Queue and use std::queue in JackDriverDavid Robillard1-2/+0
Jack notification handlers do not need to be realtime safe.
2020-11-27Ensure that modules always have an IDDavid Robillard1-2/+5
2020-11-27Remove use of PatchagePort from Driver connection interfaceDavid Robillard1-23/+40
2020-11-27Ensure that ports always have an IDDavid Robillard1-0/+1
2020-11-27Use a consistent style for log messagesDavid Robillard1-16/+20
2020-11-27Use prettier names for log methodsDavid Robillard1-22/+22
2020-11-27Factor out log from Patchage classDavid Robillard1-23/+25
Towards saner dependencies.
2020-11-27Replace boost::format with fmtDavid Robillard1-11/+12
2020-11-27Don't use else after returnDavid Robillard1-5/+5
I don't always agree with this one, but in this case it's reasonable enough.
2020-11-27Use static_cast to convert from void pointersDavid Robillard1-5/+5
2020-11-27Avoid C castsDavid Robillard1-1/+1
2020-11-27Remove spurious semicolonDavid Robillard1-1/+0
2020-11-27Use a single declaration per lineDavid Robillard1-1/+2
2020-11-27Avoid unnecessary copiesDavid Robillard1-1/+3
2020-11-27Initialize all membersDavid Robillard1-0/+2
2020-11-27Use appropriate std::string::find overload for charactersDavid Robillard1-3/+3
2020-11-27Use std::mutexDavid Robillard1-3/+6
2020-11-27Use consistent naming convention for enum classesDavid Robillard1-29/+29
2020-11-27Use enum classesDavid Robillard1-26/+34
2020-11-27Always initialize variablesDavid Robillard1-5/+5
2020-11-27Always use braces around statementsDavid Robillard1-13/+23
2020-11-27Use auto where appropriateDavid Robillard1-14/+13
2020-11-27Use nullptrDavid Robillard1-19/+20
2020-02-09Format all code with clang-formatDavid Robillard1-61/+77
This configuration tries to get as close to the previous style as possible so the changes aren't too dramatic. It's still far from ideal and the code could use some adaptation, but this makes things much easier to work on.