Commit Graph

229 Commits

Author SHA1 Message Date
Nolan Darilek 539003205e Appease Clippy. 2022-03-10 14:08:13 -06:00
Nolan Darilek 888e6a3dfa Correctly clean up callback references based on whether `Arc` remains cloned on drop. 2022-03-10 11:12:46 -06:00
Nolan Darilek 5944794980 Add `Arc<RwLock<...>>` for remaining platforms. 2022-03-07 18:31:25 -06:00
Nolan Darilek 31309553bb Ditto for Linux. 2022-03-07 17:56:28 -06:00
Nolan Darilek 00bd5e62ff Switch `TTS` to use `Arc<RwLock<Box<dyn Backend>>>` to address soundness issues. 2022-03-07 17:54:26 -06:00
Nolan Darilek 1e1c04d4e5 Fix rustfmt error. 2022-01-10 11:10:18 -06:00
Nolan Darilek dc00aa427f Bump speech-dispatcher dependency and update for new return types. 2022-01-10 11:02:12 -06:00
Nolan Darilek 9066d2b005 Make formatting more consistent. 2022-01-10 10:51:18 -06:00
Nolan Darilek 89708d9ef1
Merge pull request #16 from AlyoshaVasilieva:exit-loop
Exit Android initialization loop with error when stuck
2022-01-10 10:43:57 -06:00
Nolan Darilek e3f9ebe431
Merge pull request #18 from saona-raimundo:master
Implementing common traits
2022-01-10 10:34:49 -06:00
Raimundo Saona 114fb55fc9 Fixing macos and ios restrictions 2022-01-04 13:43:32 +01:00
Nolan Darilek 2ea472e196 Bump Windows dependency, crate version, and remove `Debug` derive. 2021-12-28 10:09:54 -06:00
Raimundo Saona 5331bc8daf Undo implementation of serde traits for Error 2021-12-23 11:12:35 +01:00
Raimundo Saona e20170583d Common traits for other structs 2021-12-22 15:38:11 +01:00
Raimundo Saona 9ed03753c2 Common traits for Features 2021-12-22 13:28:00 +01:00
Malloc Voidstar bed6cfa206
Exit Android initialization loop with error when stuck
500ms is fairly arbitrary; my emulator took 35 to run that loop.
2021-12-10 10:47:12 -08:00
Nolan Darilek 94417b5351 Only import from speech_dispatcher when building for Linux. 2021-11-19 09:25:37 -06:00
Nolan Darilek 47e164a0c8 Support Speech Dispatcher initialization failures, and bump version. 2021-11-19 09:22:05 -06:00
Nolan Darilek 119678ae55 Update to windows 0.27 and bump version. 2021-11-16 11:13:31 -06:00
Nolan Darilek 92538fbdb8 Upgrade windows-rs to 0.23. 2021-11-01 10:36:15 -05:00
Nolan Darilek c4038149a8 Remove a conditional that blocked playback in some circumstances on the WinRT backend. 2021-05-20 17:07:55 -05:00
Nolan Darilek ca7789f157 Bump version and Tolk dependency. 2021-05-20 13:59:02 -05:00
Nolan Darilek d85d56c3ee Bump version to work around Tolk crash. 2021-05-11 23:53:15 -05:00
Nolan Darilek 8f5f58028a Use attributes instead. 2021-05-11 20:18:14 -05:00
Nolan Darilek 4088eb12a1 Add ability to detect screen readers. Windows-only for now, and requires the `tolk` feature. 2021-05-11 19:37:56 -05:00
Nolan Darilek 1011704b82 And again, VSCode's find/replace didn't catch this. *grumble* 2021-03-31 11:12:42 -05:00
Nolan Darilek 6dbf9b7ddc Find/replace is failing me today. 2021-03-31 11:01:26 -05:00
Nolan Darilek 336c266ed4 Missed a few... 2021-03-31 10:53:08 -05:00
Nolan Darilek 57f91105ec s/TTS/Tts/ as per Clippy's acronym warnings. 2021-03-31 10:40:42 -05:00
Nolan Darilek ef96042b12 Bump Windows dependency and update accordingly. Also, fix an acronym Clippy warning. 2021-03-31 10:38:32 -05:00
Nolan Darilek fb7f1dddfc *sigh* Fix stupid M1/ARM casting issue. I hate Apple. 2021-03-15 14:02:05 -05:00
Nolan Darilek 50528ce2d1 Another comparison check fix. 2021-03-15 13:47:41 -05:00
Nolan Darilek 8c2aae7afd Try another initialization fix. 2021-03-15 13:46:22 -05:00
Nolan Darilek ed2d2e76c3 And this is what happens when I don't test on actual hardware. 2021-03-15 13:06:49 -05:00
Nolan Darilek 45255a8049 Fix another possibly broken comparison. 2021-03-15 13:04:38 -05:00
Nolan Darilek c65c0022d8 (Hopefully) initialize utterances correctly. 2021-03-15 13:03:41 -05:00
Nolan Darilek bd8e2ee20a Compare against ObjC NO to ensure correctness. 2021-03-15 13:02:51 -05:00
Nolan Darilek cdfb7ddb77 Even more bloody logging. 2021-03-12 06:59:49 -06:00
Nolan Darilek 290eb06d02 Even more trace logging. 2021-03-12 06:38:46 -06:00
Nolan Darilek e91637a67c Add even more trace logging. 2021-03-12 06:28:02 -06:00
Nolan Darilek 81eba99594 Add cast to (hopefully) get AppKit compiling on M1 macs. 2021-03-12 06:20:05 -06:00
Nolan Darilek 1f510120a5 Add trace logging in AVFoundation backend. 2021-03-12 05:58:30 -06:00
Nolan Darilek 1d075f7ece When speech is interrupted on AVFoundation, only stop if already speaking. May address a possible deadlock. 2021-03-12 05:50:08 -06:00
Nolan Darilek a22ee53727 Fix Clippy warnings. 2021-03-12 05:48:14 -06:00
Nolan Darilek c21d4a6a38 Eliminate separate winrt_bindings crate since it no longer seems necessary for fast builds. 2021-03-11 13:21:41 -06:00
Nolan Darilek 42879dfa1f Refactor to new windows crate. 2021-01-22 11:28:42 -06:00
Nolan Darilek 296fa89f5d Bump version, and use automatically-provided feature provided by optional tolk dependency. 2021-01-21 10:49:11 -06:00
Nolan Darilek 06eb32b6d4 Make module imports more consistent. 2020-12-30 14:23:31 -06:00
Nolan Darilek cee5777556 README/packaging tweaks for Android. 2020-12-30 12:41:28 -06:00
Nolan Darilek 8d6f40b1a5 Finish callback implementation. 2020-12-30 12:19:44 -06:00
Nolan Darilek 0ea46b29b2 Partially implement callbacks. Unfinished due to lazy_static inconsistencies. 2020-12-30 11:37:46 -06:00
Nolan Darilek c92b67127c Support is_speaking. 2020-12-30 10:15:37 -06:00
Nolan Darilek 733b17fe2c Log TTS initialization failures. 2020-12-30 10:10:49 -06:00
Nolan Darilek 440154502b Clear some unused variable warnings. 2020-12-30 10:07:27 -06:00
Nolan Darilek 2120de8756 Support pitch. 2020-12-30 10:06:18 -06:00
Nolan Darilek e1c2171833 Support stopping. 2020-12-30 09:49:13 -06:00
Nolan Darilek 22ee9863d6 Return utterance IDs when speech succeeds. 2020-12-30 09:44:47 -06:00
Nolan Darilek 5634fdb393 Block initialization until TTS finishes initializing from Android. 2020-12-30 09:24:13 -06:00
Nolan Darilek 1ac0b91981 Add ugly hack to prove that speech works. 2020-12-29 19:25:56 -06:00
Nolan Darilek 32f57d8578 Speak calls pass to Java, but don't work since something isn't bound to the engine. 2020-12-29 17:25:58 -06:00
Nolan Darilek f58f875fdf Guess I don't need a global VM. 2020-12-29 15:48:18 -06:00
Nolan Darilek 84926ea110 Store the TTS object in the struct. 2020-12-29 15:47:11 -06:00
Nolan Darilek da8260cba8 Store the TTS object in the struct. 2020-12-29 15:45:56 -06:00
Nolan Darilek 965bea0adf TTS seems to initialize now. 2020-12-29 14:10:39 -06:00
Nolan Darilek fc20431916 Refactor Android example to full, self-contained app. 2020-12-29 11:15:24 -06:00
Nolan Darilek 5849e340c9 Add initial Android stubs. 2020-12-27 09:41:34 -06:00
Nolan Darilek d8f2b3fb00 I'll do my own queuing, MediaPlaybackList is either the wrong tool for the job or way too buggy. 2020-12-07 21:35:07 -06:00
Nolan Darilek a905439d9c Add strategic backoff in WinRT backend to (hopefully) eliminate a deadlock. 2020-12-07 14:58:59 -06:00
Nolan Darilek ad67682235 Implement Send and Sync for UtteranceId on most platforms. 2020-12-03 13:21:24 -06:00
Nolan Darilek 0bdf0fcfd3 Account for macOS 11. 2020-11-25 10:13:17 -06:00
Nolan Darilek f4952ad132 UWP tweaks and optimizations.
* Initialized TTS `MediaPlayer` in real-time mode.
* Set media category to speech.
* More aggressively drop locks to prevent deadlocks.
* Remove checks of queued items that are no longer necessary.
* Made `is_speaking` check both media player state and queued item count.
* Return eagerly from `stop` if speech isn't in progress, thus eliminating more locks.
2020-11-25 10:07:28 -06:00
Nolan Darilek 669c94af36 We don't need autoplay. 2020-11-23 17:20:55 -06:00
Nolan Darilek d97796fff7 Eliminate a Clippy warning. 2020-11-17 16:03:03 -06:00
Nolan Darilek 590d6369fb Remove debugging printlns. 2020-11-17 10:25:21 -06:00
Nolan Darilek 6a706f36ab Fix double-speaking bug for good, hopefully. 2020-11-11 10:27:03 -06:00
Nolan Darilek 031e0ff23f Fix more queuing issues under WinRT. 2020-11-03 12:02:16 -06:00
Nolan Darilek 6b74afe503 Remove unused variable. 2020-11-03 11:24:09 -06:00
Nolan Darilek 289a35dc83 Don't double-speak previous item when not flushing queue. 2020-11-03 11:20:02 -06:00
Nolan Darilek 9c98026978 Don't re-initialize a player, just clear the item list. 2020-11-03 11:11:49 -06:00
Nolan Darilek d3e05b5a7a Revert "Pass TTS instance as first argument to utterance callbacks."
This appears to break callbacks, and is of limited utility.

This reverts commit 29c0a8463e.
2020-11-03 11:03:55 -06:00
Nolan Darilek 29c0a8463e Pass TTS instance as first argument to utterance callbacks. 2020-11-02 22:40:30 -06:00
Nolan Darilek cf0ad2221e Derive Debug. 2020-11-02 21:44:47 -06:00
Nolan Darilek 551bb1292e Make `TTS` clonable.
Also, add other possibly useful derives.
2020-11-02 21:27:13 -06:00
Nolan Darilek 565aa6d654 Fix issue where is_speaking always returns true under WinRT, and bump version. 2020-11-02 13:30:39 -06:00
Nolan Darilek 5feede0b8f Remove unnecessary debug logs. 2020-11-02 10:11:53 -06:00
Nolan Darilek 0bbda0a90f Remove WinRT code for handling paused player state, which caused issues with queued speech. 2020-10-30 10:23:24 -05:00
Nolan Darilek e66b8403aa Remove unnecessary full module names. 2020-10-14 03:54:53 -05:00
Nolan Darilek a281d74e5c Whitespace fix. 2020-10-14 03:51:08 -05:00
Nolan Darilek 51837a51bf Document feature. 2020-10-08 19:08:18 -05:00
Nolan Darilek fa216a534e Gate Tolk behind use_tolk feature to support compilation on UWP. 2020-10-08 19:07:07 -05:00
Nolan Darilek 88ec7db075 Eliminate accidental deadlock. 2020-10-08 09:44:46 -05:00
Nolan Darilek 0c13c43a77 Fix incorrect error code name. 2020-10-08 08:16:01 -05:00
Nolan Darilek 6f12974ce4 Implement stop callback on MacOS. 2020-10-08 08:07:33 -05:00
Nolan Darilek 8c783205c3 Implement utterance_stop callback on most platforms. 2020-10-08 07:56:45 -05:00
Nolan Darilek 174011bbb4 Make `UtteranceId` use `u64` on most platforms, and add additional derives. 2020-10-08 07:16:10 -05:00
François Caddet d2c42d97f5 the voices::Backend trait is almost stable 2020-09-28 11:18:54 +02:00
François Caddet 3294a82485 some fixes
now build on macOS
2020-09-27 20:35:40 +02:00
François Caddet e19eb56169 first implementation of a voice trait for macOS
WARN: not tested
2020-09-27 20:04:12 +02:00
François Caddet f7297e18fd add condition for macOS 11 and greater for default backend 2020-09-26 23:39:30 +02:00
François Caddet f78aed211f fix conflicts 2020-09-26 23:36:15 +02:00