Browse Source

Render: Add custom filename prefix option (Closes #25)

tags/v0.9.0
falkTX 11 years ago
parent
commit
c119b1c2da
4 changed files with 221 additions and 197 deletions
  1. +197
    -180
      resources/ui/render.ui
  2. +3
    -6
      src/jacklib.py
  3. +7
    -6
      src/jacklib_helpers.py
  4. +14
    -5
      src/render.py

+ 197
- 180
resources/ui/render.ui View File

@@ -14,6 +14,121 @@
<string>Render</string>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="2" column="0" colspan="2">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QGroupBox" name="group_encoding">
<property name="title">
<string>Encoding</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>&amp;Format:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>cb_format</cstring>
</property>
</widget>
</item>
<item row="0" column="1" colspan="2">
<widget class="QComboBox" name="cb_format"/>
</item>
<item row="0" column="3">
<widget class="QToolButton" name="tb_format">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Bit &amp;Depth:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>cb_depth</cstring>
</property>
</widget>
</item>
<item row="1" column="1" colspan="3">
<widget class="QComboBox" name="cb_depth">
<item>
<property name="text">
<string notr="true">8</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">16</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">24</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">32</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">Float</string>
</property>
</item>
</widget>
</item>
<item row="2" column="0">
<widget class="QRadioButton" name="rb_mono">
<property name="text">
<string>Mono</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QRadioButton" name="rb_stereo">
<property name="text">
<string>Stereo</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QRadioButton" name="rb_outro">
<property name="text">
<string>Other:</string>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QSpinBox" name="sb_channels">
<property name="enabled">
<bool>false</bool>
</property>
<property name="minimum">
<number>3</number>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="3" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
@@ -64,11 +179,70 @@
</item>
</layout>
</item>
<item row="2" column="0" colspan="2">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<item row="1" column="1">
<widget class="QGroupBox" name="group_time">
<property name="title">
<string>Use Transport</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>&amp;Start Time:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>te_start</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QTimeEdit" name="te_start">
<property name="displayFormat">
<string>hh:mm:ss</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>&amp;End Time:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>te_end</cstring>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QTimeEdit" name="te_end">
<property name="displayFormat">
<string>hh:mm:ss</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="b_now_start">
<property name="text">
<string>now</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="b_now_end">
<property name="text">
<string>now</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="0" colspan="2">
@@ -120,19 +294,6 @@
</property>
</spacer>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>&amp;Buffer Size:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>cb_buffer_size</cstring>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="cb_buffer_size">
<property name="editable">
@@ -201,6 +362,19 @@
</property>
</spacer>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>&amp;Buffer Size:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>cb_buffer_size</cstring>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
@@ -229,178 +403,21 @@
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item row="1" column="0">
<widget class="QGroupBox" name="group_encoding">
<property name="title">
<string>Encoding</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_6">
<item row="3" column="1" colspan="2">
<widget class="QLineEdit" name="le_prefix">
<property name="text">
<string>&amp;Format:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>cb_format</cstring>
<string/>
</property>
</widget>
</item>
<item row="0" column="1" colspan="2">
<widget class="QComboBox" name="cb_format"/>
</item>
<item row="0" column="3">
<widget class="QToolButton" name="tb_format">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>...</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_7">
<item row="3" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>Bit &amp;Depth:</string>
<string>Filename prefix:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>cb_depth</cstring>
</property>
</widget>
</item>
<item row="1" column="1" colspan="3">
<widget class="QComboBox" name="cb_depth">
<item>
<property name="text">
<string notr="true">8</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">16</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">24</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">32</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">Float</string>
</property>
</item>
</widget>
</item>
<item row="2" column="0">
<widget class="QRadioButton" name="rb_mono">
<property name="text">
<string>Mono</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QRadioButton" name="rb_stereo">
<property name="text">
<string>Stereo</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QRadioButton" name="rb_outro">
<property name="text">
<string>Other:</string>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QSpinBox" name="sb_channels">
<property name="enabled">
<bool>false</bool>
</property>
<property name="minimum">
<number>3</number>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="1">
<widget class="QGroupBox" name="group_time">
<property name="title">
<string>Use Transport</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>&amp;Start Time:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>te_start</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QTimeEdit" name="te_start">
<property name="displayFormat">
<string>hh:mm:ss</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>&amp;End Time:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>te_end</cstring>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QTimeEdit" name="te_end">
<property name="displayFormat">
<string>hh:mm:ss</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="b_now_start">
<property name="text">
<string>now</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="b_now_end">
<property name="text">
<string>now</string>
</property>
</widget>
</item>
</layout>


+ 3
- 6
src/jacklib.py View File

@@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-

# JACK ctypes definitions for usage in python applications
# Copyright (C) 2010-2012 Filipe Coelho <falktx@falktx.com>
# Copyright (C) 2010-2013 Filipe Coelho <falktx@falktx.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -50,7 +50,7 @@ except:
# ------------------------------------------------------------------------------------------------------------
# Pre-Types

c_enum = c_int
c_enum = c_int
c_uchar = c_uint8

class _jack_port(Structure):
@@ -59,9 +59,6 @@ class _jack_port(Structure):
class _jack_client(Structure):
_fields_ = []

class pthread_t(Structure):
_fields_ = []

# ------------------------------------------------------------------------------------------------------------
# Defines

@@ -91,7 +88,7 @@ jack_latency_callback_mode_t = c_enum # JackLatencyCallbackMode

jack_port_t = _jack_port
jack_client_t = _jack_client
jack_port_type_id_t = c_uint32 # JACK2 only
jack_port_type_id_t = c_uint32 # JACK2 only

# enum JackOptions
JackNullOption = 0x00


+ 7
- 6
src/jacklib_helpers.py View File

@@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-

# Helper functions for extra jacklib functionality
# Copyright (C) 2012 Filipe Coelho <falktx@falktx.com>
# Copyright (C) 2012-2013 Filipe Coelho <falktx@falktx.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -28,8 +28,12 @@ except ImportError:
# Get JACK error status as string

def get_jack_status_error_string(cStatus):
status = cStatus.value

if status == 0x0:
return ""

errorString = ""
status = cStatus.value

if status & jacklib.JackFailure:
errorString += "Overall operation failed;\n"
@@ -58,10 +62,7 @@ def get_jack_status_error_string(cStatus):
if status & jacklib.JackClientZombie:
errorString += "Client is being shutdown against its will;\n"

if errorString:
errorString = errorString.strip().rsplit(";", 1)[0] + "."

return errorString
return errorString.strip().rsplit(";", 1)[0] + "."

# ------------------------------------------------------------------------------------------------------------
# Convert C char** -> Python list


+ 14
- 5
src/render.py View File

@@ -196,6 +196,14 @@ class RenderW(QDialog):

arguments = []

# Filename prefix
arguments.append("-fp")
arguments.append(self.ui.le_prefix.text())

# Format
arguments.append("-f")
arguments.append(self.ui.cb_format.currentText())

# Bit depth
arguments.append("-b")
arguments.append(self.ui.cb_depth.currentText())
@@ -209,10 +217,6 @@ class RenderW(QDialog):
else:
arguments.append(str(self.ui.sb_channels.value()))

# Format
arguments.append("-f")
arguments.append(self.ui.cb_format.currentText())

# Controlled by transport
if useTransport:
arguments.append("-jt")
@@ -339,6 +343,7 @@ class RenderW(QDialog):

settings.setValue("Geometry", self.saveGeometry())
settings.setValue("OutputFolder", self.ui.le_folder.text())
settings.setValue("FilenamePrefix", self.ui.le_prefix.text())
settings.setValue("EncodingFormat", self.ui.cb_format.currentText())
settings.setValue("EncodingDepth", self.ui.cb_depth.currentText())
settings.setValue("EncodingChannels", channels)
@@ -356,6 +361,8 @@ class RenderW(QDialog):
if os.path.exists(outputFolder):
self.ui.le_folder.setText(outputFolder)

self.ui.le_prefix.setText(settings.value("FilenamePrefix", "jack_capture_"))

encFormat = settings.value("EncodingFormat", "Wav", type=str)

for i in range(self.ui.cb_format.count()):
@@ -385,9 +392,11 @@ class RenderW(QDialog):
self.ui.te_end.setTime(settings.value("EndTime", self.ui.te_end.time(), type=QTime))

def closeEvent(self, event):
self.saveSettings()

if self.fJackClient:
jacklib.client_close(self.fJackClient)
self.saveSettings()
QDialog.closeEvent(self, event)

def done(self, r):


Loading…
Cancel
Save