1
0
mirror of https://github.com/ndarilek/tts-rs.git synced 2024-09-28 09:09:43 +00:00
Commit Graph

272 Commits

Author SHA1 Message Date
mcb2003
0644f03f34 FFI: Automatically generate bindings when building with ffi feature. 2021-03-06 10:26:13 +00:00
mcb2003
060a057c0f FFI: Take only const pointers to TTS objects when we don't modify them. 2021-03-06 09:36:45 +00:00
mcb2003
9ab38f550f Merge branch 'master' into c-ffi 2021-03-06 08:59:25 +00:00
42879dfa1f Refactor to new windows crate. 2021-01-22 11:28:42 -06:00
296fa89f5d Bump version, and use automatically-provided feature provided by optional tolk dependency. 2021-01-21 10:49:11 -06:00
mcb2003
74a2be13a9 Merge branch 'c-ffi' of https://github.com/mcb2003/tts-rs into c-ffi 2020-12-31 15:35:25 +00:00
mcb2003
bab977c0ea FFI:: Fix spelling error in doc comments. 2020-12-31 15:31:46 +00:00
mcb2003
078cf83a13 FFI::: Add gen-c-bindings cargo-make target
This currently always saves the bindings to target/release.
2020-12-31 15:31:13 +00:00
mcb2003
af55101824 FFI: Add #ifdef for Android and don't generate declarations for Java
bindings.
2020-12-31 15:15:22 +00:00
mcb2003
a868aa670a FFI: Add module level doc comment. 2020-12-31 13:54:15 +00:00
mcb2003
1a49a8dac1 FFI: Make cbindgen generate extern C block for C++, use qualified screaming snake case for enum variants. 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
6df1fe7f0e FFI: Generate C bindings by default, not C++
More portible, and the FFI is much more C-like.
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
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