This commit is contained in:
@@ -51,3 +51,27 @@ pub(crate) async fn set_voice<R: Runtime>(app: AppHandle<R>, payload: SetVoiceAr
|
||||
pub(crate) async fn get_all_voices<R: Runtime>(app: AppHandle<R>) -> Result<GetVoicesResponse> {
|
||||
app.native_tts().get_all_voices()
|
||||
}
|
||||
|
||||
#[command]
|
||||
pub(crate) async fn set_media_session_active<R: Runtime>(
|
||||
app: AppHandle<R>,
|
||||
payload: SetMediaSessionActiveRequest,
|
||||
) -> Result<()> {
|
||||
app.native_tts().set_media_session_active(payload)
|
||||
}
|
||||
|
||||
#[command]
|
||||
pub(crate) async fn update_media_session_state<R: Runtime>(
|
||||
app: AppHandle<R>,
|
||||
payload: UpdateMediaSessionStateRequest,
|
||||
) -> Result<()> {
|
||||
app.native_tts().update_media_session_state(payload)
|
||||
}
|
||||
|
||||
#[command]
|
||||
pub(crate) async fn update_media_session_metadata<R: Runtime>(
|
||||
app: AppHandle<R>,
|
||||
payload: UpdateMediaSessionMetadataRequest,
|
||||
) -> Result<()> {
|
||||
app.native_tts().update_media_session_metadata(payload)
|
||||
}
|
||||
|
||||
@@ -41,4 +41,22 @@ impl<R: Runtime> NativeTts<R> {
|
||||
pub fn get_all_voices(&self) -> crate::Result<GetVoicesResponse> {
|
||||
Err(crate::Error::UnsupportedPlatformError)
|
||||
}
|
||||
pub fn set_media_session_active(
|
||||
&self,
|
||||
_payload: SetMediaSessionActiveRequest,
|
||||
) -> crate::Result<()> {
|
||||
Err(crate::Error::UnsupportedPlatformError)
|
||||
}
|
||||
pub fn update_media_session_state(
|
||||
&self,
|
||||
_payload: UpdateMediaSessionStateRequest,
|
||||
) -> crate::Result<()> {
|
||||
Err(crate::Error::UnsupportedPlatformError)
|
||||
}
|
||||
pub fn update_media_session_metadata(
|
||||
&self,
|
||||
_payload: UpdateMediaSessionMetadataRequest,
|
||||
) -> crate::Result<()> {
|
||||
Err(crate::Error::UnsupportedPlatformError)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,6 +45,9 @@ pub fn init<R: Runtime>() -> TauriPlugin<R> {
|
||||
commands::set_pitch,
|
||||
commands::set_voice,
|
||||
commands::get_all_voices,
|
||||
commands::set_media_session_active,
|
||||
commands::update_media_session_state,
|
||||
commands::update_media_session_metadata,
|
||||
])
|
||||
.setup(|app, api| {
|
||||
#[cfg(mobile)]
|
||||
|
||||
@@ -87,3 +87,36 @@ impl<R: Runtime> NativeTts<R> {
|
||||
.map_err(Into::into)
|
||||
}
|
||||
}
|
||||
|
||||
impl<R: Runtime> NativeTts<R> {
|
||||
pub fn set_media_session_active(
|
||||
&self,
|
||||
payload: SetMediaSessionActiveRequest,
|
||||
) -> crate::Result<()> {
|
||||
self.0
|
||||
.run_mobile_plugin("set_media_session_active", payload)
|
||||
.map_err(Into::into)
|
||||
}
|
||||
}
|
||||
|
||||
impl<R: Runtime> NativeTts<R> {
|
||||
pub fn update_media_session_state(
|
||||
&self,
|
||||
payload: UpdateMediaSessionStateRequest,
|
||||
) -> crate::Result<()> {
|
||||
self.0
|
||||
.run_mobile_plugin("update_media_session_state", payload)
|
||||
.map_err(Into::into)
|
||||
}
|
||||
}
|
||||
|
||||
impl<R: Runtime> NativeTts<R> {
|
||||
pub fn update_media_session_metadata(
|
||||
&self,
|
||||
payload: UpdateMediaSessionMetadataRequest,
|
||||
) -> crate::Result<()> {
|
||||
self.0
|
||||
.run_mobile_plugin("update_media_session_metadata", payload)
|
||||
.map_err(Into::into)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,3 +61,26 @@ pub struct SetVoiceArgs {
|
||||
pub struct GetVoicesResponse {
|
||||
pub voices: Vec<TTSVoice>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct SetMediaSessionActiveRequest {
|
||||
pub active: bool,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct UpdateMediaSessionStateRequest {
|
||||
pub playing: bool,
|
||||
pub position: Option<f64>,
|
||||
pub duration: Option<f64>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize)]
|
||||
#[serde(rename_all = "camelCase")]
|
||||
pub struct UpdateMediaSessionMetadataRequest {
|
||||
pub title: Option<String>,
|
||||
pub artist: Option<String>,
|
||||
pub album: Option<String>,
|
||||
pub artwork: Option<String>,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user