diff --git a/commandeditwnd.py b/commandeditwnd.py index 9cd859d..f520451 100644 --- a/commandeditwnd.py +++ b/commandeditwnd.py @@ -6,7 +6,6 @@ from keyactioneditwnd import KeyActionEditWnd from mouseactioneditwnd import MouseActionEditWnd from pauseactioneditwnd import PauseActionEditWnd import json -import keyboard class CommandEditWnd(QDialog): def __init__(self, p_command, p_parent = None): diff --git a/keyactioneditwnd.py b/keyactioneditwnd.py index d4e4541..c5f408d 100644 --- a/keyactioneditwnd.py +++ b/keyactioneditwnd.py @@ -2,9 +2,7 @@ from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * from ui_keyactioneditwnd import Ui_KeyActionEditDialog -import json import keyboard -import time import threading class KeyActionEditWnd(QDialog): diff --git a/main.py b/main.py index 992bb00..d965974 100755 --- a/main.py +++ b/main.py @@ -8,10 +8,9 @@ import json from profileexecutor import ProfileExecutor import sys import pickle -import time -import keyboard -import threading import signal +import os +import shutil class MainWnd(QWidget): def __init__(self, p_parent = None): @@ -48,12 +47,12 @@ class MainWnd(QWidget): w_profile = json.loads(w_jsonProfile) w_profiles.append(w_profile) - with open("profiles.dat", "wb") as f: + with open(self.getSettingsPath("profiles.dat"), "wb") as f: pickle.dump(w_profiles, f, pickle.HIGHEST_PROTOCOL) def loadFromDatabase(self): w_profiles = [] - with open("profiles.dat", "rb") as f: + with open(self.getSettingsPath("profiles.dat"), "rb") as f: w_profiles = pickle.load(f) for w_profile in w_profiles: @@ -63,6 +62,15 @@ class MainWnd(QWidget): return len(w_profiles) + def getSettingsPath(self, setting): + home = os.path.expanduser("~") + '/.linvam/' + if not os.path.exists(home): + os.mkdir(home) + if not os.path.exists(home + setting): + shutil.copyfile(setting, home + setting) + + return home + setting + def loadTestProfiles(self): w_carProfileDict = { diff --git a/mouseactioneditwnd.py b/mouseactioneditwnd.py index b741b2f..57c0d5e 100644 --- a/mouseactioneditwnd.py +++ b/mouseactioneditwnd.py @@ -2,7 +2,6 @@ from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * from ui_mouseactioneditwnd import Ui_MouseActionEditDialog -import json class MouseActionEditWnd(QDialog): diff --git a/pauseactioneditwnd.py b/pauseactioneditwnd.py index 7b5b169..20ec574 100644 --- a/pauseactioneditwnd.py +++ b/pauseactioneditwnd.py @@ -2,7 +2,6 @@ from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * from ui_pauseactioneditwnd import Ui_PauseActionEditDialog -import json class PauseActionEditWnd(QDialog): def __init__(self, p_pauseAction, p_parent = None): diff --git a/profileeditwnd.py b/profileeditwnd.py index c591768..701c139 100644 --- a/profileeditwnd.py +++ b/profileeditwnd.py @@ -5,7 +5,6 @@ from ui_profileeditwnd import Ui_ProfileEditDialog from commandeditwnd import CommandEditWnd import json from profileexecutor import * -import sys class ProfileEditWnd(QDialog): def __init__(self, p_profile, p_parent = None): diff --git a/profileexecutor.py b/profileexecutor.py index 66538eb..a89de52 100644 --- a/profileexecutor.py +++ b/profileexecutor.py @@ -2,9 +2,8 @@ import keyboard from pynput.mouse import Button, Controller import time import threading -import copy -import json -import sys, os, pyaudio +import os, pyaudio +import shutil from pocketsphinx.pocketsphinx import * from sphinxbase.sphinxbase import * @@ -30,12 +29,21 @@ class ProfileExecutor(threading.Thread): # Process audio chunk by chunk. On keyword detected perform action and restart search self.m_decoder = Decoder(self.m_config) + def getSettingsPath(self, setting): + home = os.path.expanduser("~") + '/.linvam/' + if not os.path.exists(home): + os.mkdir(home) + if not os.path.exists(home + setting): + shutil.copyfile(setting, home + setting) + + return home + setting + def setProfile(self, p_profile): self.m_profile = p_profile if self.m_profile == None: return - w_commandWordFile = open('command.list', 'w') + w_commandWordFile = open(self.getSettingsPath('command.list'), 'w') w_commands = self.m_profile['commands'] i = 0 for w_command in w_commands: @@ -44,7 +52,7 @@ class ProfileExecutor(threading.Thread): w_commandWordFile.write(w_command['name'] + ' /1e-%d/' % w_command['threshold']) i = i + 1 w_commandWordFile.close() - self.m_config.set_string('-kws', 'command.list') + self.m_config.set_string('-kws', self.getSettingsPath('command.list')) def setEnableListening(self, p_enable): self.m_listening = p_enable