From 8b35effd3cd14843bb4d26f3566741d53fe97b76 Mon Sep 17 00:00:00 2001 From: Vivian Lim Date: Sat, 6 Feb 2021 19:34:51 -0800 Subject: Support libctru 2.0 --- ctru-rs/src/applets/swkbd.rs | 5 +++-- ctru-rs/src/console.rs | 2 +- ctru-rs/src/sdmc.rs | 4 ++-- ctru-rs/src/services/gspgpu.rs | 6 +++--- ctru-rs/src/thread.rs | 3 ++- 5 files changed, 11 insertions(+), 9 deletions(-) (limited to 'ctru-rs') diff --git a/ctru-rs/src/applets/swkbd.rs b/ctru-rs/src/applets/swkbd.rs index 1c14cab..5091539 100644 --- a/ctru-rs/src/applets/swkbd.rs +++ b/ctru-rs/src/applets/swkbd.rs @@ -1,6 +1,7 @@ use std::iter::once; use std::mem; use std::str; +use std::convert::TryInto; use libctru::{self, SwkbdState, swkbdInit, swkbdSetFeatures, swkbdSetHintText, swkbdInputText, swkbdSetButton}; @@ -90,7 +91,7 @@ impl Swkbd { /// (from 1-3). pub fn init(keyboard_type: Kind, num_buttons: i32) -> Self { unsafe { - let mut state = Box::new(mem::uninitialized::()); + let mut state = Box::new(SwkbdState::default()); swkbdInit(state.as_mut(), keyboard_type as u32, num_buttons, -1); Swkbd { state } } @@ -127,7 +128,7 @@ impl Swkbd { /// the output will be truncated but should still be well-formed UTF-8 pub fn get_bytes(&mut self, buf: &mut [u8]) -> Result { unsafe { - match swkbdInputText(self.state.as_mut(), buf.as_mut_ptr(), buf.len()) { + match swkbdInputText(self.state.as_mut(), buf.as_mut_ptr(), buf.len().try_into().unwrap()) { libctru::SWKBD_BUTTON_NONE => Err(self.parse_swkbd_error()), libctru::SWKBD_BUTTON_LEFT => Ok(Button::Left), libctru::SWKBD_BUTTON_MIDDLE => Ok(Button::Middle), diff --git a/ctru-rs/src/console.rs b/ctru-rs/src/console.rs index d1a22e6..eb8df6b 100644 --- a/ctru-rs/src/console.rs +++ b/ctru-rs/src/console.rs @@ -15,7 +15,7 @@ impl Console { /// printing. pub fn init(screen: Screen) -> Self { unsafe { - let mut context = Box::new(mem::uninitialized::()); + let mut context = Box::new(PrintConsole::default()); consoleInit(screen.into(), context.as_mut()); Console { context, } } diff --git a/ctru-rs/src/sdmc.rs b/ctru-rs/src/sdmc.rs index 6c435f1..de08a9a 100644 --- a/ctru-rs/src/sdmc.rs +++ b/ctru-rs/src/sdmc.rs @@ -3,7 +3,7 @@ pub struct Sdmc(()); impl Sdmc { pub fn init() -> ::Result { unsafe { - let r = ::libctru::sdmcInit(); + let r = ::libctru::archiveMountSdmc(); if r < 0 { Err(r.into()) } else { @@ -15,6 +15,6 @@ impl Sdmc { impl Drop for Sdmc { fn drop(&mut self) { - unsafe { ::libctru::sdmcExit() }; + unsafe { ::libctru::archiveUnmountAll() }; } } diff --git a/ctru-rs/src/services/gspgpu.rs b/ctru-rs/src/services/gspgpu.rs index b047493..e1fa12d 100644 --- a/ctru-rs/src/services/gspgpu.rs +++ b/ctru-rs/src/services/gspgpu.rs @@ -51,8 +51,8 @@ pub fn wait_for_event(ev: Event, discard_current: bool) { } } -impl From<::libctru::GSPGPU_FramebufferFormats> for FramebufferFormat { - fn from(g: ::libctru::GSPGPU_FramebufferFormats) -> Self { +impl From<::libctru::GSPGPU_FramebufferFormat> for FramebufferFormat { + fn from(g: ::libctru::GSPGPU_FramebufferFormat) -> Self { use self::FramebufferFormat::*; match g { ::libctru::GSP_RGBA8_OES => Rgba8, @@ -65,7 +65,7 @@ impl From<::libctru::GSPGPU_FramebufferFormats> for FramebufferFormat { } } -impl From for ::libctru::GSPGPU_FramebufferFormats { +impl From for ::libctru::GSPGPU_FramebufferFormat { fn from(g: FramebufferFormat) -> Self { use self::FramebufferFormat::*; match g { diff --git a/ctru-rs/src/thread.rs b/ctru-rs/src/thread.rs index a194a3e..481e559 100644 --- a/ctru-rs/src/thread.rs +++ b/ctru-rs/src/thread.rs @@ -892,6 +892,7 @@ mod imp { use std::mem; use std::ptr; use std::time::Duration; + use std::convert::TryInto; use libc; @@ -920,7 +921,7 @@ mod imp { let handle = threadCreate( Some(thread_func), &*p as *const _ as *mut _, - stack_size, + stack_size.try_into().unwrap(), priority, affinity, false, -- cgit v1.2.3