threads!
This commit is contained in:
parent
aa33f331f0
commit
82b9cba976
|
@ -7,7 +7,7 @@ use libloading;
|
||||||
|
|
||||||
use super::ffi::*;
|
use super::ffi::*;
|
||||||
|
|
||||||
pub type Result<T> = std::result::Result<T, Box<dyn std::error::Error>>;
|
pub type Result<T> = std::result::Result<T, Box<dyn std::error::Error + Send + Sync>>;
|
||||||
|
|
||||||
pub struct LibretroApi {
|
pub struct LibretroApi {
|
||||||
_lib: libloading::Library, // for tying our lifetime to its own
|
_lib: libloading::Library, // for tying our lifetime to its own
|
||||||
|
|
|
@ -108,7 +108,7 @@ impl<D> TryFrom<(D, c_uint)> for InputDeviceId
|
||||||
where D: TryInto<DeviceType>,
|
where D: TryInto<DeviceType>,
|
||||||
<D as std::convert::TryInto<DeviceType>>::Error: std::error::Error + Send + Sync + 'static,
|
<D as std::convert::TryInto<DeviceType>>::Error: std::error::Error + Send + Sync + 'static,
|
||||||
{
|
{
|
||||||
type Error = Box<dyn std::error::Error>;
|
type Error = Box<dyn std::error::Error + Send + Sync>;
|
||||||
|
|
||||||
fn try_from(pair: (D, c_uint)) -> Result<Self, Self::Error> {
|
fn try_from(pair: (D, c_uint)) -> Result<Self, Self::Error> {
|
||||||
let (device, id) = pair;
|
let (device, id) = pair;
|
||||||
|
|
|
@ -40,13 +40,15 @@ pub struct RetroComponentBase {
|
||||||
_temp_dir: tempfile::TempDir,
|
_temp_dir: tempfile::TempDir,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsafe impl Send for RetroComponentBase {}
|
||||||
|
|
||||||
// TODO: replace with std::ops::ControlFlow when it becomes stable
|
// TODO: replace with std::ops::ControlFlow when it becomes stable
|
||||||
pub enum ControlFlow {
|
pub enum ControlFlow {
|
||||||
Continue,
|
Continue,
|
||||||
Break,
|
Break,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub type Result<T> = std::result::Result<T, Box<dyn std::error::Error>>;
|
pub type Result<T> = std::result::Result<T, Box<dyn std::error::Error + Send + Sync>>;
|
||||||
|
|
||||||
#[rustfmt::skip]
|
#[rustfmt::skip]
|
||||||
#[allow(unused_variables)]
|
#[allow(unused_variables)]
|
||||||
|
|
|
@ -61,7 +61,7 @@ impl RetroCallbacks for SimpleSdl2AudioComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl RetroComponent for SimpleSdl2AudioComponent {
|
impl RetroComponent for SimpleSdl2AudioComponent {
|
||||||
fn post_load_game(&mut self, retro: &mut LibretroWrapper, _rom: &Path) -> Result<(), Box<dyn Error>> {
|
fn post_load_game(&mut self, retro: &mut LibretroWrapper, _rom: &Path) -> Result<(), Box<dyn Error + Send + Sync>> {
|
||||||
self.src_freq = retro.get_system_av_info().timing.sample_rate;
|
self.src_freq = retro.get_system_av_info().timing.sample_rate;
|
||||||
self.queue.resume();
|
self.queue.resume();
|
||||||
self.started = false;
|
self.started = false;
|
||||||
|
@ -83,7 +83,7 @@ impl RetroComponent for SimpleSdl2AudioComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl SimpleSdl2AudioComponent {
|
impl SimpleSdl2AudioComponent {
|
||||||
pub fn new(sdl_context: &mut Sdl) -> Result<Self, Box<dyn std::error::Error>> {
|
pub fn new(sdl_context: &mut Sdl) -> Result<Self, Box<dyn std::error::Error + Send + Sync>> {
|
||||||
let audio = sdl_context.audio().unwrap();
|
let audio = sdl_context.audio().unwrap();
|
||||||
let desired_spec = AudioSpecDesired {
|
let desired_spec = AudioSpecDesired {
|
||||||
freq: None,
|
freq: None,
|
||||||
|
|
|
@ -33,7 +33,7 @@ impl RetroCallbacks for Sdl2RateControlledAudioComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl RetroComponent for Sdl2RateControlledAudioComponent {
|
impl RetroComponent for Sdl2RateControlledAudioComponent {
|
||||||
fn post_load_game(&mut self, _retro: &mut LibretroWrapper, _rom: &Path) -> Result<(), Box<dyn Error>> {
|
fn post_load_game(&mut self, _retro: &mut LibretroWrapper, _rom: &Path) -> Result<(), Box<dyn Error + Send + Sync>> {
|
||||||
self.queue.resume();
|
self.queue.resume();
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,7 +98,7 @@ impl RetroComponent for SimpleSdl2GamepadComponent {
|
||||||
ControlFlow::Continue
|
ControlFlow::Continue
|
||||||
}
|
}
|
||||||
|
|
||||||
fn post_load_game(&mut self, retro: &mut LibretroWrapper, _rom: &Path) -> Result<(), Box<dyn Error>> {
|
fn post_load_game(&mut self, retro: &mut LibretroWrapper, _rom: &Path) -> Result<(), Box<dyn Error + Send + Sync>> {
|
||||||
if let Some(device) = self.preferred_pad {
|
if let Some(device) = self.preferred_pad {
|
||||||
for port in 0..self.gamepads.len() as u32 {
|
for port in 0..self.gamepads.len() as u32 {
|
||||||
retro.set_controller_port_device(port, device);
|
retro.set_controller_port_device(port, device);
|
||||||
|
|
|
@ -28,7 +28,7 @@ pub struct SimpleSdl2OpenglComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl SimpleSdl2OpenglComponent {
|
impl SimpleSdl2OpenglComponent {
|
||||||
pub fn new(sdl_context: &mut Sdl, retro: &LibretroWrapper) -> Result<Self, Box<dyn std::error::Error>> {
|
pub fn new(sdl_context: &mut Sdl, retro: &LibretroWrapper) -> Result<Self, Box<dyn std::error::Error + Send + Sync>> {
|
||||||
let sys_info = retro.get_system_info();
|
let sys_info = retro.get_system_info();
|
||||||
let title = format!(
|
let title = format!(
|
||||||
"{} - ferretro SDL GL",
|
"{} - ferretro SDL GL",
|
||||||
|
|
|
@ -9,7 +9,7 @@ pub struct Sdl2SurfaceComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Sdl2SurfaceComponent {
|
impl Sdl2SurfaceComponent {
|
||||||
pub fn new() -> Result<Self, Box<dyn std::error::Error>> {
|
pub fn new() -> Result<Self, Box<dyn std::error::Error + Send + Sync>> {
|
||||||
let pixel_format = sdl2::pixels::PixelFormatEnum::ARGB1555;
|
let pixel_format = sdl2::pixels::PixelFormatEnum::ARGB1555;
|
||||||
|
|
||||||
// automatically replaced in video_refresh whenever size doesn't match
|
// automatically replaced in video_refresh whenever size doesn't match
|
||||||
|
|
Loading…
Reference in New Issue