From 6a117ac99882b4d6a5594650e45006cdc4b7aa2f Mon Sep 17 00:00:00 2001 From: chrys Date: Thu, 28 Jul 2016 23:52:20 +0200 Subject: [PATCH] dont push --- config/settings/settings.conf | 22 +++++++++++------- src/fenrir-package/1ChangeTTY.opus | Bin 0 -> 1403 bytes src/fenrir-package/1ChangeTTY.wav | Bin 0 -> 28880 bytes .../commands/onInput/70000-speak_incomming.py | 4 +++- src/fenrir-package/core/outputManager.py | 5 ++-- src/fenrir-package/core/settingsManager.py | 6 ++++- src/fenrir-package/sound.py | 9 +++++++ src/fenrir-package/sound/gstreamer.py | 15 ++++++++---- 8 files changed, 44 insertions(+), 17 deletions(-) create mode 100644 src/fenrir-package/1ChangeTTY.opus create mode 100644 src/fenrir-package/1ChangeTTY.wav create mode 100644 src/fenrir-package/sound.py diff --git a/config/settings/settings.conf b/config/settings/settings.conf index d6708f84..12611c8b 100644 --- a/config/settings/settings.conf +++ b/config/settings/settings.conf @@ -1,23 +1,28 @@ + [sound] -enabled=False, -driver=sox +enabled=True +driver=gstreamer theme=default [speech] enabled=True -driver=espeak -rate=800 +#driver=espeak +#language=en-us +#voice=en-us +driver=speechd +#rate=800 +rate=50 +volume=100 pitch=50 module=espeak -voice=en-us -language=en-us -volume=200 +voice=de +language=de [braille] enabled=False layout=en -[screen] +['screen] driver=linux [keyboard] @@ -28,3 +33,4 @@ wordEcho=True [general] debugLevel=0 punctuationLevel=1 + diff --git a/src/fenrir-package/1ChangeTTY.opus b/src/fenrir-package/1ChangeTTY.opus new file mode 100644 index 0000000000000000000000000000000000000000..e147023bb20ba4ee4b538e052d14cc254d2c0c1d GIT binary patch literal 1403 zcmV->1%&!fXJ=CY0ssI2000000BZdL#{d8T0M|Xr)BzJuaCLJ?Wnp9i0XPAGy8r+H z002*CXHx(G0000000000YW)Jo0RR91LfR2o0X|P~b#qi=UX002s<)W!&;lbDy7mYSjX$^&NZggDVaCW^MAdi76E2ICL8Z-<82x{ z&zbX4M)8I042FaWa$-1TkEF>N4srzAveZdUd>gibW)rRiXbrveCLidkNK{^NfIPO0 zKn#$JcJk)Mn1*cbjHiALqzXEsc~7A@)@L?xY+6J3!=+|qFxz{sIGxIp6lt~o3n|VC zAgELx+rp~MfQ-9fY6tQc9Kh?l#5D&QRt=J-4p(Qw-$fMakHG%H%arobKg0Smf_!Rl zMAOktG~GL#yQLhvAt}SYfzpa?WA!iZ$7`eY_0`IPfSitVp_lx+xG!kKf<*OsdDDFd z5`9xD1=Bw62y#Me9JQ*HKK?!U;A$@`4^%--3LdznOGaY166?UPrWF+! z1-Lz?QGX?|qBKLY`%!F|t{HqH%&xWp%2sdSAKFQXS9rD_Sz1kEr+HEE-w;d-H2G`j zIo9(WbDyhz4u9Fw2f;t9fy4MTBRBvHNAlH2&jUK%d%IXB4?WyUn6IowMs0%fHq+P zP!A$14?GS#!qT(W{tP`e2 zYO(wmHJO~akw>`3Wc=6F9>TfZ^WdEt-(Qw+8#M}6_~!kiGV1&;wve-zG1!aSJ5>oD zS8FH~*G!vbFO2Yzx$Y7`xYlR_|J&;MKF-Gm0F67Snl}$$dGXTLnP2M9q`8C`9DAtH z%hj8wh(9AAKlm&*k_~?vgJnT>2oSZy((@dZYW@)D;nOxj2xziaBM_1g{HrwxUh_VS zc2%Z*G=qQ#W!>t;p0|1ckZDUs!L3GPc^7}l!JrBgA=d0lZ~w-Tj6+yUAMzc18;D6= z>n1+}TPjGq6#v$Y3>ReZ%4+t4X}uOKX^^!7P4|Y@wQHzlyeJ`Ev;Lj~lzcG+=jB9a zp(dO7?m0DwqQzgJkFMmv(%h?A7H$PY>nqgcLFm}V?G{Uv-2W|zU=daI1(QBh8s;j5 z80E2-J;t${g#OeNAOq`qY&w2eFsO0fq*@!>l?T%tmUbIb%J<9X&T zeh_4@>nly1=#D0W=Bj&gaA^|+w+HS*^KF!lr`)1W^s&74K!LT;h-?u?;_U$1q+GNX zNBDR;y$;A%@9{Ej7pqe~Qf_jK{Ip2>)yxPUdei0Vga@lWqCNks{)Bno0Cx+C-b7gN zN{hwXRyZrOD0qQou1R^*;Qd2%Ejw=%7IQl}m|dJo%t~eGO2V`T&!K)~Q@$$`)6y)$ z@kzP{PmAS@2*$YSPRpnH$D2-Mb1da>`U>$%)`gKz5)yGI5X&A-H;aZj-5K}|EU|^K JUYa2pnZaB1jr9Nk literal 0 HcmV?d00001 diff --git a/src/fenrir-package/1ChangeTTY.wav b/src/fenrir-package/1ChangeTTY.wav new file mode 100644 index 0000000000000000000000000000000000000000..124e213c2f3781f5fd1a3eaaf1f3739172688d45 GIT binary patch literal 28880 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
Ex-5Df2|B%P$8HI35G`^mU$(PoniHh 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 literal 0 HcmV?d00001 diff --git a/src/fenrir-package/commands/onInput/70000-speak_incomming.py b/src/fenrir-package/commands/onInput/70000-speak_incomming.py index 60c5b33c..2d69cb9b 100644 --- a/src/fenrir-package/commands/onInput/70000-speak_incomming.py +++ b/src/fenrir-package/commands/onInput/70000-speak_incomming.py @@ -12,8 +12,10 @@ class command(): if environment['screenData']['newDelta'] == environment['screenData']['oldDelta'] and \ not ttyChanged: return environment - + if ttyChanged: + environment['runtime']['outputManager'].playSoundIcon(environment,'ChangeTTY') environment['runtime']['outputManager'].presentText(environment, environment['screenData']['newDelta'], ttyChanged) + return environment def setCallback(self, callback): pass diff --git a/src/fenrir-package/core/outputManager.py b/src/fenrir-package/core/outputManager.py index 0b52a26d..8f26b964 100644 --- a/src/fenrir-package/core/outputManager.py +++ b/src/fenrir-package/core/outputManager.py @@ -41,8 +41,9 @@ class outputManager(): if environment['runtime']['soundDriver'] == None: return print(soundIconName) + environment['runtime']['soundDriver'].playSoundFile( environment['soundIcons'][soundIconName], interrupt) try: print(environment['soundIcons'][soundIconName]) - environment['runtime']['soundDriver'].playSoundFile(environment, environment['soundIcons'][soundIconName], interrupt) + environment['runtime']['soundDriver'].playSoundFile(environment['soundIcons'][soundIconName], interrupt) except: - print('no icon there for' + IconName) + print('no icon there for' + soundIconName) diff --git a/src/fenrir-package/core/settingsManager.py b/src/fenrir-package/core/settingsManager.py index 0addeafb..543479ce 100644 --- a/src/fenrir-package/core/settingsManager.py +++ b/src/fenrir-package/core/settingsManager.py @@ -86,16 +86,20 @@ class settingsManager(): Values[1] = Values[1].replace("'","") Values[1] = Values[1].replace('"',"") validSoundIcon = False + FilePath = '' if os.path.exists(Values[1]): FilePath = Values[1] - validKeyString = True + validSoundIcon = True else: + if not soundIconPath.endswith("/"): + soundIconPath += '/' if os.path.exists(soundIconPath + Values[1]): FilePath = soundIconPath + Values[1] validSoundIcon = True if validSoundIcon: environment['soundIcons'][soundIcon] = FilePath siConfig.close() + print(environment['soundIcons']) return environment def loadSettings(self, environment, settingConfigPath='../../config/settings/settings.conf'): diff --git a/src/fenrir-package/sound.py b/src/fenrir-package/sound.py new file mode 100644 index 00000000..14e25704 --- /dev/null +++ b/src/fenrir-package/sound.py @@ -0,0 +1,9 @@ +#!/bin/python + +import time + +from sound.gstreamer import sound + +s = sound() +s.playSoundFile('/home/chrys/Projekte/fenrir/fenrir/src/fenrir-package/1ChangeTTY.opus') +time.sleep(10) diff --git a/src/fenrir-package/sound/gstreamer.py b/src/fenrir-package/sound/gstreamer.py index 93c3ac25..9e0cd93b 100644 --- a/src/fenrir-package/sound/gstreamer.py +++ b/src/fenrir-package/sound/gstreamer.py @@ -1,4 +1,5 @@ import gi +import time from gi.repository import GLib try: @@ -18,33 +19,37 @@ class sound: return self.init() + def _onPlayerMessage(self, bus, message): if message.type == Gst.MessageType.EOS: self._player.set_state(Gst.State.NULL) elif message.type == Gst.MessageType.ERROR: self._player.set_state(Gst.State.NULL) error, info = message.parse_error() - + print(error, info) + print('drin') def _onPipelineMessage(self, bus, message): if message.type == Gst.MessageType.EOS: self._pipeline.set_state(Gst.State.NULL) elif message.type == Gst.MessageType.ERROR: self._pipeline.set_state(Gst.State.NULL) error, info = message.parse_error() - + print(error, info) + print('drin') + def _onTimeout(self, element): element.set_state(Gst.State.NULL) return False def playSoundFile(self, fileName, interrupt=True): if interrupt: - self.stop() + self.cancel() self._player.set_property('uri', 'file://%s' % fileName) self._player.set_state(Gst.State.PLAYING) def playFrequence(self, frequence, duration, adjustVolume, interrupt=True): if interrupt: - self.stop() + self.cancel() self._source.set_property('volume', tone.volume) self._source.set_property('freq', tone.frequency) self._source.set_property('wave', tone.wave) @@ -89,7 +94,7 @@ class sound: global _gstreamerAvailable if not _gstreamerAvailable: return - self.stop() + self.cancel() self._initialized = False _gstreamerAvailable = False