|
@@ -43,8 +43,9 @@ class PlayerPanel(QWidget):
|
|
|
self.settings = QSettings("TapeRecorder", "Player")
|
|
self.settings = QSettings("TapeRecorder", "Player")
|
|
|
self._init_ui()
|
|
self._init_ui()
|
|
|
|
|
|
|
|
- # Init volume
|
|
|
|
|
|
|
+ # Init volume and compressor
|
|
|
self.player.output_volume = self.settings.value("volume", 100, type=int) / 100.0
|
|
self.player.output_volume = self.settings.value("volume", 100, type=int) / 100.0
|
|
|
|
|
+ self.player.compressor.enabled = self.settings.value("compressor", False, type=bool)
|
|
|
|
|
|
|
|
# Connect player callbacks
|
|
# Connect player callbacks
|
|
|
# Note: These are called from the audio thread.
|
|
# Note: These are called from the audio thread.
|
|
@@ -123,6 +124,12 @@ class PlayerPanel(QWidget):
|
|
|
btn_layout.addWidget(self.play_btn)
|
|
btn_layout.addWidget(self.play_btn)
|
|
|
btn_layout.addWidget(self.stop_btn)
|
|
btn_layout.addWidget(self.stop_btn)
|
|
|
btn_layout.addWidget(self.norm_cb)
|
|
btn_layout.addWidget(self.norm_cb)
|
|
|
|
|
+
|
|
|
|
|
+ self.comp_cb = QCheckBox("Movie Mode (Comp)")
|
|
|
|
|
+ self.comp_cb.setChecked(self.settings.value("compressor", False, type=bool))
|
|
|
|
|
+ self.comp_cb.clicked.connect(self._on_comp_changed)
|
|
|
|
|
+ btn_layout.addWidget(self.comp_cb)
|
|
|
|
|
+
|
|
|
btn_layout.addWidget(QLabel(" | "))
|
|
btn_layout.addWidget(QLabel(" | "))
|
|
|
|
|
|
|
|
self.vol_slider = QSlider(Qt.Orientation.Horizontal)
|
|
self.vol_slider = QSlider(Qt.Orientation.Horizontal)
|
|
@@ -285,6 +292,13 @@ class PlayerPanel(QWidget):
|
|
|
|
|
|
|
|
def _on_norm_changed(self):
|
|
def _on_norm_changed(self):
|
|
|
self.settings.setValue("normalize_volume", self.norm_cb.isChecked())
|
|
self.settings.setValue("normalize_volume", self.norm_cb.isChecked())
|
|
|
|
|
+ # Reload track if playing to apply normalization immediately?
|
|
|
|
|
+ # Actually normalize is done at load time, so we just inform the user.
|
|
|
|
|
+
|
|
|
|
|
+ def _on_comp_changed(self):
|
|
|
|
|
+ enabled = self.comp_cb.isChecked()
|
|
|
|
|
+ self.settings.setValue("compressor", enabled)
|
|
|
|
|
+ self.player.compressor.enabled = enabled
|
|
|
|
|
|
|
|
def _load_track(self, file_path, auto_play=False):
|
|
def _load_track(self, file_path, auto_play=False):
|
|
|
try:
|
|
try:
|