Browse Source

write pulseaudio stereo mode in launch script and cadence.py

pull/215/head
houston 7 years ago
parent
commit
5d9e0968ec
2 changed files with 83 additions and 39 deletions
  1. +65
    -33
      data/cadence-pulse2jack
  2. +18
    -6
      src/cadence.py

+ 65
- 33
data/cadence-pulse2jack View File

@@ -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
}


+ 18
- 6
src/cadence.py View File

@@ -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):


Loading…
Cancel
Save