diff options
| author | Calvin Morrison <calvin@pobox.com> | 2026-05-12 21:32:53 -0400 |
|---|---|---|
| committer | Calvin Morrison <calvin@pobox.com> | 2026-05-12 21:32:53 -0400 |
| commit | f6f7c36909fa161efe53c40e9b4c34856e751536 (patch) | |
| tree | eff44527b0be61eb2e19c9f483ed38b72879af11 /src/main.cpp | |
Initial tmix skeleton — model layer + basic UI
PulseModel: stable PulseDevice objects keyed by PA index, updated
in-place via postEvent reconciliation. No bulk rebuilds. Three signals:
deviceAdded, deviceRemoved (device changed handled per-device via
volumeChanged/muteChanged/nameChanged).
MixerWindow: four-tab layout (Output/Input/Playback/Recording), adds
and removes individual DeviceWidgets in response to model signals.
Builds and links cleanly against TQt3/TDE + libpulse.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'src/main.cpp')
| -rw-r--r-- | src/main.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..6a8c6a8 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,35 @@ +#include <tdeapplication.h> +#include <tdecmdlineargs.h> +#include <tdeaboutdata.h> +#include <tdelocale.h> + +#include "model/pulsemodel.h" +#include "ui/mixerwindow.h" + +static TDECmdLineOptions options[] = { TDECmdLineLastOption }; + +int main( int argc, char **argv ) +{ + TDEAboutData about( + "tmix", I18N_NOOP("TMix"), + "0.1", + I18N_NOOP("Trinity audio mixer"), + TDEAboutData::License_GPL_V2, + "(C) 2024 Trinity Desktop Project" + ); + + TDECmdLineArgs::init( argc, argv, &about ); + TDECmdLineArgs::addCmdLineOptions( options ); + TDEApplication app; + + PulseModel model; + if ( !model.open() ) { + // TODO: show error dialog + return 1; + } + + MixerWindow win( &model ); + win.show(); + + return app.exec(); +} |
