From 1a397ce1a593b8b64a4e7ccb41ba5b083c7083fc Mon Sep 17 00:00:00 2001 From: w1z7ard Date: Sat, 12 Jan 2008 21:51:57 +0000 Subject: [PATCH] integrated pulse action into qprojectM. git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/trunk@742 6778bc44-b910-0410-a7a0-be141de4315d --- .../PulseDeviceChooserDialog.ui | 5 +++++ .../QPulseAudioDevChooser.cpp | 4 +++- .../QPulseAudioDevChooser.hpp | 2 +- .../QPulseAudioThread.cpp | 11 +++++++--- .../QPulseAudioThread.hpp | 22 ++++++++++--------- .../qprojectM-pulseaudio.cpp | 9 +++++++- 6 files changed, 37 insertions(+), 16 deletions(-) diff --git a/src/qprojectM-pulseaudio/PulseDeviceChooserDialog.ui b/src/qprojectM-pulseaudio/PulseDeviceChooserDialog.ui index ea7fa40ab..56b75d34a 100644 --- a/src/qprojectM-pulseaudio/PulseDeviceChooserDialog.ui +++ b/src/qprojectM-pulseaudio/PulseDeviceChooserDialog.ui @@ -83,6 +83,11 @@ + + + test + + diff --git a/src/qprojectM-pulseaudio/QPulseAudioDevChooser.cpp b/src/qprojectM-pulseaudio/QPulseAudioDevChooser.cpp index 600de897b..bfb36dda6 100644 --- a/src/qprojectM-pulseaudio/QPulseAudioDevChooser.cpp +++ b/src/qprojectM-pulseaudio/QPulseAudioDevChooser.cpp @@ -16,6 +16,8 @@ QSettings settings ( "projectM", "qprojectM-pulseaudio"); this->tryFirstPlayBackMonitorCheckBox->setCheckState (settings.value("tryFirstAvailablePlaybackMonitor", true).toBool() ? Qt::Checked : Qt::Unchecked); + + } void QPulseAudioDevChooser::updateDevice(int index, const QString & name) { @@ -23,7 +25,7 @@ void QPulseAudioDevChooser::updateDevice(int index, const QString & name) { } void QPulseAudioDevChooser::removeDevice(int index) { - + } void QPulseAudioDevChooser::refreshDevices diff --git a/src/qprojectM-pulseaudio/QPulseAudioDevChooser.hpp b/src/qprojectM-pulseaudio/QPulseAudioDevChooser.hpp index a046bf726..8d237df6e 100644 --- a/src/qprojectM-pulseaudio/QPulseAudioDevChooser.hpp +++ b/src/qprojectM-pulseaudio/QPulseAudioDevChooser.hpp @@ -9,7 +9,7 @@ class QPulseAudioDevChooser : public QDialog, public Ui::pulseDeviceChooserDialo Q_OBJECT public: - typedef QVector SourceContainer; + typedef QMap SourceContainer; // QPulseAudioDevChooser(QWidget * parent = 0, Qt::WindowFlags f = 0 ) ; //QPulseAudioDevChooser::QPulseAudioDevChooser(QWidget * parent = 0, Qt::WindowFlags f = 0 ) : QDialog(parent, f) {} diff --git a/src/qprojectM-pulseaudio/QPulseAudioThread.cpp b/src/qprojectM-pulseaudio/QPulseAudioThread.cpp index 2a5bf15c1..ea8f5f2f1 100644 --- a/src/qprojectM-pulseaudio/QPulseAudioThread.cpp +++ b/src/qprojectM-pulseaudio/QPulseAudioThread.cpp @@ -3,6 +3,9 @@ #include #include #include + +QPulseAudioThread::SourceContainer QPulseAudioThread::sourceList; + /* $Id: pacat.c 1426 2007-02-13 15:35:19Z ossman $ */ /*** @@ -70,7 +73,9 @@ static int channel_map_set = 0; static pa_sample_spec sample_spec ; -QPulseAudioThread::QPulseAudioThread ( int _argc, char **_argv, projectM * _projectM, QObject * parent ) : QThread ( parent ), argc ( _argc ), argv ( _argv ), m_projectM ( _projectM ), sourceIndex ( -1 ) {} +QPulseAudioThread::QPulseAudioThread ( int _argc, char **_argv, projectM * _projectM, QObject * parent ) : QThread ( parent ), argc ( _argc ), argv ( _argv ), m_projectM ( _projectM ), sourceIndex ( -1 ) { + +} QPulseAudioThread::~QPulseAudioThread() @@ -78,8 +83,6 @@ QPulseAudioThread::~QPulseAudioThread() } - - void QPulseAudioThread::cleanup() { @@ -412,6 +415,8 @@ void QPulseAudioThread::pa_source_info_callback ( pa_context *c, const pa_source QString name = i->name; qDebug() << "insert"; + + pulseThread->insertSource(index,name); qDebug() << "Added" ; diff --git a/src/qprojectM-pulseaudio/QPulseAudioThread.hpp b/src/qprojectM-pulseaudio/QPulseAudioThread.hpp index 951aeb8a7..0d4242225 100644 --- a/src/qprojectM-pulseaudio/QPulseAudioThread.hpp +++ b/src/qprojectM-pulseaudio/QPulseAudioThread.hpp @@ -3,8 +3,7 @@ #include #include #include -#include -#include + #include extern "C" @@ -22,7 +21,7 @@ class QPulseAudioThread : public QThread Q_OBJECT public: //typedef QMap SourceContainer; - typedef QVector SourceContainer; + typedef QHash SourceContainer; QPulseAudioThread () {} QPulseAudioThread(int _argc, char **_argv, projectM * projectM, QObject *parent); virtual ~QPulseAudioThread() ; @@ -33,11 +32,14 @@ class QPulseAudioThread : public QThread return sourceList; } - inline void insertSource(int index, const QString & name) { - sourceList.push_back(name); - } + signals: + void sourceInsertEvent(int index, const QString & name); public slots: + inline void insertSource(int index, const QString & name) { + sourceList[index]= name; + } + void connectSource(int index); private: static void pulseQuit ( int ret ); @@ -49,14 +51,14 @@ class QPulseAudioThread : public QThread static void stream_drain_complete ( pa_stream*s, int success, void *userdata ); static void stdout_callback ( pa_mainloop_api*a, pa_io_event *e, int fd, pa_io_event_flags_t f, void *userdata ); static void exit_signal_callback ( pa_mainloop_api*m, pa_signal_event *e, int sig, void *userdata ); - static void stream_update_timing_callback ( pa_stream *s, int success, void *userdata ); - static void sigusr1_signal_callback ( pa_mainloop_api*m, pa_signal_event *e, int sig, void *userdata ); + static void stream_update_timing_callback ( pa_stream *s, int success, void *userdata ); + static void sigusr1_signal_callback ( pa_mainloop_api*m, pa_signal_event *e, int sig, void *userdata ); static void pa_source_info_callback ( pa_context *c, const pa_source_info *i, int eol, void *userdata ); - static void subscribe_callback ( struct pa_context *c, enum pa_subscription_event_type t, uint32_t index, void *userdata ); + static void subscribe_callback ( struct pa_context *c, enum pa_subscription_event_type t, uint32_t index, void *userdata ); static void time_event_callback ( pa_mainloop_api*m, pa_time_event *e, const struct timeval *tv, void *userdata ); - SourceContainer sourceList; + static SourceContainer sourceList; int sourceIndex; int argc; char ** argv; diff --git a/src/qprojectM-pulseaudio/qprojectM-pulseaudio.cpp b/src/qprojectM-pulseaudio/qprojectM-pulseaudio.cpp index b30f71c10..f5a0bb1da 100644 --- a/src/qprojectM-pulseaudio/qprojectM-pulseaudio.cpp +++ b/src/qprojectM-pulseaudio/qprojectM-pulseaudio.cpp @@ -54,7 +54,7 @@ #include #include #include - +#include #include #include #define CONFIG_FILE "/share/projectM/config.inp" @@ -95,6 +95,10 @@ int main ( int argc, char*argv[] ) QProjectM_MainWindow * mainWindow = new QProjectM_MainWindow ( config_file ); + QAction pulseAction("Pulse audio settings...", mainWindow); + + //connect(pulseAction, SIGNAL(triggered()), + mainWindow->registerSettingsAction(&pulseAction); mainWindow->show(); QPulseAudioThread * pulseThread = new QPulseAudioThread(argc, argv, mainWindow->getQProjectM(), mainWindow); @@ -106,6 +110,9 @@ int main ( int argc, char*argv[] ) pulseThread->exit(); pulseThread->cleanup(); + + mainWindow->unregisterSettingsAction(&pulseAction); + delete(mainWindow); return ret; }