Browse Source

Remove RefCell wrapping around cameras

pull/65/head
Steve Cook 2 years ago
parent
commit
a35a3e64df
  1. 10
      ctru-rs/examples/camera-image.rs
  2. 17
      ctru-rs/src/services/cam.rs

10
ctru-rs/examples/camera-image.rs

@ -28,9 +28,10 @@ fn main() { @@ -28,9 +28,10 @@ fn main() {
println!("Initializing camera");
let cam = Cam::init().expect("Failed to initialize CAM service.");
let mut cam = Cam::init().expect("Failed to initialize CAM service.");
let mut camera = cam.outer_right_cam.borrow_mut();
{
let camera = &mut cam.outer_right_cam;
camera
.set_size(CamSize::CTR_TOP_LCD)
@ -53,7 +54,7 @@ fn main() { @@ -53,7 +54,7 @@ fn main() {
camera
.set_trimming(false)
.expect("Failed to disable trimming");
}
let mut buf = vec![0u8; BUF_SIZE];
println!("\nPress R to take a new picture");
@ -71,6 +72,9 @@ fn main() { @@ -71,6 +72,9 @@ fn main() {
println!("Capturing new image");
cam.play_shutter_sound(CamShutterSoundType::NORMAL)
.expect("Failed to play shutter sound");
let camera = &mut cam.outer_right_cam;
buf = camera
.take_picture(
WIDTH.try_into().unwrap(),

17
ctru-rs/src/services/cam.rs

@ -1,15 +1,14 @@ @@ -1,15 +1,14 @@
use crate::services::gspgpu::FramebufferFormat;
use bitflags::bitflags;
use ctru_sys::Handle;
use std::cell::RefCell;
use std::time::Duration;
#[non_exhaustive]
pub struct Cam {
pub inner_cam: RefCell<InwardCam>,
pub outer_right_cam: RefCell<OutwardRightCam>,
pub outer_left_cam: RefCell<OutwardLeftCam>,
pub both_outer_cams: RefCell<BothOutwardCam>,
pub inner_cam: InwardCam,
pub outer_right_cam: OutwardRightCam,
pub outer_left_cam: OutwardLeftCam,
pub both_outer_cams: BothOutwardCam,
}
bitflags! {
@ -871,10 +870,10 @@ impl Cam { @@ -871,10 +870,10 @@ impl Cam {
Err(r.into())
} else {
Ok(Cam {
inner_cam: RefCell::new(InwardCam),
outer_right_cam: RefCell::new(OutwardRightCam),
outer_left_cam: RefCell::new(OutwardLeftCam),
both_outer_cams: RefCell::new(BothOutwardCam),
inner_cam: InwardCam,
outer_right_cam: OutwardRightCam,
outer_left_cam: OutwardLeftCam,
both_outer_cams: BothOutwardCam,
})
}
}

Loading…
Cancel
Save