From 3125ae8339b1745eb9cb13ca22da7c5deaf2976a Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 18 Nov 2020 11:19:29 +0530 Subject: [PATCH] Get simple speak working on windows as well --- src/calibre/gui2/tts/implementation.py | 2 +- src/calibre/gui2/tts/windows.py | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 src/calibre/gui2/tts/windows.py diff --git a/src/calibre/gui2/tts/implementation.py b/src/calibre/gui2/tts/implementation.py index 23de156f74..7f8c3ffe36 100644 --- a/src/calibre/gui2/tts/implementation.py +++ b/src/calibre/gui2/tts/implementation.py @@ -5,7 +5,7 @@ from calibre.constants import iswindows, ismacos if iswindows: - pass + from .windows import Client elif ismacos: pass else: diff --git a/src/calibre/gui2/tts/windows.py b/src/calibre/gui2/tts/windows.py new file mode 100644 index 0000000000..73310a49dd --- /dev/null +++ b/src/calibre/gui2/tts/windows.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +# License: GPL v3 Copyright: 2020, Kovid Goyal + + +class Client: + + def __init__(self): + from calibre.utils.windows.winsapi import ISpVoice + self.sp_voice = ISpVoice() + + def __del__(self): + self.sp_voice = None + + def speak_simple_text(self, text): + from calibre_extensions.winsapi import SPF_ASYNC, SPF_PURGEBEFORESPEAK, SPF_IS_NOT_XML + self.sp_voice.speak(text, SPF_ASYNC | SPF_PURGEBEFORESPEAK | SPF_IS_NOT_XML)