Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for multiple sound files #8

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions profileexecutor.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import threading
import os, pyaudio
import shutil
import random
import re
from pocketsphinx import *
from soundfiles import SoundFiles
Expand Down Expand Up @@ -250,10 +251,14 @@ def stopCommand(self, p_cmdName):
del self.m_cmdThreads[p_cmdName]

def playSound(self, p_cmdName):
sound_file = './voicepacks/' + p_cmdName['pack'] + '/' + p_cmdName['cat'] + '/' + p_cmdName['file']
# backwards compatibility with previous type
if isinstance(p_cmdName['file'], str):
selected_file = p_cmdName['file']
elif isinstance(p_cmdName['file'], list):
selected_file = random.choice(p_cmdName['file'])
sound_file = './voicepacks/' + p_cmdName['pack'] + '/' + p_cmdName['cat'] + '/' + selected_file
self.m_sound.play(sound_file)


def pressKey(self, w_key, w_type):
if self.p_parent.m_config['noroot'] == 1:
# xdotool has a different key mapping. translate old existing mappings of special keys
Expand Down
34 changes: 17 additions & 17 deletions soundactioneditwnd.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ def __init__(self, p_sounds, p_soundAction = None, p_parent = None):
self.p_sounds = p_sounds
self.selectedVoicepack = False
self.selectedCategory = False
self.selectedFile = False
self.selectedFiles = []

self.ui.buttonOkay.clicked.connect(self.slotOK)
self.ui.buttonCancel.clicked.connect(super().reject)
Expand All @@ -29,7 +29,7 @@ def __init__(self, p_sounds, p_soundAction = None, p_parent = None):
if not p_soundAction == None:
self.selectedVoicepack = p_soundAction['pack']
self.selectedCategory = p_soundAction['cat']
self.selectedFile = p_soundAction['file']
self.selectedFiles = p_soundAction['file']
self.ui.buttonOkay.setEnabled(True)

self.listVoicepacks_model = QStandardItemModel()
Expand All @@ -53,7 +53,6 @@ def __init__(self, p_sounds, p_soundAction = None, p_parent = None):
self.ui.filterCategories.textChanged.connect(self.populateCategories)
self.ui.filterFiles.textChanged.connect(self.populateFiles)


self.populateCategories(False)
self.populateFiles(False)

Expand All @@ -70,17 +69,20 @@ def __init__(self, p_sounds, p_soundAction = None, p_parent = None):
index = self.listCategories_model.indexFromItem(item[0])
self.ui.listCategories.setCurrentIndex(index)

if not self.selectedFile == False:
item = self.listFiles_model.findItems(self.selectedFile)
if len(item) > 0:
index = self.listFiles_model.indexFromItem(item[0])
self.ui.listFiles.setCurrentIndex(index)

if self.selectedFiles:
selection_model = self.ui.listFiles.selectionModel()
selection = QItemSelection()

for selectedFile in self.selectedFiles:
items = self.listFiles_model.findItems(selectedFile)
for item in items:
index = self.listFiles_model.indexFromItem(item)
selection.select(index, index)

selection_model.select(selection, QItemSelectionModel.Select)

def slotOK(self):
self.m_soundAction = {'name': 'play sound', 'pack': self.selectedVoicepack, 'cat' : self.selectedCategory, 'file' : self.selectedFile}
self.m_soundAction = {'name': 'play sound', 'pack': self.selectedVoicepack, 'cat' : self.selectedCategory, 'file' : self.selectedFiles}
super().accept()

def slotCancel(self):
Expand All @@ -102,11 +104,9 @@ def onCategorySelect(self):
self.ui.buttonOkay.setEnabled(False)
self.ui.buttonPlaySound.setEnabled(False)


def onFileSelect(self):
index = self.ui.listFiles.currentIndex()
itemText = index.data()
self.selectedFile = itemText
selected_indexes = self.ui.listFiles.selectedIndexes()
self.selectedFiles = [index.data() for index in selected_indexes]
self.ui.buttonOkay.setEnabled(True)
self.ui.buttonPlaySound.setEnabled(True)

Expand All @@ -122,7 +122,7 @@ def populateCategories(self, reset = True):
self.listCategories_model.removeRows( 0, self.listCategories_model.rowCount() )
self.listFiles_model.removeRows( 0, self.listFiles_model.rowCount() )
self.selectedCategory = False
self.selectedFile = False
self.selectedFiles = []

filter_categories = self.ui.filterCategories.toPlainText()
if len(filter_categories) == 0:
Expand All @@ -142,7 +142,7 @@ def populateFiles(self, reset = True):

if reset == True:
self.listFiles_model.removeRows( 0, self.listFiles_model.rowCount() )
self.selectedFile = False
self.selectedFiles = []

filter_files = self.ui.filterFiles.toPlainText()
if len(filter_files) == 0:
Expand All @@ -157,7 +157,7 @@ def populateFiles(self, reset = True):
self.listFiles_model.appendRow(item)

def playSound(self):
sound_file = './voicepacks/' + self.selectedVoicepack + '/' + self.selectedCategory + '/' + self.selectedFile
sound_file = './voicepacks/' + self.selectedVoicepack + '/' + self.selectedCategory + '/' + self.selectedFiles[0]
self.p_sounds.play(sound_file)

def stopSound(self):
Expand Down
1 change: 1 addition & 0 deletions ui_soundactioneditwnd.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ def setupUi(self, SoundSelect):
self.listFiles.setGeometry(QtCore.QRect(660, 90, 451, 231))
self.listFiles.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
self.listFiles.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)
self.listFiles.setSelectionMode(QtWidgets.QAbstractItemView.MultiSelection)
self.listFiles.setProperty("showDropIndicator", False)
self.listFiles.setAlternatingRowColors(True)
self.listFiles.setObjectName("listFiles")
Expand Down