diff --git a/data/cadence-pulse2jack b/data/cadence-pulse2jack index 5266cb9..d364eba 100755 --- a/data/cadence-pulse2jack +++ b/data/cadence-pulse2jack @@ -44,37 +44,58 @@ fi # ---------------------------------------------- -PLAY_ONLY="no" +PLAY_ONLY=false +STEREO_ONLY=false + +for arg in "$@";do + case "$arg" in + -h|--h|--help) + echo "usage: $0 [command] + + -p, --play Playback mode only + -s, --stereo Stereo only + + -h, --help Show this help menu + --dummy Don't do anything, just create the needed files + + NOTE: + When runned with no arguments, pulse2jack will + activate PulseAudio with both playback and record modes. + " + exit + ;; + + --dummy) + exit + ;; + + -p|--p|--play) + PLAY_ONLY=true +# FILE=$INSTALL_PREFIX/share/cadence/pulse2jack/play.pa + ;; + + -s|--s|--stereo) + STEREO_ONLY=true + ;; + +# +# *) +# FILE=$INSTALL_PREFIX/share/cadence/pulse2jack/play+rec.pa +# ;; + esac +done -case $1 in - -h|--h|--help) -echo "usage: $0 [command] - - -p, --play Playback mode only - - -h, --help Show this help menu - --dummy Don't do anything, just create the needed files - -NOTE: - When runned with no arguments, pulse2jack will - activate PulseAudio with both playback and record modes. -" -exit - ;; - - --dummy) -exit - ;; - - -p|--p|--play) -PLAY_ONLY="yes" -FILE=$INSTALL_PREFIX/share/cadence/pulse2jack/play.pa - ;; - - *) FILE=$INSTALL_PREFIX/share/cadence/pulse2jack/play+rec.pa - ;; -esac + +if [ "$PLAY_ONLY" && "$STEREO_ONLY" ];then + FILE=$INSTALL_PREFIX/share/cadence/pulse2jack/play_stereo.pa +elif [ "$PLAY_ONLY" ];then + FILE=$INSTALL_PREFIX/share/cadence/pulse2jack/play.pa +elif [ "$STEREO_ONLY" ];then + FILE=$INSTALL_PREFIX/share/cadence/pulse2jack/play+rec_stereo.pa +else + FILE=$INSTALL_PREFIX/share/cadence/pulse2jack/play+rec.pa +fi # ---------------------------------------------- @@ -98,15 +119,26 @@ if (IsPulseAudioRunning); then { echo "PulseAudio is already running, bridge it..." - if [ "$PLAY_ONLY" == "yes" ]; then + if [ "$PLAY_ONLY" ]; then { - pactl load-module module-jack-sink > /dev/null + if [ "$STEREO_ONLY" ];then + pactl load-module module-jack-sink channels=2 > /dev/null + else + pactl load-module module-jack-sink > /dev/null + fi + pacmd set-default-source jack_in > /dev/null } else { - pactl load-module module-jack-sink > /dev/null - pactl load-module module-jack-source > /dev/null + if [ "$STEREO_ONLY" ];then + pactl load-module module-jack-sink channels=2 > /dev/null + pactl load-module module-jack-source channels=2 > /dev/null + else + pactl load-module module-jack-sink > /dev/null + pactl load-module module-jack-source > /dev/null + fi + pacmd set-default-sink jack_out > /dev/null pacmd set-default-source jack_in > /dev/null } diff --git a/src/cadence.py b/src/cadence.py index 88816d9..de441f4 100755 --- a/src/cadence.py +++ b/src/cadence.py @@ -591,10 +591,15 @@ class ForceRestartThread(QThread): # PulseAudio if GlobalSettings.value("Pulse2JACK/AutoStart", True, type=bool) and not isPulseAudioBridged(): + p2jack_command = "cadence-pulse2jack" + if GlobalSettings.value("Pulse2JACK/PlaybackModeOnly", False, type=bool): - os.system("cadence-pulse2jack -p") - else: - os.system("cadence-pulse2jack") + p2jack_command+= " -p" + + if GlobalSettings.value("Pulse2JACK/StereoOnly", False, type=bool): + p2jack_command+= " -s" + + os.system(p2jack_command) self.progressChanged.emit(100) @@ -752,12 +757,14 @@ class ToolBarPADialog(QDialog, ui_cadence_tb_pa.Ui_Dialog): self.setupUi(self) self.cb_playback_only.setChecked(GlobalSettings.value("Pulse2JACK/PlaybackModeOnly", False, type=bool)) + self.cb_stereo_only.setChecked(GlobalSettings.value("Pulse2JACK/StereoOnly", False, type=bool)) self.accepted.connect(self.slot_setOptions) @pyqtSlot() def slot_setOptions(self): GlobalSettings.setValue("Pulse2JACK/PlaybackModeOnly", self.cb_playback_only.isChecked()) + GlobalSettings.setValue("Pulse2JACK/StereoOnly", self.cb_stereo_only.isChecked()) def done(self, r): QDialog.done(self, r) @@ -1812,10 +1819,15 @@ class CadenceMainW(QMainWindow, ui_cadence.Ui_CadenceMainW): @pyqtSlot() def slot_PulseAudioBridgeStart(self): + p2jack_command = "cadence-pulse2jack" + if GlobalSettings.value("Pulse2JACK/PlaybackModeOnly", False, type=bool): - os.system("cadence-pulse2jack -p") - else: - os.system("cadence-pulse2jack") + p2jack_command += " -p" + + if GlobalSettings.value("Pulse2JACK/StereoOnly", False, type=bool): + p2jack_command += " -s" + + os.system(p2jack_command) @pyqtSlot() def slot_PulseAudioBridgeStop(self):