-
Notifications
You must be signed in to change notification settings - Fork 93
MacOS Port Milestone
The following page describes the goals and tasks for the upcoming MacOS port feature. This is a milestone page: it will contain details on feature requirements and design decisions.
- C++ complex API benchmarking
- Fix warnings for clang
- Fix installation directories
- Implement the audio preview
- Implement packaging for distribution
- Link to issue: https://github.com/BatchDrake/SigDigger/issues/26
- Task page: (none)
In this task we simply run SigDigger with the same signal source both in GNU/Linux and MacOS with different input rates, and measure for each of them the mean CPU usage in a given period of time (let's say, 10 s), both in mean and standard deviation. Since many SDR radios have restrictions on the set of valid sample rates, the best approach would be to work on a looping capture file with different throttle rates. This should result in a sample rate vs CPU load graph for both systems, including error bars for each data point.
- Link to issue: https://github.com/BatchDrake/SigDigger/issues/27
- Task page: (none)
(Self-descriptive)
- Link to issue: https://github.com/BatchDrake/SigDigger/issues/28
- Task page: (none)
SigDigger Makefile in MacOS does not install itself in any directory in the system $PATH. Fix this so SigDigger can be called from the command line.
- Link to issue: https://github.com/BatchDrake/SigDigger/issues/29
- Task page: (none)
Currently, audio preview does not work in MacOS due to the lack of Core Audio support. The internals of the audio preview feature can be found here. The roadmap for this task would be:
- Understand the Core Audio API (what do we need in order to play samples in a blocking way?). Try to play a sine wave using Core Audio in a separate file.
-
Object model (this affects the AudioPlayback class). Discuss the
AudioCodec
class. Do we settle for a single per-system AudioCodec implementation, or do we allow multiple AudioCodec implementations in the same system? Note the latter will require require to design an abstractAudioCodecFactory
whose different implementations must be registered somehow on program startp. -
Move all ALSA code to an
AudioCodec
class. -
Refactor AudioPlayback in order to accept a generic
AudioCodec
class. -
Modify
Application
(App/Application.cpp
) in order to constructAudioPlayback
based on the appropriateAudioCodec
.
- Link to issue: https://github.com/BatchDrake/SigDigger/issues/30
- Task page: (none)
The result of the build must produce a working .dmg
that can be distributed and executed out of the box.