mirror of
https://github.com/lightsoutgames/godot-tts
synced 2024-11-23 15:45:56 +00:00
Add Rust implementation of volume
This commit is contained in:
parent
8d95b3b5de
commit
2537d27886
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
|
@ -1,5 +1,5 @@
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.6-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
|
64
src/lib.rs
64
src/lib.rs
|
@ -61,6 +61,70 @@ impl TTS {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn register(builder: &ClassBuilder<Self>) {
|
fn register(builder: &ClassBuilder<Self>) {
|
||||||
|
builder
|
||||||
|
.add_property("volume")
|
||||||
|
.with_getter(|this: &TTS, _| match this.0.get_volume() {
|
||||||
|
Ok(volume) => volume,
|
||||||
|
_ => 0.,
|
||||||
|
})
|
||||||
|
.with_setter(|this: &mut TTS, _, v: f32| {
|
||||||
|
let Features {
|
||||||
|
volume: volume_supported,
|
||||||
|
..
|
||||||
|
} = this.0.supported_features();
|
||||||
|
if volume_supported {
|
||||||
|
let mut v = v;
|
||||||
|
if v < this.0.min_volume() {
|
||||||
|
v = this.0.min_volume();
|
||||||
|
} else if v > this.0.max_volume() {
|
||||||
|
v = this.0.max_volume();
|
||||||
|
}
|
||||||
|
this.0.set_volume(v).expect("Failed to set volume");
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.done();
|
||||||
|
builder
|
||||||
|
.add_property("min_volume")
|
||||||
|
.with_getter(|this: &TTS, _| {
|
||||||
|
let Features {
|
||||||
|
volume: volume_supported,
|
||||||
|
..
|
||||||
|
} = this.0.supported_features();
|
||||||
|
if volume_supported {
|
||||||
|
this.0.min_volume()
|
||||||
|
} else {
|
||||||
|
0.
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.done();
|
||||||
|
builder
|
||||||
|
.add_property("max_volume")
|
||||||
|
.with_getter(|this: &TTS, _| {
|
||||||
|
let Features {
|
||||||
|
volume: volume_supported,
|
||||||
|
..
|
||||||
|
} = this.0.supported_features();
|
||||||
|
if volume_supported {
|
||||||
|
this.0.max_volume()
|
||||||
|
} else {
|
||||||
|
0.
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.done();
|
||||||
|
builder
|
||||||
|
.add_property("normal_volume")
|
||||||
|
.with_getter(|this: &TTS, _| {
|
||||||
|
let Features {
|
||||||
|
volume: volume_supported,
|
||||||
|
..
|
||||||
|
} = this.0.supported_features();
|
||||||
|
if volume_supported {
|
||||||
|
this.0.normal_volume()
|
||||||
|
} else {
|
||||||
|
0.
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.done();
|
||||||
builder
|
builder
|
||||||
.add_property("rate")
|
.add_property("rate")
|
||||||
.with_getter(|this: &TTS, _| match this.0.get_rate() {
|
.with_getter(|this: &TTS, _| match this.0.get_rate() {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user