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

209 Commits

Author SHA1 Message Date
mcb2003
aa47b12622 FFI: Generate C bindings by default, not C++
More portible, and the FFI is much more C-like.
2020-12-12 20:20:22 +00:00
mcb2003
f4c7adfe5a FFI: Allow getting and setting rate, and getting min, normal and max rate. 2020-12-12 20:04:48 +00:00
mcb2003
f71529d9b6 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-12 19:37:44 +00:00
mcb2003
ae6e64d973 FFI: Implement tts_stop() function. 2020-12-12 19:25:36 +00:00
mcb2003
98bfc10d41 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-12 19:15:58 +00:00
mcb2003
c0f9250099 FFI: Update documentation comments to match their Rust equivilents. 2020-12-12 17:06:58 +00:00
mcb2003
195ccbeb23 FFI: Allow determining TTS supported Features from C/C++ 2020-12-12 16:59:07 +00:00
mcb2003
7c5ceb2bd3 FFI: Add cbindgen config for generation of C/C++ headers. 2020-12-12 16:35:08 +00:00
mcb2003
56a2d554fa FFI: Implement tts_new(backend)
This required giving the Backends enum and Features struct a C
representation.
2020-12-12 16:32:53 +00:00
mcb2003
ab558cbbd2 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-12 01:47:10 +00:00
mcb2003
9471a2086a 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-12 01:18:59 +00:00
mcb2003
a3a871716f FFI: Create ffi Cargo feature and include ffi module. 2020-12-12 00:23:36 +00: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
728c409e25 Add example for unscientifically measuring latency of TTS. 2020-11-25 09:54:46 -06:00
669c94af36 We don't need autoplay. 2020-11-23 17:20:55 -06:00
fa2903606e Bump version. 2020-11-18 08:27:09 -06:00
9fb4f5e71e Refactor release job. 2020-11-17 16:47:46 -06:00
34db699972 Rename build to check. 2020-11-17 16:42:44 -06:00
80d51e1bff Fix cargo fmt CI failure. 2020-11-17 16:36:33 -06:00
f3705a1856 --target doesn't work here. 2020-11-17 16:28:28 -06:00
2f0ced4eaf Install components and integrate rustfmt checks. 2020-11-17 16:22:14 -06:00
d5f92565e5 Integrate Clippy. 2020-11-17 16:16:14 -06:00
3224cbdf5a We don't need iOS-specific builds since the macOS checks already handle this. 2020-11-17 16:10:20 -06:00
be96aacd7a Add --target. 2020-11-17 16:06:18 -06:00
d97796fff7 Eliminate a Clippy warning. 2020-11-17 16:03:03 -06:00
f37133841a Fix warnings. 2020-11-17 16:00:02 -06:00
3157162192 Use Rust actions to (hopefully) speed things up. 2020-11-17 15:50:22 -06:00
2c73c75e00 Use Matrix build. 2020-11-17 15:15:43 -06:00
b6ef11b60f Clean up release job. 2020-11-17 15:00:37 -06:00
10010f9bc9 Add caching to builds, and remove unneeded LLVM install. 2020-11-17 13:15:37 -06:00
3500e88117 Do we need LLVM for this? 2020-11-17 12:22:18 -06:00
1cbeab6ea9 Bump version. 2020-11-17 10:25:45 -06:00
590d6369fb Remove debugging printlns. 2020-11-17 10:25:21 -06:00
80fa5d4583 Bump version. 2020-11-11 10:29:49 -06:00
6a706f36ab Fix double-speaking bug for good, hopefully. 2020-11-11 10:27:03 -06:00
e1791c7046 Bump version. 2020-11-03 12:02:37 -06:00
031e0ff23f Fix more queuing issues under WinRT. 2020-11-03 12:02:16 -06:00
204cd50935 Change example to expose more WinRT breakage. 2020-11-03 11:51:40 -06:00
6b74afe503 Remove unused variable. 2020-11-03 11:24:09 -06:00
4e157b6fb5 Check examples when building. 2020-11-03 11:23:03 -06:00
df4adc81a7 Bump version. 2020-11-03 11:20:29 -06:00
289a35dc83 Don't double-speak previous item when not flushing queue. 2020-11-03 11:20:02 -06:00