Now plays files to default audio and CABLE!
TODO: Show urls in buttons
This commit is contained in:
53
gui/gui.py
53
gui/gui.py
@@ -204,6 +204,59 @@ class Ui_MainWindow(object):
|
|||||||
self.settings_page.setObjectName("settings_page")
|
self.settings_page.setObjectName("settings_page")
|
||||||
self.content.addWidget(self.settings_page)
|
self.content.addWidget(self.settings_page)
|
||||||
self.main_content_to_player_box_lay.addWidget(self.content)
|
self.main_content_to_player_box_lay.addWidget(self.content)
|
||||||
|
self.player_box = QtWidgets.QWidget(self.main_content_to_player_box)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.player_box.sizePolicy().hasHeightForWidth())
|
||||||
|
self.player_box.setSizePolicy(sizePolicy)
|
||||||
|
self.player_box.setObjectName("player_box")
|
||||||
|
self.player_box_lay = QtWidgets.QVBoxLayout(self.player_box)
|
||||||
|
self.player_box_lay.setContentsMargins(0, 0, 0, 0)
|
||||||
|
self.player_box_lay.setObjectName("player_box_lay")
|
||||||
|
self.player_slider_horizontal_box = QtWidgets.QWidget(self.player_box)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.player_slider_horizontal_box.sizePolicy().hasHeightForWidth())
|
||||||
|
self.player_slider_horizontal_box.setSizePolicy(sizePolicy)
|
||||||
|
self.player_slider_horizontal_box.setObjectName("player_slider_horizontal_box")
|
||||||
|
self.player_slider_horizontal_lay = QtWidgets.QHBoxLayout(self.player_slider_horizontal_box)
|
||||||
|
self.player_slider_horizontal_lay.setContentsMargins(0, 0, 0, 0)
|
||||||
|
self.player_slider_horizontal_lay.setObjectName("player_slider_horizontal_lay")
|
||||||
|
self.play_pause_button = QtWidgets.QPushButton(self.player_slider_horizontal_box)
|
||||||
|
self.play_pause_button.setMinimumSize(QtCore.QSize(40, 40))
|
||||||
|
self.play_pause_button.setStyleSheet("")
|
||||||
|
self.play_pause_button.setText("")
|
||||||
|
icon9 = QtGui.QIcon()
|
||||||
|
icon9.addPixmap(QtGui.QPixmap(":/img/img/play.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||||
|
self.play_pause_button.setIcon(icon9)
|
||||||
|
self.play_pause_button.setIconSize(QtCore.QSize(32, 32))
|
||||||
|
self.play_pause_button.setObjectName("play_pause_button")
|
||||||
|
self.player_slider_horizontal_lay.addWidget(self.play_pause_button)
|
||||||
|
self.player_time_slider = QtWidgets.QSlider(self.player_slider_horizontal_box)
|
||||||
|
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
|
||||||
|
sizePolicy.setHorizontalStretch(0)
|
||||||
|
sizePolicy.setVerticalStretch(0)
|
||||||
|
sizePolicy.setHeightForWidth(self.player_time_slider.sizePolicy().hasHeightForWidth())
|
||||||
|
self.player_time_slider.setSizePolicy(sizePolicy)
|
||||||
|
self.player_time_slider.setPageStep(1)
|
||||||
|
self.player_time_slider.setProperty("value", 0)
|
||||||
|
self.player_time_slider.setTracking(True)
|
||||||
|
self.player_time_slider.setOrientation(QtCore.Qt.Horizontal)
|
||||||
|
self.player_time_slider.setObjectName("player_time_slider")
|
||||||
|
self.player_slider_horizontal_lay.addWidget(self.player_time_slider)
|
||||||
|
self.volume_box = QtWidgets.QSpinBox(self.player_slider_horizontal_box)
|
||||||
|
self.volume_box.setMaximum(100)
|
||||||
|
self.volume_box.setProperty("value", 100)
|
||||||
|
self.volume_box.setObjectName("volume_box")
|
||||||
|
self.player_slider_horizontal_lay.addWidget(self.volume_box)
|
||||||
|
self.player_box_lay.addWidget(self.player_slider_horizontal_box)
|
||||||
|
self.main_content_to_player_box_lay.addWidget(self.player_box)
|
||||||
|
self.player_track_label = QtWidgets.QLabel(self.main_content_to_player_box)
|
||||||
|
self.player_track_label.setText("")
|
||||||
|
self.player_track_label.setObjectName("player_track_label")
|
||||||
|
self.main_content_to_player_box_lay.addWidget(self.player_track_label)
|
||||||
self.centralwidget_lay.addWidget(self.main_content_to_player_box)
|
self.centralwidget_lay.addWidget(self.main_content_to_player_box)
|
||||||
MainWindow.setCentralWidget(self.centralwidget)
|
MainWindow.setCentralWidget(self.centralwidget)
|
||||||
|
|
||||||
|
|||||||
135
gui/gui.ui
135
gui/gui.ui
@@ -265,6 +265,28 @@ QToolBox::tab {
|
|||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
border-color: #303030;
|
border-color: #303030;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QSlider::groove:horizontal {
|
||||||
|
border-radius: 1px;
|
||||||
|
height: 10px;
|
||||||
|
margin: 0px;
|
||||||
|
background-color: #242424;
|
||||||
|
}
|
||||||
|
QSlider::groove:horizontal:hover {
|
||||||
|
background-color: #303030;
|
||||||
|
}
|
||||||
|
QSlider::handle:horizontal {
|
||||||
|
background-color: white;
|
||||||
|
border: none;
|
||||||
|
width: 5px;
|
||||||
|
border-radius: 40px;
|
||||||
|
}
|
||||||
|
QSlider::handle:horizontal:hover {
|
||||||
|
background-color: #bfbfbf;
|
||||||
|
}
|
||||||
|
QSlider::handle:horizontal:pressed {
|
||||||
|
background-color: #bfbfbf;
|
||||||
|
}
|
||||||
</string>
|
</string>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="centralwidget">
|
<widget class="QWidget" name="centralwidget">
|
||||||
@@ -678,6 +700,119 @@ QListWidget:item:selected {
|
|||||||
<widget class="QWidget" name="settings_page"/>
|
<widget class="QWidget" name="settings_page"/>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="player_box" native="true">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="player_box_lay">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QWidget" name="player_slider_horizontal_box" native="true">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="player_slider_horizontal_lay">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="play_pause_button">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true"/>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset resource="images.qrc">
|
||||||
|
<normaloff>:/img/img/play.png</normaloff>:/img/img/play.png</iconset>
|
||||||
|
</property>
|
||||||
|
<property name="iconSize">
|
||||||
|
<size>
|
||||||
|
<width>32</width>
|
||||||
|
<height>32</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QSlider" name="player_time_slider">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="pageStep">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
<property name="tracking">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QSpinBox" name="volume_box">
|
||||||
|
<property name="maximum">
|
||||||
|
<number>100</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>100</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="player_track_label">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
<RCC>
|
<RCC>
|
||||||
<qresource prefix="img">
|
<qresource prefix="img">
|
||||||
|
<file>img/pause.png</file>
|
||||||
|
<file>img/play.png</file>
|
||||||
<file>img/kotopad.ico</file>
|
<file>img/kotopad.ico</file>
|
||||||
<file>img/download.png</file>
|
<file>img/download.png</file>
|
||||||
<file>img/stream.png</file>
|
<file>img/stream.png</file>
|
||||||
|
|||||||
1071
gui/images_rc.py
1071
gui/images_rc.py
File diff suppressed because it is too large
Load Diff
BIN
gui/img/pause.png
Normal file
BIN
gui/img/pause.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1006 B |
BIN
gui/img/play.png
Normal file
BIN
gui/img/play.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
@@ -2,14 +2,18 @@ from gui.gui import Ui_MainWindow
|
|||||||
from PyQt5.QtWidgets import QMainWindow
|
from PyQt5.QtWidgets import QMainWindow
|
||||||
from gui.modules import menu
|
from gui.modules import menu
|
||||||
from gui.modules import pads
|
from gui.modules import pads
|
||||||
|
from gui.modules import player
|
||||||
|
from modules.player.player import Player
|
||||||
|
|
||||||
|
|
||||||
def register_handlers(ui: Ui_MainWindow, MainWindow: QMainWindow):
|
def register_handlers(ui: Ui_MainWindow, MainWindow: QMainWindow, p: Player):
|
||||||
"""
|
"""
|
||||||
Register all handlers
|
Register all handlers
|
||||||
:param ui:
|
:param ui:
|
||||||
:param MainWindow:
|
:param MainWindow:
|
||||||
|
:param p:
|
||||||
:return:
|
:return:
|
||||||
"""
|
"""
|
||||||
menu.register_handlers(ui)
|
menu.register_handlers(ui)
|
||||||
pads.register_handlers(ui, MainWindow)
|
pads.register_handlers(ui, MainWindow, p)
|
||||||
|
player.register_handlers(ui, MainWindow, p)
|
||||||
|
|||||||
@@ -3,8 +3,9 @@ from gui.modules.core.blur import GlobalBlur
|
|||||||
from gui.modules.initialize import styles
|
from gui.modules.initialize import styles
|
||||||
from gui.modules.handlers import register
|
from gui.modules.handlers import register
|
||||||
from PyQt5.QtWidgets import QMainWindow
|
from PyQt5.QtWidgets import QMainWindow
|
||||||
from PyQt5 import QtWidgets
|
from PyQt5 import QtCore
|
||||||
from modules.config import Config
|
from modules.config import Config
|
||||||
|
from modules.player.player import Player
|
||||||
|
|
||||||
|
|
||||||
def on_load(ui: Ui_MainWindow, MainWindow: QMainWindow):
|
def on_load(ui: Ui_MainWindow, MainWindow: QMainWindow):
|
||||||
@@ -16,9 +17,15 @@ def on_load(ui: Ui_MainWindow, MainWindow: QMainWindow):
|
|||||||
"""
|
"""
|
||||||
ui.content.setCurrentIndex(0)
|
ui.content.setCurrentIndex(0)
|
||||||
|
|
||||||
|
ui.player_track_label.hide()
|
||||||
|
|
||||||
MainWindow.setStyleSheet(styles.centralwidget())
|
MainWindow.setStyleSheet(styles.centralwidget())
|
||||||
ui.menu.setStyleSheet(styles.menupage())
|
ui.menu.setStyleSheet(styles.menupage())
|
||||||
if 'acrylic' in Config.get().theme:
|
if 'acrylic' in Config.get().theme:
|
||||||
GlobalBlur(MainWindow.winId(), acrylic=True)
|
GlobalBlur(MainWindow.winId(), acrylic=True)
|
||||||
|
|
||||||
register.register_handlers(ui, MainWindow)
|
ui.timer = QtCore.QTimer(MainWindow)
|
||||||
|
|
||||||
|
p = Player()
|
||||||
|
|
||||||
|
register.register_handlers(ui, MainWindow, p)
|
||||||
|
|||||||
@@ -287,6 +287,28 @@ QToolBox::tab {
|
|||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
border-color: rgba(48, 48, 48, 0);
|
border-color: rgba(48, 48, 48, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QSlider::groove:horizontal {
|
||||||
|
border-radius: 1px;
|
||||||
|
height: 10px;
|
||||||
|
margin: 0px;
|
||||||
|
background-color: rgba(36, 36, 36, 0);
|
||||||
|
}
|
||||||
|
QSlider::groove:horizontal:hover {
|
||||||
|
background-color: rgba(48, 48, 48, 0);
|
||||||
|
}
|
||||||
|
QSlider::handle:horizontal {
|
||||||
|
background-color: white;
|
||||||
|
border: none;
|
||||||
|
width: 5px;
|
||||||
|
border-radius: 40px;
|
||||||
|
}
|
||||||
|
QSlider::handle:horizontal:hover {
|
||||||
|
background-color: rgba(191, 191, 191, 0);
|
||||||
|
}
|
||||||
|
QSlider::handle:horizontal:pressed {
|
||||||
|
background-color: rgba(191, 191, 191, 0);
|
||||||
|
}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
menupage_b = """
|
menupage_b = """
|
||||||
@@ -559,6 +581,28 @@ QToolBox::tab {
|
|||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
border-color: #303030;
|
border-color: #303030;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QSlider::groove:horizontal {
|
||||||
|
border-radius: 1px;
|
||||||
|
height: 10px;
|
||||||
|
margin: 0px;
|
||||||
|
background-color: #242424;
|
||||||
|
}
|
||||||
|
QSlider::groove:horizontal:hover {
|
||||||
|
background-color: #303030;
|
||||||
|
}
|
||||||
|
QSlider::handle:horizontal {
|
||||||
|
background-color: white;
|
||||||
|
border: none;
|
||||||
|
width: 5px;
|
||||||
|
border-radius: 40px;
|
||||||
|
}
|
||||||
|
QSlider::handle:horizontal:hover {
|
||||||
|
background-color: #bfbfbf;
|
||||||
|
}
|
||||||
|
QSlider::handle:horizontal:pressed {
|
||||||
|
background-color: #bfbfbf;
|
||||||
|
}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
menupage_g = """
|
menupage_g = """
|
||||||
|
|||||||
@@ -3,44 +3,61 @@ from modules.padslist import Pads
|
|||||||
from gui.gui import Ui_MainWindow
|
from gui.gui import Ui_MainWindow
|
||||||
from PyQt5 import QtWidgets, QtCore
|
from PyQt5 import QtWidgets, QtCore
|
||||||
from PyQt5.QtWidgets import QMainWindow
|
from PyQt5.QtWidgets import QMainWindow
|
||||||
|
from modules.player.player import Player
|
||||||
|
|
||||||
|
|
||||||
def fill_pads(ui: Ui_MainWindow, MainWindow: QMainWindow):
|
def fill_pads(ui: Ui_MainWindow, MainWindow: QMainWindow, p: Player):
|
||||||
ui.first_pads_dict = dict()
|
ui.first_pads_dict = dict()
|
||||||
ui.second_pads_dict = dict()
|
ui.second_pads_dict = dict()
|
||||||
|
|
||||||
first_pads_list = \
|
first_pads_list = \
|
||||||
[ui.edit_first_pads_collection_list.item(x).text() for x in range(ui.edit_first_pads_collection_list.count())]
|
[ui.edit_first_pads_collection_list.item(x).text() for x in range(ui.edit_first_pads_collection_list.count())]
|
||||||
|
|
||||||
|
for i in reversed(range(ui.pads_collection_1_lay.count())):
|
||||||
|
ui.pads_collection_1_lay.itemAt(i).widget().setParent(None)
|
||||||
|
|
||||||
for i in range(len(first_pads_list)):
|
for i in range(len(first_pads_list)):
|
||||||
item = first_pads_list[i]
|
item = first_pads_list[i]
|
||||||
if item == '':
|
if item == '':
|
||||||
continue
|
continue
|
||||||
ui.first_pads_dict[os.path.split(item)[-1]] = item
|
ui.first_pads_dict[os.path.split(item)[-1][:24:]] = item
|
||||||
button = QtWidgets.QPushButton()
|
button = QtWidgets.QPushButton()
|
||||||
button.setSizePolicy(QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
|
button.setSizePolicy(QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
|
||||||
QtWidgets.QSizePolicy.Expanding))
|
QtWidgets.QSizePolicy.Expanding))
|
||||||
button.setText(os.path.split(item)[-1] if os.path.exists(item) else "File doesn't exist")
|
button.setText(os.path.split(item)[-1][:24:] if os.path.exists(item) else "File doesn't exist")
|
||||||
button.clicked.connect(lambda: print(ui.first_pads_dict[MainWindow.sender().text()]
|
button.clicked.connect(
|
||||||
if MainWindow.sender().text() != "File doesn't exist" else None))
|
(
|
||||||
print('First: ', ui.first_pads_dict)
|
lambda: (
|
||||||
|
p.set_media(ui.first_pads_dict[MainWindow.sender().text()]),
|
||||||
|
p.play(ui)
|
||||||
|
) if MainWindow.sender().text() != "File doesn't exist" else None
|
||||||
|
)
|
||||||
|
)
|
||||||
Pads.update("first_pads", ui.first_pads_dict)
|
Pads.update("first_pads", ui.first_pads_dict)
|
||||||
ui.pads_collection_1_lay.addWidget(button, i // 4, i % 4)
|
ui.pads_collection_1_lay.addWidget(button, i // 4, i % 4)
|
||||||
|
|
||||||
second_pads_list = \
|
second_pads_list = \
|
||||||
[ui.edit_second_pads_collection_list.item(x).text() for x in range(ui.edit_second_pads_collection_list.count())]
|
[ui.edit_second_pads_collection_list.item(x).text() for x in range(ui.edit_second_pads_collection_list.count())]
|
||||||
|
|
||||||
|
for i in reversed(range(ui.pads_collection_2_lay.count())):
|
||||||
|
ui.pads_collection_2_lay.itemAt(i).widget().setParent(None)
|
||||||
|
|
||||||
for i in range(len(second_pads_list)):
|
for i in range(len(second_pads_list)):
|
||||||
item = second_pads_list[i]
|
item = second_pads_list[i]
|
||||||
if item == '':
|
if item == '':
|
||||||
continue
|
continue
|
||||||
ui.second_pads_dict[os.path.split(item)[-1]] = item
|
ui.second_pads_dict[os.path.split(item)[-1][:24:]] = item
|
||||||
button = QtWidgets.QPushButton()
|
button = QtWidgets.QPushButton()
|
||||||
button.setSizePolicy(QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
|
button.setSizePolicy(QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
|
||||||
QtWidgets.QSizePolicy.Expanding))
|
QtWidgets.QSizePolicy.Expanding))
|
||||||
button.setText(os.path.split(item)[-1] if os.path.exists(item) else "File doesn't exist")
|
button.setText(os.path.split(item)[-1][:24:] if os.path.exists(item) else "File doesn't exist")
|
||||||
button.clicked.connect(lambda: print(ui.second_pads_dict[MainWindow.sender().text()]
|
button.clicked.connect(
|
||||||
if MainWindow.sender().text() != "File doesn't exist" else None))
|
(
|
||||||
print('Second', ui.second_pads_dict)
|
lambda: (
|
||||||
|
p.set_media(ui.first_pads_dict[MainWindow.sender().text()]),
|
||||||
|
p.play(ui)
|
||||||
|
) if MainWindow.sender().text() != "File doesn't exist" else None
|
||||||
|
)
|
||||||
|
)
|
||||||
Pads.update("second_pads", ui.second_pads_dict)
|
Pads.update("second_pads", ui.second_pads_dict)
|
||||||
ui.pads_collection_2_lay.addWidget(button, i // 4, i % 4)
|
ui.pads_collection_2_lay.addWidget(button, i // 4, i % 4)
|
||||||
|
|||||||
@@ -2,16 +2,11 @@ from gui.gui import Ui_MainWindow
|
|||||||
from PyQt5.QtWidgets import QMainWindow
|
from PyQt5.QtWidgets import QMainWindow
|
||||||
from .initialize_pads_settings import *
|
from .initialize_pads_settings import *
|
||||||
from .fill_pads_from_settings import *
|
from .fill_pads_from_settings import *
|
||||||
|
from modules.player.player import Player
|
||||||
|
|
||||||
|
|
||||||
def register_handlers(ui: Ui_MainWindow, MainWindow: QMainWindow):
|
def register_handlers(ui: Ui_MainWindow, MainWindow: QMainWindow, p: Player):
|
||||||
"""
|
|
||||||
Register this module handlers
|
|
||||||
:param ui:
|
|
||||||
:param MainWindow:
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
fill_settings(ui)
|
fill_settings(ui)
|
||||||
fill_pads(ui, MainWindow)
|
fill_pads(ui, MainWindow, p)
|
||||||
ui.edit_first_pads_collection_list.itemChanged.connect(lambda: fill_pads(ui, MainWindow))
|
ui.edit_first_pads_collection_list.itemChanged.connect(lambda: fill_pads(ui, MainWindow, p))
|
||||||
ui.edit_second_pads_collection_list.itemChanged.connect(lambda: fill_pads(ui, MainWindow))
|
ui.edit_second_pads_collection_list.itemChanged.connect(lambda: fill_pads(ui, MainWindow, p))
|
||||||
|
|||||||
1
gui/modules/player/__init__.py
Normal file
1
gui/modules/player/__init__.py
Normal file
@@ -0,0 +1 @@
|
|||||||
|
from .handlers import *
|
||||||
13
gui/modules/player/handlers.py
Normal file
13
gui/modules/player/handlers.py
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
from gui.gui import Ui_MainWindow
|
||||||
|
from PyQt5.QtWidgets import QMainWindow
|
||||||
|
from modules.player.player import Player
|
||||||
|
|
||||||
|
|
||||||
|
def register_handlers(ui: Ui_MainWindow, MainWindow: QMainWindow, p: Player):
|
||||||
|
"""
|
||||||
|
Register this module handlers
|
||||||
|
:param p:
|
||||||
|
:param ui:
|
||||||
|
:param MainWindow:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
0
modules/player/__init__.py
Normal file
0
modules/player/__init__.py
Normal file
43
modules/player/player.py
Normal file
43
modules/player/player.py
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
import vlc
|
||||||
|
from gui.gui import Ui_MainWindow
|
||||||
|
|
||||||
|
|
||||||
|
def get_instance() -> vlc.Instance:
|
||||||
|
return vlc.Instance()
|
||||||
|
|
||||||
|
|
||||||
|
def get_player(instance: vlc.Instance) -> vlc.MediaPlayer:
|
||||||
|
return instance.media_player_new()
|
||||||
|
|
||||||
|
|
||||||
|
def get_devices(mediaplayer: vlc.MediaPlayer) -> dict:
|
||||||
|
devices = dict()
|
||||||
|
|
||||||
|
device = mediaplayer.audio_output_device_enum()
|
||||||
|
while device:
|
||||||
|
devices[device.contents.description.decode("utf-8")] = device.contents.device
|
||||||
|
device = device.contents.next
|
||||||
|
|
||||||
|
return devices
|
||||||
|
|
||||||
|
|
||||||
|
class Player(object):
|
||||||
|
def __init__(self):
|
||||||
|
self.instance = get_instance()
|
||||||
|
self.mediaplayer_preview = get_player(self.instance)
|
||||||
|
self.mediaplayer_preview.audio_output_device_set(None, get_devices(self.mediaplayer_preview)['Default'])
|
||||||
|
self.mediaplayer_out = get_player(self.instance)
|
||||||
|
self.mediaplayer_out.audio_output_device_set(None, get_devices(
|
||||||
|
self.mediaplayer_out)['CABLE Input (VB-Audio Virtual Cable)'])
|
||||||
|
self.is_paused = False
|
||||||
|
|
||||||
|
def set_media(self, media: str) -> None:
|
||||||
|
self.mediaplayer_preview.set_media(self.instance.media_new(media))
|
||||||
|
self.mediaplayer_out.set_media(self.instance.media_new(media))
|
||||||
|
|
||||||
|
def play(self, ui: Ui_MainWindow):
|
||||||
|
self.mediaplayer_preview.play()
|
||||||
|
self.mediaplayer_out.play()
|
||||||
|
|
||||||
|
def get_length(self) -> int:
|
||||||
|
return int(self.mediaplayer_preview.get_length() / 1000)
|
||||||
Reference in New Issue
Block a user