diff --git a/config/settings/espeak.settings.conf b/config/settings/espeak.settings.conf index 76ea1f1a..593241ad 100644 --- a/config/settings/espeak.settings.conf +++ b/config/settings/espeak.settings.conf @@ -129,3 +129,8 @@ delaySec=0 # present time after to given minutes example every 15 minutes: 00,15,30,45 # if delaySec is >0 onMinutes is ignored onMinutes=00,30 +# announce via soundicon +announce=True +# interrupt current speech for time announcement +interrupt=False + diff --git a/config/settings/settings.conf b/config/settings/settings.conf index eb8146df..6d285f9f 100644 --- a/config/settings/settings.conf +++ b/config/settings/settings.conf @@ -125,7 +125,7 @@ list= [time] # automatic time anouncement -enabled=False +enabled=True # present time presentTime=True # present date (on change) @@ -135,3 +135,7 @@ delaySec=0 # present time after to given minutes example every 15 minutes: 00,15,30,45 # if delaySec is >0 onMinutes is ignored onMinutes=00,30 +# announce via soundicon (not interrupting) +announce=True +# interrupt current speech for time announcement +interrupt=False diff --git a/config/settings/settings.conf.chrys b/config/settings/settings.conf.chrys index e348d363..ad61c76f 100644 --- a/config/settings/settings.conf.chrys +++ b/config/settings/settings.conf.chrys @@ -135,3 +135,7 @@ delaySec=0 # present time after to given minutes example every 15 minutes: 00,15,30,45 # if delaySec is >0 onMinutes is ignored onMinutes=00,30 +# announce via soundicon +announce=True +# interrupt current speech for time announcement +interrupt=False diff --git a/config/settings/settings.conf.storm b/config/settings/settings.conf.storm index 2714b2c2..864d672a 100644 --- a/config/settings/settings.conf.storm +++ b/config/settings/settings.conf.storm @@ -85,3 +85,7 @@ delaySec=0 # present time after to given minutes example every 15 minutes: 00,15,30,45 # if delaySec is >0 onMinutes is ignored onMinutes=00,30 +# announce via soundicon +announce=True +# interrupt current speech for time announcement +interrupt=False diff --git a/config/sound/default-wav/announce.wav b/config/sound/default-wav/announce.wav deleted file mode 100644 index f817467e..00000000 Binary files a/config/sound/default-wav/announce.wav and /dev/null differ diff --git a/config/sound/default-wav/soundicons.conf b/config/sound/default-wav/soundicons.conf index 4e34285a..8f6bba93 100644 --- a/config/sound/default-wav/soundicons.conf +++ b/config/sound/default-wav/soundicons.conf @@ -48,3 +48,5 @@ PromotedText='PromotedText.wav' mispell='mispell.wav' # the for capital letter capital='Caps.wav' +# general announcement +announce="Announce.wav" diff --git a/config/sound/default/announce.opus b/config/sound/default/announce.opus deleted file mode 100644 index 0eea2d5f..00000000 Binary files a/config/sound/default/announce.opus and /dev/null differ diff --git a/config/sound/default/soundicons.conf b/config/sound/default/soundicons.conf index 53a4068e..3b11a371 100644 --- a/config/sound/default/soundicons.conf +++ b/config/sound/default/soundicons.conf @@ -48,3 +48,5 @@ PromotedText='PromotedText.opus' mispell='mispell.opus' # the for capital letter capital='Caps.opus' +# general announcement +announce="Announce.opus" diff --git a/config/sound/template/soundicons.conf b/config/sound/template/soundicons.conf index fadbbb0b..56242933 100644 --- a/config/sound/template/soundicons.conf +++ b/config/sound/template/soundicons.conf @@ -48,3 +48,5 @@ PromotedText='' mispell='' # the for capital letter: capital='' +# general announcement +announce="" diff --git a/src/fenrir/commands/onScreenUpdate/76000-time.py b/src/fenrir/commands/onScreenUpdate/76000-time.py index 20b2062d..4e9306df 100644 --- a/src/fenrir/commands/onScreenUpdate/76000-time.py +++ b/src/fenrir/commands/onScreenUpdate/76000-time.py @@ -44,18 +44,28 @@ class command(): if now.hour == self.lastTime.hour: if now.minute == self.lastTime.minute: return - + dateFormat = self.env['runtime']['settingsManager'].getSetting('general', 'dateFormat') + dateString = datetime.datetime.strftime(now, dateFormat) + + presentDate = self.env['runtime']['settingsManager'].getSettingAsBool('time', 'presentDate') and \ + self.lastDateString != dateString + presentTime = self.env['runtime']['settingsManager'].getSettingAsBool('time', 'presentTime') + # no changed value to announce + if not (presentDate or presentTime): + return timeFormat = self.env['runtime']['settingsManager'].getSetting('general', 'timeFormat') timeString = datetime.datetime.strftime(now, timeFormat) - dateFormat = self.env['runtime']['settingsManager'].getSetting('general', 'dateFormat') - dateString = datetime.datetime.strftime(now, dateFormat) - if self.env['runtime']['settingsManager'].getSettingAsBool('time', 'presentTime'): + if self.env['runtime']['settingsManager'].getSettingAsBool('time', 'interrupt'): + self.env['runtime']['outputManager'].interruptOutput() + if self.env['runtime']['settingsManager'].getSettingAsBool('time', 'announce'): + self.env['runtime']['outputManager'].playSoundIcon('announce') + + if presentTime: # present the time self.env['runtime']['outputManager'].presentText('Autotime: ' + timeString , soundIcon='', interrupt=False) # and date if changes - if self.env['runtime']['settingsManager'].getSettingAsBool('time', 'presentDate'): - if self.lastDateString != dateString: + if presentDate: self.env['runtime']['outputManager'].presentText(dateString , soundIcon='', interrupt=False) self.lastDateString = dateString self.lastTime = datetime.datetime.now() diff --git a/src/fenrir/core/settings.py b/src/fenrir/core/settings.py index c21aca01..d456dc05 100644 --- a/src/fenrir/core/settings.py +++ b/src/fenrir/core/settings.py @@ -70,6 +70,8 @@ settings = { 'presentDate': True, 'delaySec': 0, 'onMinutes': '00,30', + 'announce': True, + 'interrupt': False, }, 'keyboard':{ 'driver': 'evdev',