mcb2003
a868aa670a
FFI: Add module level doc comment.
2020-12-31 13:54:15 +00:00
mcb2003
989b6bb310
FFI: Implement tts_is_speaking() function.
2020-12-31 13:54:15 +00:00
mcb2003
0ffa4c6afe
FFI: Allow getting and setting volume, and getting min, normal and max volume.
2020-12-31 13:54:15 +00:00
mcb2003
32c9327f5c
FFI: Allow getting and setting pitch, and getting min, normal and max pitch.
2020-12-31 13:54:15 +00:00
mcb2003
cf35c19c57
FFI: Allow getting and setting rate, and getting min, normal and max rate.
2020-12-31 13:54:15 +00:00
mcb2003
729ece9a07
FFI: Make all functions with unsafe blocks completely unsafe.
...
This is better than using unsafe blocks inside the functions, as that
tells the compiler that the unsafeness won't leak out of the block,
which isn't true in this case as we're dealing with another unsafe
language.
2020-12-31 13:54:15 +00:00
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
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
06eb32b6d4
Make module imports more consistent.
2020-12-30 14:23:31 -06:00
cee5777556
README/packaging tweaks for Android.
2020-12-30 12:41:28 -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
5849e340c9
Add initial Android stubs.
2020-12-27 09:41:34 -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
ad67682235
Implement Send and Sync for UtteranceId on most platforms.
2020-12-03 13:21:24 -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
669c94af36
We don't need autoplay.
2020-11-23 17:20:55 -06:00
d97796fff7
Eliminate a Clippy warning.
2020-11-17 16:03:03 -06:00
590d6369fb
Remove debugging printlns.
2020-11-17 10:25:21 -06:00
6a706f36ab
Fix double-speaking bug for good, hopefully.
2020-11-11 10:27:03 -06:00
031e0ff23f
Fix more queuing issues under WinRT.
2020-11-03 12:02:16 -06:00
6b74afe503
Remove unused variable.
2020-11-03 11:24:09 -06:00
289a35dc83
Don't double-speak previous item when not flushing queue.
2020-11-03 11:20:02 -06:00
9c98026978
Don't re-initialize a player, just clear the item list.
2020-11-03 11:11:49 -06:00
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
29c0a8463e
Pass TTS instance as first argument to utterance callbacks.
2020-11-02 22:40:30 -06:00
cf0ad2221e
Derive Debug.
2020-11-02 21:44:47 -06:00
551bb1292e
Make TTS
clonable.
...
Also, add other possibly useful derives.
2020-11-02 21:27:13 -06:00