ASIO to JACK driver for WINE
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

165 lines
9.1KB

  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. # WineASIO Settings GUI
  4. # Copyright (C) 2020 Filipe Coelho <falktx@falktx.com>
  5. #
  6. # This program is free software; you can redistribute it and/or modify
  7. # it under the terms of the GNU General Public License as published by
  8. # the Free Software Foundation; either version 2 of the License, or
  9. # any later version.
  10. #
  11. # This program is distributed in the hope that it will be useful,
  12. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. # GNU General Public License for more details.
  15. #
  16. # For a full copy of the GNU General Public License see the COPYING.GUI file
  17. # ---------------------------------------------------------------------------------------------------------------------
  18. from PyQt5.QtCore import Qt, QCoreApplication, QMetaObject
  19. from PyQt5.QtWidgets import QCheckBox, QComboBox, QDialogButtonBox, QLabel, QGroupBox, QSpinBox
  20. from PyQt5.QtWidgets import QHBoxLayout, QVBoxLayout, QSpacerItem, QSizePolicy
  21. # ---------------------------------------------------------------------------------------------------------------------
  22. class Ui_WineASIOSettings(object):
  23. OBJECT_NAME = "WineASIOSettings"
  24. def setupUi(self, WineASIOSettings):
  25. WineASIOSettings.setObjectName(self.OBJECT_NAME)
  26. WineASIOSettings.resize(400, 310)
  27. self.verticalLayout = QVBoxLayout(WineASIOSettings)
  28. self.verticalLayout.setObjectName("verticalLayout")
  29. self.group_ports = QGroupBox(WineASIOSettings)
  30. self.group_ports.setObjectName("group_ports")
  31. self.verticalLayout_22 = QVBoxLayout(self.group_ports)
  32. self.verticalLayout_22.setObjectName("verticalLayout_22")
  33. self.layout_ports_in = QHBoxLayout()
  34. self.layout_ports_in.setObjectName("layout_ports_in")
  35. self.label_ports_in = QLabel(self.group_ports)
  36. self.label_ports_in.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
  37. self.label_ports_in.setObjectName("label_ports_in")
  38. self.layout_ports_in.addWidget(self.label_ports_in)
  39. self.sb_ports_in = QSpinBox(self.group_ports)
  40. self.sb_ports_in.setMaximum(128)
  41. self.sb_ports_in.setSingleStep(2)
  42. self.sb_ports_in.setObjectName("sb_ports_in")
  43. self.layout_ports_in.addWidget(self.sb_ports_in)
  44. self.verticalLayout_22.addLayout(self.layout_ports_in)
  45. self.layout_ports_out = QHBoxLayout()
  46. self.layout_ports_out.setObjectName("layout_ports_out")
  47. self.label_ports_out = QLabel(self.group_ports)
  48. self.label_ports_out.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
  49. self.label_ports_out.setObjectName("label_ports_out")
  50. self.layout_ports_out.addWidget(self.label_ports_out)
  51. self.sb_ports_out = QSpinBox(self.group_ports)
  52. self.sb_ports_out.setMinimum(2)
  53. self.sb_ports_out.setMaximum(128)
  54. self.sb_ports_out.setSingleStep(2)
  55. self.sb_ports_out.setObjectName("sb_ports_out")
  56. self.layout_ports_out.addWidget(self.sb_ports_out)
  57. self.verticalLayout_22.addLayout(self.layout_ports_out)
  58. self.layout_ports_connect_hw = QHBoxLayout()
  59. self.layout_ports_connect_hw.setObjectName("layout_ports_connect_hw")
  60. spacerItem = QSpacerItem(150, 20, QSizePolicy.Fixed, QSizePolicy.Minimum)
  61. self.layout_ports_connect_hw.addItem(spacerItem)
  62. self.cb_ports_connect_hw = QCheckBox(self.group_ports)
  63. self.cb_ports_connect_hw.setObjectName("cb_ports_connect_hw")
  64. self.layout_ports_connect_hw.addWidget(self.cb_ports_connect_hw)
  65. self.verticalLayout_22.addLayout(self.layout_ports_connect_hw)
  66. self.verticalLayout.addWidget(self.group_ports)
  67. self.group_jack = QGroupBox(WineASIOSettings)
  68. self.group_jack.setObjectName("group_jack")
  69. self.verticalLayout_23 = QVBoxLayout(self.group_jack)
  70. self.verticalLayout_23.setObjectName("verticalLayout_23")
  71. self.layout_jack_autostart = QHBoxLayout()
  72. self.layout_jack_autostart.setObjectName("layout_jack_autostart")
  73. spacerItem1 = QSpacerItem(150, 20, QSizePolicy.Fixed, QSizePolicy.Minimum)
  74. self.layout_jack_autostart.addItem(spacerItem1)
  75. self.cb_jack_autostart = QCheckBox(self.group_jack)
  76. self.cb_jack_autostart.setObjectName("cb_jack_autostart")
  77. self.layout_jack_autostart.addWidget(self.cb_jack_autostart)
  78. self.verticalLayout_23.addLayout(self.layout_jack_autostart)
  79. self.layout_jack_fixed_bsize = QHBoxLayout()
  80. self.layout_jack_fixed_bsize.setObjectName("layout_jack_fixed_bsize")
  81. spacerItem2 = QSpacerItem(150, 20, QSizePolicy.Fixed, QSizePolicy.Minimum)
  82. self.layout_jack_fixed_bsize.addItem(spacerItem2)
  83. self.cb_jack_fixed_bsize = QCheckBox(self.group_jack)
  84. self.cb_jack_fixed_bsize.setObjectName("cb_jack_fixed_bsize")
  85. self.layout_jack_fixed_bsize.addWidget(self.cb_jack_fixed_bsize)
  86. self.verticalLayout_23.addLayout(self.layout_jack_fixed_bsize)
  87. self.layout_jack_buffer_size = QHBoxLayout()
  88. self.layout_jack_buffer_size.setObjectName("layout_jack_buffer_size")
  89. self.label_jack_buffer_size = QLabel(self.group_jack)
  90. self.label_jack_buffer_size.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
  91. self.label_jack_buffer_size.setObjectName("label_jack_buffer_size")
  92. self.layout_jack_buffer_size.addWidget(self.label_jack_buffer_size)
  93. self.cb_jack_buffer_size = QComboBox(self.group_jack)
  94. self.cb_jack_buffer_size.setObjectName("cb_jack_buffer_size")
  95. self.layout_jack_buffer_size.addWidget(self.cb_jack_buffer_size)
  96. self.verticalLayout_23.addLayout(self.layout_jack_buffer_size)
  97. self.verticalLayout.addWidget(self.group_jack)
  98. self.buttonBox = QDialogButtonBox(WineASIOSettings)
  99. self.buttonBox.setOrientation(Qt.Horizontal)
  100. self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel|QDialogButtonBox.Ok|QDialogButtonBox.RestoreDefaults)
  101. self.buttonBox.setObjectName("buttonBox")
  102. self.verticalLayout.addWidget(self.buttonBox)
  103. self.retranslateUi(WineASIOSettings)
  104. self.buttonBox.accepted.connect(WineASIOSettings.accept)
  105. self.buttonBox.rejected.connect(WineASIOSettings.reject)
  106. QMetaObject.connectSlotsByName(WineASIOSettings)
  107. # ---------------------------------------------------------------------------------------------------------------------
  108. def retranslateUi(self, WineASIOSettings):
  109. _tr = QCoreApplication.translate
  110. WineASIOSettings.setWindowTitle(_tr(self.OBJECT_NAME, "WineASIO Settings"))
  111. # Audio Ports
  112. self.group_ports.setTitle(_tr(self.OBJECT_NAME, "Audio Ports"))
  113. self.label_ports_in.setText(_tr(self.OBJECT_NAME, "Number of inputs:"))
  114. self.label_ports_in.setToolTip(_tr(self.OBJECT_NAME,
  115. "Number of jack ports that wineasio will try to open.\n"
  116. "Default is 16"))
  117. self.sb_ports_in.setToolTip(_tr(self.OBJECT_NAME,
  118. "Number of jack ports that wineasio will try to open.\n"
  119. "Default is 16"))
  120. self.label_ports_out.setText(_tr(self.OBJECT_NAME, "Number of outputs:"))
  121. self.label_ports_out.setToolTip(_tr(self.OBJECT_NAME,
  122. "Number of jack ports that wineasio will try to open.\n"
  123. "Default is 16"))
  124. self.sb_ports_out.setToolTip(_tr(self.OBJECT_NAME,
  125. "Number of jack ports that wineasio will try to open.\n"
  126. "Default is 16"))
  127. self.cb_ports_connect_hw.setText(_tr(self.OBJECT_NAME, "Connect to hardware"))
  128. self.cb_ports_connect_hw.setToolTip(_tr(self.OBJECT_NAME,
  129. "Try to connect the asio channels to the\n"
  130. "physical I/O ports on your hardware.\n"
  131. "Default is on"))
  132. # JACK Options
  133. self.group_jack.setTitle(_tr(self.OBJECT_NAME, "JACK Options"))
  134. self.cb_jack_autostart.setText(_tr(self.OBJECT_NAME, "Autostart server"))
  135. self.cb_jack_autostart.setToolTip(_tr(self.OBJECT_NAME,
  136. "Enable wineasio to launch the jack server.\n"
  137. "Default is off"))
  138. self.cb_jack_fixed_bsize.setText(_tr(self.OBJECT_NAME, "Fixed buffersize"))
  139. self.cb_jack_fixed_bsize.setToolTip(_tr(self.OBJECT_NAME,
  140. "When on: ASIO applications will respect the current JACK buffer size\n"
  141. "When off: ASIO applications can change the JACK buffer size"
  142. "Default is on"))
  143. self.label_jack_buffer_size.setText(_tr(self.OBJECT_NAME, "Preferred buffersize:"))
  144. # ---------------------------------------------------------------------------------------------------------------------