/*---------------------------------------------------------------------------* Project: Horizon File: camera_Camera.h Copyright (C)2009 Nintendo Co., Ltd. All rights reserved. These coded instructions, statements, and computer programs contain proprietary information of Nintendo of America Inc. and/or Nintendo Company Ltd., and are protected by Federal copyright law. They may not be disclosed to third parties or copied or duplicated in any form, in whole or in part, without the prior written consent of Nintendo. $Rev: 36157 $ *---------------------------------------------------------------------------*/ // // Do not edit this file. // This file is automatically generated. // #ifndef NN_CAMERA_CTR_CAMERA_CAMERA_H_ #define NN_CAMERA_CTR_CAMERA_CAMERA_H_ #include #include #include #include #include namespace nn { namespace camera { namespace CTR { namespace detail { class Camera { public: enum Tag { TAG_IPC_ERROR, TAG_START_CAPTURE = 0x0001, TAG_STOP_CAPTURE = 0x0002, TAG_IS_BUSY = 0x0003, TAG_CLEAR_BUFFER = 0x0004, TAG_GET_VSYNC_INTERRUPT_EVENT = 0x0005, TAG_GET_BUFFER_ERROR_INTERRUPT_EVENT = 0x0006, TAG_SET_RECEIVING = 0x0007, TAG_IS_FINISHED_RECEIVING = 0x0008, TAG_SET_TRANSFER_LINES = 0x0009, TAG_GET_MAX_LINES = 0x000a, TAG_SET_TRANSFER_BYTES = 0x000b, TAG_GET_TRANSFER_BYTES = 0x000c, TAG_GET_MAX_BYTES = 0x000d, TAG_SET_TRIMMING = 0x000e, TAG_IS_TRIMMING = 0x000f, TAG_SET_TRIMMING_PARAMS = 0x0010, TAG_GET_TRIMMING_PARAMS = 0x0011, TAG_SET_TRIMMING_PARAMS_CENTER = 0x0012, TAG_ACTIVATE = 0x0013, TAG_SWITCH_CONTEXT = 0x0014, TAG_SET_EXPOSURE = 0x0015, TAG_SET_WHITE_BALANCE = 0x0016, TAG_SET_WHITE_BALANCE_WITHOUT_BASE_UP = 0x0017, TAG_SET_SHARPNESS = 0x0018, TAG_SET_AUTO_EXPOSURE = 0x0019, TAG_IS_AUTO_EXPOSURE = 0x001a, TAG_SET_AUTO_WHITE_BALANCE = 0x001b, TAG_IS_AUTO_WHITE_BALANCE = 0x001c, TAG_FLIP_IMAGE = 0x001d, TAG_SET_DETAIL_SIZE = 0x001e, TAG_SET_SIZE = 0x001f, TAG_SET_FRAME_RATE = 0x0020, TAG_SET_PHOTO_MODE = 0x0021, TAG_SET_EFFECT = 0x0022, TAG_SET_CONTRAST = 0x0023, TAG_SET_LENS_CORRECTION = 0x0024, TAG_SET_OUTPUT_FORMAT = 0x0025, TAG_SET_AUTO_EXPOSURE_WINDOW = 0x0026, TAG_SET_AUTO_WHITE_BALANCE_WINDOW = 0x0027, TAG_SET_NOISE_FILTER = 0x0028, TAG_SYNCHRONIZE_VSYNC_TIMING = 0x0029, TAG_GET_LATEST_VSYNC_TIMING = 0x002a, TAG_GET_STEREO_CAMERA_CALIBRATION_DATA = 0x002b, TAG_SET_STEREO_CAMERA_CALIBRATION_DATA = 0x002c, TAG_WRITE_REGISTER_I2C = 0x002d, TAG_WRITE_MCU_VARIABLE_I2C = 0x002e, TAG_READ_REGISTER_I2C_EXCLUSIVE = 0x002f, TAG_READ_MCU_VARIABLE_I2C_EXCLUSIVE = 0x0030, TAG_SET_IMAGE_QUALITY_CALIBRATION_DATA = 0x0031, TAG_GET_IMAGE_QUALITY_CALIBRATION_DATA = 0x0032, TAG_SET_PACKAGE_PARAMETER_WITHOUT_CONTEXT = 0x0033, TAG_SET_PACKAGE_PARAMETER_WITH_CONTEXT = 0x0034, TAG_SET_PACKAGE_PARAMETER_WITH_CONTEXT_DETAIL = 0x0035, TAG_GET_SUITABLE_Y2R_STANDARD_COEFFICIENT = 0x0036, TAG_PLAY_SHUTTER_SOUND_WITH_WAVE = 0x0037, TAG_PLAY_SHUTTER_SOUND = 0x0038, TAG_DRIVER_INITIALIZE = 0x0039, TAG_DRIVER_FINALIZE = 0x003a, TAG_GET_ACTIVATED_CAMERA = 0x003b, TAG_GET_SLEEP_CAMERA = 0x003c, TAG_SET_SLEEP_CAMERA = 0x003d, TAG_SET_BRIGHTNESS_SYNCHRONIZATION = 0x003e, TAG_IPC_END }; public: static Handle s_Session; public: Camera() {} public: static nn::Result StartCapture( nn::camera::CTR::Port port ); static nn::Result StopCapture( nn::camera::CTR::Port port ); static nn::Result IsBusy( bool* pState, nn::camera::CTR::Port port ); static nn::Result ClearBuffer( nn::camera::CTR::Port port ); static nn::Result GetVsyncInterruptEvent( nn::Handle* pHandle, nn::camera::CTR::Port port ); static nn::Result GetBufferErrorInterruptEvent( nn::Handle* pHandle, nn::camera::CTR::Port port ); static nn::Result SetReceiving( nn::Handle* pHandle, nn::Handle dstProcess, u32 pDst, nn::camera::CTR::Port port, size_t imageSize, s16 transferUnit ); static nn::Result IsFinishedReceiving( bool* pState, nn::camera::CTR::Port port ); static nn::Result SetTransferLines( nn::camera::CTR::Port port, s16 lines, s16 width, s16 height ); static nn::Result GetMaxLines( s16* pLines, s16 width, s16 height ); static nn::Result SetTransferBytes( nn::camera::CTR::Port port, size_t bytes, s16 width, s16 height ); static nn::Result GetTransferBytes( size_t* pBytes, nn::camera::CTR::Port port ); static nn::Result GetMaxBytes( size_t* pBytes, s16 width, s16 height ); static nn::Result SetTrimming( nn::camera::CTR::Port port, bool enable ); static nn::Result IsTrimming( bool* pEnable, nn::camera::CTR::Port port ); static nn::Result SetTrimmingParams( nn::camera::CTR::Port port, s16 xStart, s16 yStart, s16 xEnd, s16 yEnd ); static nn::Result GetTrimmingParams( s16* pXStart, s16* pYStart, s16* pXEnd, s16* pYEnd, nn::camera::CTR::Port port ); static nn::Result SetTrimmingParamsCenter( nn::camera::CTR::Port port, s16 trimWidth, s16 trimHeight, s16 camWidth, s16 camHeight ); static nn::Result Activate( nn::camera::CTR::CameraSelect camera ); static nn::Result SwitchContext( nn::camera::CTR::CameraSelect camera, nn::camera::CTR::Context next ); static nn::Result SetExposure( nn::camera::CTR::CameraSelect camera, s8 exposure ); static nn::Result SetWhiteBalance( nn::camera::CTR::CameraSelect camera, nn::camera::CTR::WhiteBalance wb ); static nn::Result SetWhiteBalanceWithoutBaseUp( nn::camera::CTR::CameraSelect camera, nn::camera::CTR::WhiteBalance wb ); static nn::Result SetSharpness( nn::camera::CTR::CameraSelect camera, s8 sharpness ); static nn::Result SetAutoExposure( nn::camera::CTR::CameraSelect camera, bool on ); static nn::Result IsAutoExposure( bool* pOn, nn::camera::CTR::CameraSelect camera ); static nn::Result SetAutoWhiteBalance( nn::camera::CTR::CameraSelect camera, bool on ); static nn::Result IsAutoWhiteBalance( bool* pOn, nn::camera::CTR::CameraSelect camera ); static nn::Result FlipImage( nn::camera::CTR::CameraSelect camera, nn::camera::CTR::Flip flip, nn::camera::CTR::Context context ); static nn::Result SetDetailSize( nn::camera::CTR::CameraSelect camera, s16 width, s16 height, s16 cropX0, s16 cropY0, s16 cropX1, s16 cropY1, nn::camera::CTR::Context context ); static nn::Result SetSize( nn::camera::CTR::CameraSelect camera, nn::camera::CTR::Size size, nn::camera::CTR::Context context ); static nn::Result SetFrameRate( nn::camera::CTR::CameraSelect camera, nn::camera::CTR::FrameRate rate ); static nn::Result SetPhotoMode( nn::camera::CTR::CameraSelect camera, nn::camera::CTR::PhotoMode mode ); static nn::Result SetEffect( nn::camera::CTR::CameraSelect camera, nn::camera::CTR::Effect effect, nn::camera::CTR::Context context ); static nn::Result SetContrast( nn::camera::CTR::CameraSelect camera, nn::camera::CTR::Contrast contrast ); static nn::Result SetLensCorrection( nn::camera::CTR::CameraSelect camera, nn::camera::CTR::LensCorrection correction ); static nn::Result SetOutputFormat( nn::camera::CTR::CameraSelect camera, nn::camera::CTR::OutputFormat format, nn::camera::CTR::Context context ); static nn::Result SetAutoExposureWindow( nn::camera::CTR::CameraSelect camera, s16 startX, s16 startY, s16 width, s16 height ); static nn::Result SetAutoWhiteBalanceWindow( nn::camera::CTR::CameraSelect camera, s16 startX, s16 startY, s16 width, s16 height ); static nn::Result SetNoiseFilter( nn::camera::CTR::CameraSelect camera, bool on ); static nn::Result SynchronizeVsyncTiming( nn::camera::CTR::CameraSelect camera1, nn::camera::CTR::CameraSelect camera2 ); static nn::Result GetLatestVsyncTiming( nn::fnd::TimeSpan time[], nn::camera::CTR::Port port, size_t past ); static nn::Result GetStereoCameraCalibrationData( nn::camera::CTR::StereoCameraCalibrationData* pDst ); static nn::Result SetStereoCameraCalibrationData( const nn::camera::CTR::StereoCameraCalibrationData& src ); static nn::Result WriteRegisterI2c( nn::camera::CTR::CameraSelect camera, u16 addr, u16 data ); static nn::Result WriteMcuVariableI2c( nn::camera::CTR::CameraSelect camera, u16 varAddr, u16 data ); static nn::Result ReadRegisterI2cExclusive( u16* data, nn::camera::CTR::CameraSelect whichCam, u16 addr ); static nn::Result ReadMcuVariableI2cExclusive( u16* data, nn::camera::CTR::CameraSelect whichCam, u16 varAddr ); static nn::Result SetImageQualityCalibrationData( const nn::camera::CTR::ImageQualityCalibrationData& src ); static nn::Result GetImageQualityCalibrationData( nn::camera::CTR::ImageQualityCalibrationData* p_Dst ); static nn::Result SetPackageParameterWithoutContext( const nn::camera::CTR::PackageParameterCameraSelect& param ); static nn::Result SetPackageParameterWithContext( const nn::camera::CTR::PackageParameterContext& param ); static nn::Result SetPackageParameterWithContextDetail( const nn::camera::CTR::PackageParameterContextDetail& param ); static nn::Result GetSuitableY2rStandardCoefficient( nn::y2r::CTR::StandardCoefficient* no ); static nn::Result PlayShutterSoundWithWave( const u8 shutterSoundData[], s32 shutterSoundSize, const nn::csnd::CTR::ChannelParam& channelParam, const nn::csnd::CTR::OptionInfo& optionInfo ); static nn::Result PlayShutterSound( nn::camera::CTR::ShutterSoundType type ); static nn::Result DriverInitialize(); static nn::Result DriverFinalize(); static nn::Result GetActivatedCamera( nn::camera::CTR::CameraSelect* pSelect ); static nn::Result GetSleepCamera( nn::camera::CTR::CameraSelect* pSelect ); static nn::Result SetSleepCamera( nn::camera::CTR::CameraSelect select ); static nn::Result SetBrightnessSynchronization( bool enable ); }; } // end of namespace detail } // end of namespace CTR } // end of namespace camera } // end of namespace nn #endif // ifndef NN_CAMERA_CTR_CAMERA_CAMERA_H_