From f6f7c36909fa161efe53c40e9b4c34856e751536 Mon Sep 17 00:00:00 2001 From: Calvin Morrison Date: Tue, 12 May 2026 21:32:53 -0400 Subject: Initial tmix skeleton — model layer + basic UI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- build/pulsemodel.moc | 160 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 build/pulsemodel.moc (limited to 'build/pulsemodel.moc') diff --git a/build/pulsemodel.moc b/build/pulsemodel.moc new file mode 100644 index 0000000..9e42c2e --- /dev/null +++ b/build/pulsemodel.moc @@ -0,0 +1,160 @@ +/**************************************************************************** +** PulseModel meta object code from reading C++ file 'standard input' +** +** Created by: The TQt Meta Object Compiler version 26 (TQt 3.5.0) +** WARNING! All changes made in this file will be lost! +*****************************************************************************/ + +#undef TQT_NO_COMPAT +#include "/home/calvin/tmix/src/model/pulsemodel.h" + +#include +#include + +#include +#if !defined(Q_MOC_OUTPUT_REVISION) || (Q_MOC_OUTPUT_REVISION != 26) +#error "This file was generated using the moc from 3.5.0. It" +#error "cannot be used with the include files from this version of TQt." +#error "(The moc has changed too much.)" +#endif + +const char *PulseModel::className() const +{ + return "PulseModel"; +} + +TQMetaObject *PulseModel::metaObj = 0; +static TQMetaObjectCleanUp cleanUp_PulseModel( "PulseModel", &PulseModel::staticMetaObject ); + +#ifndef TQT_NO_TRANSLATION +TQString PulseModel::tr( const char *s, const char *c ) +{ + if ( tqApp ) + return tqApp->translate( "PulseModel", s, c, TQApplication::DefaultCodec ); + else + return TQString::fromLatin1( s ); +} +#ifndef TQT_NO_TRANSLATION_UTF8 +TQString PulseModel::trUtf8( const char *s, const char *c ) +{ + if ( tqApp ) + return tqApp->translate( "PulseModel", s, c, TQApplication::UnicodeUTF8 ); + else + return TQString::fromUtf8( s ); +} +#endif // TQT_NO_TRANSLATION_UTF8 + +#endif // TQT_NO_TRANSLATION + +TQMetaObject* PulseModel::staticMetaObject() +{ + if ( metaObj ) { + return metaObj; +} +#ifdef TQT_THREAD_SUPPORT + if (tqt_sharedMetaObjectMutex) tqt_sharedMetaObjectMutex->lock(); + if ( metaObj ) { + if (tqt_sharedMetaObjectMutex) tqt_sharedMetaObjectMutex->unlock(); + return metaObj; + } +#endif // TQT_THREAD_SUPPORT + TQMetaObject* parentObject = TQObject::staticMetaObject(); + static const TQUParameter param_signal_0[] = { + { "dev", &static_QUType_ptr, "AudioDevice", TQUParameter::In } + }; + static const TQUMethod signal_0 = {"deviceAdded", 1, param_signal_0 }; + static const TQUParameter param_signal_1[] = { + { "dev", &static_QUType_ptr, "AudioDevice", TQUParameter::In } + }; + static const TQUMethod signal_1 = {"deviceRemoved", 1, param_signal_1 }; + static const TQUMethod signal_2 = {"ready", 0, 0 }; + static const TQMetaData signal_tbl[] = { + { "deviceAdded(AudioDevice*)", &signal_0, TQMetaData::Protected }, + { "deviceRemoved(AudioDevice*)", &signal_1, TQMetaData::Protected }, + { "ready()", &signal_2, TQMetaData::Protected } + }; + metaObj = TQMetaObject::new_metaobject( + "PulseModel", parentObject, + 0, 0, + signal_tbl, 3, +#ifndef TQT_NO_PROPERTIES + 0, 0, + 0, 0, +#endif // TQT_NO_PROPERTIES + 0, 0 ); + cleanUp_PulseModel.setMetaObject( metaObj ); +#ifdef TQT_THREAD_SUPPORT + if (tqt_sharedMetaObjectMutex) tqt_sharedMetaObjectMutex->unlock(); +#endif // TQT_THREAD_SUPPORT + return metaObj; +} + +void* PulseModel::tqt_cast( const char* clname ) +{ + if ( !qstrcmp( clname, "PulseModel" ) ) + return this; + return TQObject::tqt_cast( clname ); +} + +#include +#include + +// TQ_SIGNAL deviceAdded +void PulseModel::deviceAdded( AudioDevice* t0 ) +{ + if ( signalsBlocked() ) + return; + TQConnectionList *clist = receivers( staticMetaObject()->signalOffset() + 0 ); + if ( !clist ) + return; + TQUObject o[2]; + static_QUType_ptr.set(o+1,t0); + o[1].isLastObject = true; + activate_signal( clist, o ); +} + +// TQ_SIGNAL deviceRemoved +void PulseModel::deviceRemoved( AudioDevice* t0 ) +{ + if ( signalsBlocked() ) + return; + TQConnectionList *clist = receivers( staticMetaObject()->signalOffset() + 1 ); + if ( !clist ) + return; + TQUObject o[2]; + static_QUType_ptr.set(o+1,t0); + o[1].isLastObject = true; + activate_signal( clist, o ); +} + +// TQ_SIGNAL ready +void PulseModel::ready() +{ + activate_signal( staticMetaObject()->signalOffset() + 2 ); +} + +bool PulseModel::tqt_invoke( int _id, TQUObject* _o ) +{ + return TQObject::tqt_invoke(_id,_o); +} + +bool PulseModel::tqt_emit( int _id, TQUObject* _o ) +{ + switch ( _id - staticMetaObject()->signalOffset() ) { + case 0: deviceAdded((AudioDevice*)static_QUType_ptr.get(_o+1)); break; + case 1: deviceRemoved((AudioDevice*)static_QUType_ptr.get(_o+1)); break; + case 2: ready(); break; + default: + return TQObject::tqt_emit(_id,_o); + } + return true; +} +#ifndef TQT_NO_PROPERTIES + +bool PulseModel::tqt_property( int id, int f, TQVariant* v) +{ + return TQObject::tqt_property( id, f, v); +} + +bool PulseModel::tqt_static_property( TQObject* , int , int , TQVariant* ){ return false; } +#endif // TQT_NO_PROPERTIES -- cgit v1.2.3