From 7688644fe17b39ea3dc07d8e8c1b35d0fe3f7692 Mon Sep 17 00:00:00 2001 From: Andrea Ciliberti Date: Thu, 30 Mar 2023 18:21:52 +0200 Subject: [PATCH] CAM renaming/fixing with build problems --- ctru-rs/src/services/cam.rs | 258 ++++++++++++++++-------------------- ctru-rs/src/services/soc.rs | 2 +- 2 files changed, 118 insertions(+), 142 deletions(-) diff --git a/ctru-rs/src/services/cam.rs b/ctru-rs/src/services/cam.rs index 7f96ebd..4ce97c8 100644 --- a/ctru-rs/src/services/cam.rs +++ b/ctru-rs/src/services/cam.rs @@ -1,11 +1,10 @@ -//! CAM service +//! Camera service //! -//! The CAM service provides access to the cameras. Cameras can return 2D images -//! in the form of byte vectors which can be used for display or other usages. +//! The CAM service provides access to the cameras. Cameras can return images +//! in the form of byte vectors which can be displayed or used in other ways. use crate::error::{Error, ResultCode}; use crate::services::gspgpu::FramebufferFormat; -use bitflags::bitflags; use ctru_sys::Handle; use std::time::Duration; @@ -21,177 +20,154 @@ pub struct Cam { pub both_outer_cams: BothOutwardCam, } -bitflags! { - /// A set of flags to be passed to [Camera::flip_image] - #[derive(Default)] - pub struct CamFlip: u32 { - const NONE = ctru_sys::FLIP_NONE; - const HORIZONTAL = ctru_sys::FLIP_HORIZONTAL; - const VERTICAL = ctru_sys::FLIP_VERTICAL; - const REVERSE = ctru_sys::FLIP_REVERSE; - } +/// Flag to pass to [Camera::flip_image] +#[derive(Default)] +#[repr(u32)] +pub enum FlipMode { + None = ctru_sys::FLIP_NONE, + Horizontal = ctru_sys::FLIP_HORIZONTAL, + Vertical = ctru_sys::FLIP_VERTICAL, + Reverse = ctru_sys::FLIP_REVERSE, } -bitflags! { - /// A set of flags to be passed to [Camera::set_view_size] - #[derive(Default)] - pub struct CamSize: u32 { - const VGA = ctru_sys::SIZE_VGA; - const QVGA = ctru_sys::SIZE_QVGA; - const QQVGA = ctru_sys::SIZE_QQVGA; - const CIF = ctru_sys::SIZE_CIF; - const QCIF = ctru_sys::SIZE_QCIF; - const DS_LCD = ctru_sys::SIZE_DS_LCD; - const DS_LCD_X4 = ctru_sys::SIZE_DS_LCDx4; - const CTR_TOP_LCD = ctru_sys::SIZE_CTR_TOP_LCD; - const CTR_BOTTOM_LCD = ctru_sys::SIZE_CTR_BOTTOM_LCD; - } +/// Flag to pass to [Camera::set_view_size] +#[repr(u32)] +pub enum PictureSize { + Vga = ctru_sys::SIZE_VGA, + QVga = ctru_sys::SIZE_QVGA, + QQVga = ctru_sys::SIZE_QQVGA, + Cif = ctru_sys::SIZE_CIF, + QCif = ctru_sys::SIZE_QCIF, + DS = ctru_sys::SIZE_DS_LCD, + DSX4 = ctru_sys::SIZE_DS_LCDx4, + TopLCD = ctru_sys::SIZE_CTR_TOP_LCD, + BottomLCD = ctru_sys::SIZE_CTR_BOTTOM_LCD, } -bitflags! { - /// A set of flags to be passed to [Camera::set_frame_rate] - #[derive(Default)] - pub struct CamFrameRate: u32 { - const RATE_15 = ctru_sys::FRAME_RATE_15; - const RATE_15_TO_5 = ctru_sys::FRAME_RATE_15_TO_5; - const RATE_15_TO_2 = ctru_sys::FRAME_RATE_15_TO_2; - const RATE_10 = ctru_sys::FRAME_RATE_10; - const RATE_8_5 = ctru_sys::FRAME_RATE_8_5; - const RATE_5 = ctru_sys::FRAME_RATE_5; - const RATE_20 = ctru_sys::FRAME_RATE_20; - const RATE_20_TO_5 = ctru_sys::FRAME_RATE_20_TO_5; - const RATE_30 = ctru_sys::FRAME_RATE_30; - const RATE_30_TO_5 = ctru_sys::FRAME_RATE_30_TO_5; - const RATE_15_TO_10 = ctru_sys::FRAME_RATE_15_TO_10; - const RATE_20_TO_10 = ctru_sys::FRAME_RATE_20_TO_10; - const RATE_30_TO_10 = ctru_sys::FRAME_RATE_30_TO_10; - } +/// Flag to pass to [Camera::set_frame_rate] +#[repr(u32)] +pub enum FrameRate { + Fps15 = ctru_sys::FRAME_RATE_15, + Fps15To5 = ctru_sys::FRAME_RATE_15_TO_5, + Fps15To2 = ctru_sys::FRAME_RATE_15_TO_2, + Fps10 = ctru_sys::FRAME_RATE_10, + Fps8_5 = ctru_sys::FRAME_RATE_8_5, + Fps5 = ctru_sys::FRAME_RATE_5, + Fps20 = ctru_sys::FRAME_RATE_20, + Fps20To5 = ctru_sys::FRAME_RATE_20_TO_5, + Fps30 = ctru_sys::FRAME_RATE_30, + Fps30To5 = ctru_sys::FRAME_RATE_30_TO_5, + Fps15To10 = ctru_sys::FRAME_RATE_15_TO_10, + Fps20To10 = ctru_sys::FRAME_RATE_20_TO_10, + Fps30To10 = ctru_sys::FRAME_RATE_30_TO_10, } -bitflags! { - /// A set of flags to be passed to [Camera::set_white_balance] or - /// [Camera::set_white_balance_without_base_up] - #[derive(Default)] - pub struct CamWhiteBalance: u32 { - const AUTO = ctru_sys::WHITE_BALANCE_AUTO; - const BALANCE_3200K = ctru_sys::WHITE_BALANCE_3200K; - const BALANCE_4150K = ctru_sys::WHITE_BALANCE_4150K; - const BALANCE_5200K = ctru_sys::WHITE_BALANCE_5200K; - const BALANCE_6000K = ctru_sys::WHITE_BALANCE_6000K; - const BALANCE_7000K = ctru_sys::WHITE_BALANCE_7000K; - - const NORMAL = ctru_sys::WHITE_BALANCE_NORMAL; - const TUNGSTEN = ctru_sys::WHITE_BALANCE_TUNGSTEN; - const WHITE_FLUORESCENT_LIGHT = ctru_sys::WHITE_BALANCE_WHITE_FLUORESCENT_LIGHT; - const DAYLIGHT = ctru_sys::WHITE_BALANCE_DAYLIGHT; - const CLOUDY = ctru_sys::WHITE_BALANCE_CLOUDY; - const HORIZON = ctru_sys::WHITE_BALANCE_HORIZON; - const SHADE = ctru_sys::WHITE_BALANCE_SHADE; - } +/// Flag to pass to [Camera::set_white_balance] or +/// [Camera::set_white_balance_without_base_up] +#[repr(u32)] +pub enum WhiteBalance { + Auto = ctru_sys::WHITE_BALANCE_AUTO, + Type3200K = ctru_sys::WHITE_BALANCE_3200K, + Type4150K = ctru_sys::WHITE_BALANCE_4150K, + Type5200K = ctru_sys::WHITE_BALANCE_5200K, + Type6000K = ctru_sys::WHITE_BALANCE_6000K, + Type7000K = ctru_sys::WHITE_BALANCE_7000K, + + Normal = ctru_sys::WHITE_BALANCE_NORMAL, + Tungsten = ctru_sys::WHITE_BALANCE_TUNGSTEN, + FluorescentLight = ctru_sys::WHITE_BALANCE_WHITE_FLUORESCENT_LIGHT, + Daylight = ctru_sys::WHITE_BALANCE_DAYLIGHT, + Cloudy = ctru_sys::WHITE_BALANCE_CLOUDY, + Horizon = ctru_sys::WHITE_BALANCE_HORIZON, + Shade = ctru_sys::WHITE_BALANCE_SHADE, } -bitflags! { - /// A set of flags to be passed to [Camera::set_photo_mode] - #[derive(Default)] - pub struct CamPhotoMode: u32 { - const NORMAL = ctru_sys::PHOTO_MODE_NORMAL; - const PORTRAIT = ctru_sys::PHOTO_MODE_PORTRAIT; - const LANDSCAPE = ctru_sys::PHOTO_MODE_LANDSCAPE; - const NIGHTVIEW = ctru_sys::PHOTO_MODE_NIGHTVIEW; - const LETTER = ctru_sys::PHOTO_MODE_LETTER; - } +/// Flag to pass to [Camera::set_photo_mode] +#[repr(u32)] +pub enum PhotoMode { + Normal = ctru_sys::PHOTO_MODE_NORMAL, + Portrait = ctru_sys::PHOTO_MODE_PORTRAIT, + Landscape = ctru_sys::PHOTO_MODE_LANDSCAPE, + Nightview = ctru_sys::PHOTO_MODE_NIGHTVIEW, + Letter = ctru_sys::PHOTO_MODE_LETTER, } -bitflags! { - /// A set of flags to be passed to [Camera::set_effect] - #[derive(Default)] - pub struct CamEffect: u32 { - const NONE = ctru_sys::EFFECT_NONE; - const MONO = ctru_sys::EFFECT_MONO; - const SEPIA = ctru_sys::EFFECT_SEPIA; - const NEGATIVE = ctru_sys::EFFECT_NEGATIVE; - const NEGAFILM = ctru_sys::EFFECT_NEGAFILM; - const SEPIA01 = ctru_sys::EFFECT_SEPIA01; - } +/// Flag to pass to [Camera::set_effect] +#[repr(u32)] +pub enum Effect { + None = ctru_sys::EFFECT_NONE, + Mono = ctru_sys::EFFECT_MONO, + Sepia = ctru_sys::EFFECT_SEPIA, + Negative = ctru_sys::EFFECT_NEGATIVE, + Negafilm = ctru_sys::EFFECT_NEGAFILM, + Sepia01 = ctru_sys::EFFECT_SEPIA01, } -bitflags! { - /// A set of flags to be passed to [Camera::set_contrast] - #[derive(Default)] - pub struct CamContrast: u32 { - const PATTERN_01 = ctru_sys::CONTRAST_PATTERN_01; - const PATTERN_02 = ctru_sys::CONTRAST_PATTERN_02; - const PATTERN_03 = ctru_sys::CONTRAST_PATTERN_03; - const PATTERN_04 = ctru_sys::CONTRAST_PATTERN_04; - const PATTERN_05 = ctru_sys::CONTRAST_PATTERN_05; - const PATTERN_06 = ctru_sys::CONTRAST_PATTERN_06; - const PATTERN_07 = ctru_sys::CONTRAST_PATTERN_07; - const PATTERN_08 = ctru_sys::CONTRAST_PATTERN_08; - const PATTERN_09 = ctru_sys::CONTRAST_PATTERN_09; - const PATTERN_10 = ctru_sys::CONTRAST_PATTERN_10; - const PATTERN_11 = ctru_sys::CONTRAST_PATTERN_11; - - const LOW = ctru_sys::CONTRAST_LOW; - const NORMAL = ctru_sys::CONTRAST_NORMAL; - const HIGH = ctru_sys::CONTRAST_HIGH; - } +/// Flag to pass to [Camera::set_contrast] +#[repr(u32)] +pub enum Contrast { + Pattern01 = ctru_sys::CONTRAST_PATTERN_01, + Pattern02 = ctru_sys::CONTRAST_PATTERN_02, + Pattern03 = ctru_sys::CONTRAST_PATTERN_03, + Pattern04 = ctru_sys::CONTRAST_PATTERN_04, + Pattern05 = ctru_sys::CONTRAST_PATTERN_05, + Pattern06 = ctru_sys::CONTRAST_PATTERN_06, + Pattern07 = ctru_sys::CONTRAST_PATTERN_07, + Pattern08 = ctru_sys::CONTRAST_PATTERN_08, + Pattern09 = ctru_sys::CONTRAST_PATTERN_09, + Pattern10 = ctru_sys::CONTRAST_PATTERN_10, + Pattern11 = ctru_sys::CONTRAST_PATTERN_11, + + Low = ctru_sys::CONTRAST_LOW, + Normal = ctru_sys::CONTRAST_NORMAL, + High = ctru_sys::CONTRAST_HIGH, } -bitflags! { - /// A set of flags to be passed to [Camera::set_lens_correction] - #[derive(Default)] - pub struct CamLensCorrection: u32 { - const OFF = ctru_sys::LENS_CORRECTION_OFF; - const ON_70 = ctru_sys::LENS_CORRECTION_ON_70; - const ON_90 = ctru_sys::LENS_CORRECTION_ON_90; +/// Flag to pass to [Camera::set_lens_correction] +#[repr(u32)] +pub enum LensCorrection { + Off = ctru_sys::LENS_CORRECTION_DARK, + Normal = ctru_sys::LENS_CORRECTION_NORMAL, + Bright = ctru_sys::LENS_CORRECTION_BRIGHT, +} - const DARK = ctru_sys::LENS_CORRECTION_DARK; - const NORMAL = ctru_sys::LENS_CORRECTION_NORMAL; - const BRIGHT = ctru_sys::LENS_CORRECTION_BRIGHT; - } +/// Flag to pass to [Camera::set_output_format] +#[repr(u32)] +pub enum OutputFormat { + Yuv422 = ctru_sys::OUTPUT_YUV_422, + Rgb565 = ctru_sys::OUTPUT_RGB_565, } -bitflags! { - /// A set of flags to be passed to [Camera::set_output_format] - #[derive(Default)] - pub struct CamOutputFormat: u32 { - const YUV_422 = ctru_sys::OUTPUT_YUV_422; - const RGB_565 = ctru_sys::OUTPUT_RGB_565; - } +/// Flag to pass to [Cam::play_shutter_sound] +#[repr(u32)] +pub enum ShutterSound { + Normal = ctru_sys::SHUTTER_SOUND_TYPE_NORMAL, + Movie = ctru_sys::SHUTTER_SOUND_TYPE_MOVIE, + MovieEnd = ctru_sys::SHUTTER_SOUND_TYPE_MOVIE_END, } -impl TryFrom for CamOutputFormat { +impl TryFrom for OutputFormat { type Error = (); fn try_from(value: FramebufferFormat) -> Result { match value { - FramebufferFormat::Rgb565 => Ok(CamOutputFormat::RGB_565), + FramebufferFormat::Rgb565 => Ok(OutputFormat::RGB_565), _ => Err(()), } } } -impl TryFrom for FramebufferFormat { +impl TryFrom for FramebufferFormat { type Error = (); - fn try_from(value: CamOutputFormat) -> Result { + fn try_from(value: OutputFormat) -> Result { match value { - CamOutputFormat::RGB_565 => Ok(FramebufferFormat::Rgb565), + OutputFormat::Rgb565 => Ok(FramebufferFormat::Rgb565), _ => Err(()), } } } -bitflags! { - /// A set of flags to be passed to [Cam::play_shutter_sound] - #[derive(Default)] - pub struct CamShutterSoundType: u32 { - const NORMAL = ctru_sys::SHUTTER_SOUND_TYPE_NORMAL; - const MOVIE = ctru_sys::SHUTTER_SOUND_TYPE_MOVIE; - const MOVIE_END = ctru_sys::SHUTTER_SOUND_TYPE_MOVIE_END; - } -} - /// Struct containing coordinates passed to [Camera::set_trimming_params]. pub struct CamTrimmingParams { x_start: i16, @@ -806,8 +782,8 @@ impl Cam { } } - /// Plays the specified sound based on the [CamShutterSoundType] argument - pub fn play_shutter_sound(&self, sound: CamShutterSoundType) -> crate::Result<()> { + /// Plays the specified sound based on the [ShutterSound] argument + pub fn play_shutter_sound(&self, sound: ShutterSound) -> crate::Result<()> { unsafe { ResultCode(ctru_sys::CAMU_PlayShutterSound(sound.bits()))?; Ok(()) diff --git a/ctru-rs/src/services/soc.rs b/ctru-rs/src/services/soc.rs index 2b7ae7d..c5df066 100644 --- a/ctru-rs/src/services/soc.rs +++ b/ctru-rs/src/services/soc.rs @@ -9,7 +9,7 @@ use crate::services::ServiceReference; use crate::Error; /// Network socket service -/// +/// /// Initializing this service will enable the use of network sockets and utilities /// such as those found in `std::net`. The service will close once this struct gets dropped. pub struct Soc {