1
0
mirror of https://github.com/ndarilek/tts-rs.git synced 2024-11-25 17:29:37 +00:00
Commit Graph

238 Commits

Author SHA1 Message Date
mcb2003
0905f6d6c6 FFI: Implement tts_stop() function. 2020-12-31 13:54:15 +00:00
mcb2003
05a065c6d3 FFI: Implement tts_speak()
The tts_speak() function has an additional parameter that, if not NULL,
will be filled with a pointer to an UtteranceId. If this is specified,
the caller must also call tts_free_utterance() to deallocate the
UtteranceId when they're done with it.
2020-12-31 13:54:15 +00:00
mcb2003
53f352e1a8 FFI: Update documentation comments to match their Rust equivilents. 2020-12-31 13:54:15 +00:00
mcb2003
f6546303f8 FFI: Allow determining TTS supported Features from C/C++ 2020-12-31 13:54:15 +00:00
mcb2003
3b1994ab36 FFI: Add cbindgen config for generation of C/C++ headers. 2020-12-31 13:54:15 +00:00
mcb2003
8e86afb444 FFI: Implement tts_new(backend)
This required giving the Backends enum and Features struct a C
representation.
2020-12-31 13:54:15 +00:00
mcb2003
5e7ab42f59 FFI: Implement tts_default() constructor and tts_free() destructor
* tts_default() allocates a new TTS struct via it's default() constructor, returning a pointer to it or NULL on error.
* tts_free(tts) destroys the TTS pointed to by tts. If tts is NULL, this
  function does nothing.
2020-12-31 13:54:15 +00:00
mcb2003
c5bbbfcfd7 FFI: Create error handling code and LAST_ERROR static
Any errors reported will cause the C API functions to return an error
value (NULL or -1). The caller can then use:

* const char* tts_get_error() to get a pointer to a string describing
  the error
* void tts_clear_error() to deallocate any currently stored error
message.
2020-12-31 13:54:15 +00:00
mcb2003
0ca3100a97 FFI: Create ffi Cargo feature and include ffi module. 2020-12-31 13:54:15 +00:00
3e1f5af61a Call rustup manually, since the action doesn't seem to work. 2020-12-30 14:50:36 -06:00
15b7b33ed3 Are these CSVs? 2020-12-30 14:31:27 -06:00
22cff2ddd1 Bump version. 2020-12-30 14:23:58 -06:00
06eb32b6d4 Make module imports more consistent. 2020-12-30 14:23:31 -06:00
69af3465b3 We don't need dylib on Android, and it breaks WinRT. Revert. 2020-12-30 14:21:32 -06:00
699d0d23e9 Add necessary targets. 2020-12-30 14:15:14 -06:00
7eb74729fc Use cargo-apk to test Android build. 2020-12-30 14:00:25 -06:00
d806c44c76 My brain hurts and I can't figure out how to set this CI action up right now. But it works, so release. 2020-12-30 13:09:29 -06:00
adfb2146ac Bump version. 2020-12-30 12:53:21 -06:00
914a7a1972 Make script executable. 2020-12-30 12:51:55 -06:00
cf39be85af Looks like the tool cache isn't supported or is failing. Comment out for now. 2020-12-30 12:43:15 -06:00
cee5777556 README/packaging tweaks for Android. 2020-12-30 12:41:28 -06:00
a01fd93502 Build Android example as part of CI. 2020-12-30 12:28:07 -06:00
8d6f40b1a5 Finish callback implementation. 2020-12-30 12:19:44 -06:00
0ea46b29b2 Partially implement callbacks. Unfinished due to lazy_static inconsistencies. 2020-12-30 11:37:46 -06:00
c92b67127c Support is_speaking. 2020-12-30 10:15:37 -06:00
733b17fe2c Log TTS initialization failures. 2020-12-30 10:10:49 -06:00
440154502b Clear some unused variable warnings. 2020-12-30 10:07:27 -06:00
2120de8756 Support pitch. 2020-12-30 10:06:18 -06:00
e1c2171833 Support stopping. 2020-12-30 09:49:13 -06:00
22ee9863d6 Return utterance IDs when speech succeeds. 2020-12-30 09:44:47 -06:00
5634fdb393 Block initialization until TTS finishes initializing from Android. 2020-12-30 09:24:13 -06:00
1ac0b91981 Add ugly hack to prove that speech works. 2020-12-29 19:25:56 -06:00
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
f58f875fdf Guess I don't need a global VM. 2020-12-29 15:48:18 -06:00
84926ea110 Store the TTS object in the struct. 2020-12-29 15:47:11 -06:00
da8260cba8 Store the TTS object in the struct. 2020-12-29 15:45:56 -06:00
965bea0adf TTS seems to initialize now. 2020-12-29 14:10:39 -06:00
fc20431916 Refactor Android example to full, self-contained app. 2020-12-29 11:15:24 -06:00
cb91760468 Set Android API versions, and add Makefile.toml convenience script for getting Android logs. 2020-12-28 05:39:20 -06:00
187cd71eeb Add Android example. 2020-12-27 10:42:41 -06:00
5849e340c9 Add initial Android stubs. 2020-12-27 09:41:34 -06:00
6d17447350 Remove unnecessary dependencies and bump versions. 2020-12-07 22:39:30 -06:00
22007fbf79 Bump version. 2020-12-07 21:46:46 -06:00
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
a905439d9c Add strategic backoff in WinRT backend to (hopefully) eliminate a deadlock. 2020-12-07 14:58:59 -06:00
49e8c0e5dc Bump version. 2020-12-03 13:31:09 -06:00
ad67682235 Implement Send and Sync for UtteranceId on most platforms. 2020-12-03 13:21:24 -06:00
184becfd1a Bump version. 2020-11-25 10:16:33 -06:00
0bdf0fcfd3 Account for macOS 11. 2020-11-25 10:13:17 -06:00
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