mirror of
https://github.com/servo/servo.git
synced 2025-08-05 05:30:08 +01:00
Fix libsimpleservo build after MediaSession C enums change
This commit is contained in:
parent
b01e3fdc7e
commit
58623a6f5b
4 changed files with 19 additions and 14 deletions
|
@ -134,7 +134,7 @@ pub trait HostTrait {
|
||||||
/// Called when we get the media session metadata/
|
/// Called when we get the media session metadata/
|
||||||
fn on_media_session_metadata(&self, title: String, artist: String, album: String);
|
fn on_media_session_metadata(&self, title: String, artist: String, album: String);
|
||||||
/// Called when the media session playback state changes.
|
/// Called when the media session playback state changes.
|
||||||
fn on_media_session_playback_state_change(&self, state: MediaSessionPlaybackState);
|
fn on_media_session_playback_state_change(&self, state: MediaSessionPlaybackState);
|
||||||
/// Called when the media session position state is set.
|
/// Called when the media session position state is set.
|
||||||
fn on_media_session_set_position_state(&self, duration: f64, position: f64, playback_rate: f64);
|
fn on_media_session_set_position_state(&self, duration: f64, position: f64, playback_rate: f64);
|
||||||
}
|
}
|
||||||
|
|
|
@ -219,7 +219,7 @@ pub struct CHostCallbacks {
|
||||||
pub set_clipboard_contents: extern "C" fn(contents: *const c_char),
|
pub set_clipboard_contents: extern "C" fn(contents: *const c_char),
|
||||||
pub on_media_session_metadata:
|
pub on_media_session_metadata:
|
||||||
extern "C" fn(title: *const c_char, album: *const c_char, artist: *const c_char),
|
extern "C" fn(title: *const c_char, album: *const c_char, artist: *const c_char),
|
||||||
pub on_media_session_playback_state_change: extern "C" fn(state: CMediaSessionPlaybackState),
|
pub on_media_session_playback_state_change: extern "C" fn(state: CMediaSessionPlaybackState),
|
||||||
pub on_media_session_set_position_state:
|
pub on_media_session_set_position_state:
|
||||||
extern "C" fn(duration: f64, position: f64, playback_rate: f64),
|
extern "C" fn(duration: f64, position: f64, playback_rate: f64),
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,9 @@ use jni::{errors, JNIEnv, JavaVM};
|
||||||
use libc::{dup2, pipe, read};
|
use libc::{dup2, pipe, read};
|
||||||
use log::Level;
|
use log::Level;
|
||||||
use simpleservo::{self, gl_glue, ServoGlue, SERVO};
|
use simpleservo::{self, gl_glue, ServoGlue, SERVO};
|
||||||
use simpleservo::{Coordinates, EventLoopWaker, HostTrait, InitOptions, VRInitOptions};
|
use simpleservo::{
|
||||||
|
Coordinates, EventLoopWaker, HostTrait, InitOptions, MediaSessionPlaybackState, VRInitOptions,
|
||||||
|
};
|
||||||
use std::os::raw::{c_char, c_int, c_void};
|
use std::os::raw::{c_char, c_int, c_void};
|
||||||
use std::ptr::{null, null_mut};
|
use std::ptr::{null, null_mut};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
@ -340,7 +342,7 @@ pub fn Java_org_mozilla_servoview_JNIServo_mediaSessionAction(
|
||||||
action: jint,
|
action: jint,
|
||||||
) {
|
) {
|
||||||
debug!("mediaSessionAction");
|
debug!("mediaSessionAction");
|
||||||
call(&env, |s| s.media_session_action(action as i32));
|
call(&env, |s| s.media_session_action((action as i32).into()));
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct WakeupCallback {
|
pub struct WakeupCallback {
|
||||||
|
@ -548,9 +550,10 @@ impl HostTrait for HostCallbacks {
|
||||||
.unwrap();
|
.unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
fn on_media_session_playback_state_change(&self, state: i32) {
|
fn on_media_session_playback_state_change(&self, state: MediaSessionPlaybackState) {
|
||||||
info!("on_media_session_playback_state_change {:?}", state);
|
info!("on_media_session_playback_state_change {:?}", state);
|
||||||
let env = self.jvm.get_env().unwrap();
|
let env = self.jvm.get_env().unwrap();
|
||||||
|
let state = state as i32;
|
||||||
let state = JValue::Int(state as jint);
|
let state = JValue::Int(state as jint);
|
||||||
env.call_method(
|
env.call_method(
|
||||||
self.callbacks.as_obj(),
|
self.callbacks.as_obj(),
|
||||||
|
|
|
@ -74,17 +74,19 @@ void BrowserPage::BindServoEvents() {
|
||||||
[=](hstring title, hstring artist, hstring album) {});
|
[=](hstring title, hstring artist, hstring album) {});
|
||||||
servoControl().OnMediaSessionPlaybackStateChange(
|
servoControl().OnMediaSessionPlaybackStateChange(
|
||||||
[=](const auto &, int state) {
|
[=](const auto &, int state) {
|
||||||
if (state == servo::PlaybackState::NONE) {
|
if (state == servo::Servo::MediaSessionPlaybackState::None) {
|
||||||
mediaControls().Visibility(Visibility::Collapsed);
|
mediaControls().Visibility(Visibility::Collapsed);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mediaControls().Visibility(Visibility::Visible);
|
mediaControls().Visibility(Visibility::Visible);
|
||||||
playButton().Visibility(state == servo::PlaybackState::PAUSED
|
playButton().Visibility(
|
||||||
? Visibility::Visible
|
state == servo::Servo::MediaSessionPlaybackState::Paused
|
||||||
: Visibility::Collapsed);
|
? Visibility::Visible
|
||||||
pauseButton().Visibility(state == servo::PlaybackState::PAUSED
|
: Visibility::Collapsed);
|
||||||
? Visibility::Collapsed
|
pauseButton().Visibility(
|
||||||
: Visibility::Visible);
|
state == servo::Servo::MediaSessionPlaybackState::Paused
|
||||||
|
? Visibility::Collapsed
|
||||||
|
: Visibility::Visible);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -163,13 +165,13 @@ void BrowserPage::OnMediaControlsPlayClicked(
|
||||||
Windows::Foundation::IInspectable const &,
|
Windows::Foundation::IInspectable const &,
|
||||||
Windows::UI::Xaml::RoutedEventArgs const &) {
|
Windows::UI::Xaml::RoutedEventArgs const &) {
|
||||||
servoControl().SendMediaSessionAction(
|
servoControl().SendMediaSessionAction(
|
||||||
static_cast<int32_t>(servo::MediaSessionAction::PLAY));
|
static_cast<int32_t>(servo::Servo::MediaSessionActionType::Play));
|
||||||
}
|
}
|
||||||
void BrowserPage::OnMediaControlsPauseClicked(
|
void BrowserPage::OnMediaControlsPauseClicked(
|
||||||
Windows::Foundation::IInspectable const &,
|
Windows::Foundation::IInspectable const &,
|
||||||
Windows::UI::Xaml::RoutedEventArgs const &) {
|
Windows::UI::Xaml::RoutedEventArgs const &) {
|
||||||
servoControl().SendMediaSessionAction(
|
servoControl().SendMediaSessionAction(
|
||||||
static_cast<int32_t>(servo::MediaSessionAction::PAUSE));
|
static_cast<int32_t>(servo::Servo::MediaSessionActionType::Pause));
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace winrt::ServoApp::implementation
|
} // namespace winrt::ServoApp::implementation
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue