mirror of
https://github.com/rvtr/ctr_Repair.git
synced 2025-10-31 13:51:08 -04:00
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@690 385bec56-5757-e545-9c3a-d8741f4650f1
605 lines
29 KiB
C++
605 lines
29 KiB
C++
/*---------------------------------------------------------------------------
|
||
Project: ImageDb
|
||
File: JpegMpSaver.h
|
||
|
||
生画像データを受け取ると、JPEG/MPにエンコードし、SDカードへ保存します。
|
||
保存された画像はニンテンドー3DSカメラで管理されます。
|
||
---------------------------------------------------------------------------*/
|
||
#ifndef JPEG_MP_SAVER_H_
|
||
#define JPEG_MP_SAVER_H_
|
||
|
||
#include <nn/types.h>
|
||
#include <nn/util.h>
|
||
#include <nn/jpeg.h>
|
||
#include "ImageIOTypes.h"
|
||
#include "../Core/ImageDbResult.h"
|
||
|
||
|
||
namespace imgdb {
|
||
|
||
|
||
/*!--------------------------------------------------------------------------*
|
||
@brief JPEG/MPベース保存クラス
|
||
*---------------------------------------------------------------------------*/
|
||
class JpegMpBaseSaver
|
||
{
|
||
public:
|
||
//! スクリーンショットフラグのデフォルト値
|
||
static const bool c_bDefaultScreenshotFlag = false;
|
||
//! 配布許可フラグのデフォルト値
|
||
static const bool c_bDefaultPermitDistributeFlag = true;
|
||
//! 焦点調整範囲表示フラグのデフォルト値
|
||
static const bool c_bDefaultAdjustablePictureFlag = false;
|
||
//! 無効な本体ID
|
||
static const u32 c_nInvalidId = 0;
|
||
//! 撮影した本体IDの有効状態のデフォルト値
|
||
static const bool c_bDefaultValidShotId = true;
|
||
//! 送信した本体IDの有効状態のデフォルト値
|
||
static const bool c_bDefaultValidSendId = false;
|
||
//! 受信した本体IDの有効状態のデフォルト値
|
||
static const bool c_bDefaultValidReceiveId = false;
|
||
//! 最後に編集した本体IDの有効状態のデフォルト値
|
||
static const bool c_bDefaultValidEditorId = false;
|
||
|
||
public:
|
||
/*!----------------------------------------------------------------------
|
||
@brief コンストラクタ
|
||
-----------------------------------------------------------------------*/
|
||
JpegMpBaseSaver();
|
||
/*!----------------------------------------------------------------------
|
||
@brief デストラクタ
|
||
-----------------------------------------------------------------------*/
|
||
virtual ~JpegMpBaseSaver();
|
||
|
||
|
||
/*=======================================================================
|
||
Save()を呼び出す前に設定しておく情報
|
||
=======================================================================*/
|
||
/*-----------------------------------------------------------------------
|
||
アプリケーション用のメーカーノート
|
||
-----------------------------------------------------------------------*/
|
||
/*!----------------------------------------------------------------------
|
||
@brief アプリケーション用のメーカーノートのデータを取得する
|
||
@return データ
|
||
@details
|
||
設定されていない場合はヌルを返します。
|
||
-----------------------------------------------------------------------*/
|
||
const void* GetUserMakerNoteData() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief アプリケーション用のメーカーノートのデータサイズを取得する
|
||
@return データサイズ(バイト単位)
|
||
@details
|
||
設定されていない場合はゼロを返します。
|
||
-----------------------------------------------------------------------*/
|
||
std::size_t GetUserMakerNoteDataSize() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief アプリケーション用のメーカーノートを設定する
|
||
@param[in] pData データ
|
||
@param[in] nSize データサイズ(バイト単位)
|
||
@details
|
||
pDataにヌル、またはnSizeにゼロを指定すると未設定の状態になります。
|
||
-----------------------------------------------------------------------*/
|
||
void SetUserMakerNote(const void* pData, std::size_t nSize);
|
||
|
||
/*-----------------------------------------------------------------------
|
||
システムメーカーノート
|
||
-----------------------------------------------------------------------*/
|
||
/*!----------------------------------------------------------------------
|
||
@brief システムメーカーノートのデータサイズを取得する
|
||
@return データサイズ(バイト単位)
|
||
-----------------------------------------------------------------------*/
|
||
static std::size_t GetSysMakerNoteDataSize();
|
||
/*!----------------------------------------------------------------------
|
||
@brief システムメーカーノートを取得する
|
||
@return システムメーカーノート
|
||
-----------------------------------------------------------------------*/
|
||
const void* GetSysMakerNoteData() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief システムメーカーノートを設定する
|
||
@param[in] pNote システムメーカーノート
|
||
@param[in] nSize システムメーカーノートのデータサイズ
|
||
@return 設定に成功した場合はtrue
|
||
@details
|
||
タイトルユニークIDや各種フラグなど、設定された情報はすべて指定された
|
||
システムメーカーノートの値に上書きされます。
|
||
-----------------------------------------------------------------------*/
|
||
bool SetSysMakerNoteData(const void* pNote, std::size_t nSize);
|
||
|
||
|
||
/*-----------------------------------------------------------------------
|
||
タイトルユニークID
|
||
-----------------------------------------------------------------------*/
|
||
/*!----------------------------------------------------------------------
|
||
@brief タイトルユニークIDを取得する
|
||
@return タイトルユニークID
|
||
@details
|
||
タイトルユニークIDとはアプリケーションが持つ20bitのユニークIDです。
|
||
-----------------------------------------------------------------------*/
|
||
u32 GetTitleUniqueId() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief タイトルユニークIDを設定する
|
||
@param[in] nUId タイトルユニークID
|
||
@return 設定に成功した場合はtrue
|
||
@details
|
||
タイトルユニークIDとはアプリケーションが持つ20bitのユニークIDです。
|
||
-----------------------------------------------------------------------*/
|
||
void SetTitleUniqueId(u32 nUId);
|
||
|
||
/*-----------------------------------------------------------------------
|
||
属性
|
||
-----------------------------------------------------------------------*/
|
||
/*!----------------------------------------------------------------------
|
||
@brief スクリーンショットフラグを取得する
|
||
@retval true スクリーンショットのデータ
|
||
@retval false スクリーンショット以外のデータ
|
||
-----------------------------------------------------------------------*/
|
||
bool GetScreenshotFlag() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief スクリーンショットフラグを設定する
|
||
@param[in] bFlag スクリーンショットフラグ
|
||
@details
|
||
スクリーンショットのためのフラグです。
|
||
-----------------------------------------------------------------------*/
|
||
void SetScreenshotFlag(bool bFlag);
|
||
|
||
/*!----------------------------------------------------------------------
|
||
@brief 配布許可フラグを取得する
|
||
@retval true 配布を許可する
|
||
@retval false 配布を禁止する
|
||
-----------------------------------------------------------------------*/
|
||
bool GetPermitDistributeFlag() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief 配布許可フラグを設定する
|
||
@param[in] bFlag 配布許可フラグ
|
||
-----------------------------------------------------------------------*/
|
||
void SetPermitDistributeFlag(bool bFlag);
|
||
|
||
/*!----------------------------------------------------------------------
|
||
@brief 焦点調整範囲表示フラグを取得する
|
||
@return 焦点調整範囲表示フラグ
|
||
-----------------------------------------------------------------------*/
|
||
bool GetAdjustablePictureFlag() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief 焦点調整範囲表示フラグを設定する
|
||
@param[in] bFlag 焦点調整範囲表示フラグ
|
||
@details
|
||
このフラグが立っている画像は、ニンテンドー3DSカメラのブラウズで表示され
|
||
るとき、横幅を基準に焦点調整ができる範囲が表示されます(平面画像でも表示
|
||
範囲は同一)。<BR>
|
||
ただし画像サイズが 400x240~1024x768 の場合のみ設定できます。<BR>
|
||
このフラグが立っていない画像は、画像の全体がULCD画面の中に収まるように
|
||
表示され、焦点調整はできません。
|
||
-----------------------------------------------------------------------*/
|
||
void SetAdjustablePictureFlag(bool bFlag);
|
||
|
||
/*-----------------------------------------------------------------------
|
||
本体ID
|
||
-----------------------------------------------------------------------*/
|
||
/*!----------------------------------------------------------------------
|
||
@brief 撮影した本体IDが有効かチェックする
|
||
@return 有効な場合はtrue
|
||
-----------------------------------------------------------------------*/
|
||
bool IsValidShotBodyId() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief 撮影した本体IDを取得する
|
||
@return 撮影した本体ID
|
||
@details
|
||
無効な場合の戻り値は不定です。
|
||
デフォルトでこのCTRの本体IDが設定されています。
|
||
-----------------------------------------------------------------------*/
|
||
u32 GetShotBodyId() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief 撮影した本体IDを設定する
|
||
@param[in] nBodyId 本体ID
|
||
@details
|
||
既存の画像の場合は、その画像に含まれる撮影した本体IDを指定してください。
|
||
-----------------------------------------------------------------------*/
|
||
void SetShotBodyId(u32 nBodyId);
|
||
/*!----------------------------------------------------------------------
|
||
@brief 撮影した本体IDを自分の本体IDに設定する
|
||
@details
|
||
既存の画像の場合は、その画像に含まれる撮影した本体IDを、SetShotBodyId()で
|
||
指定してください。
|
||
-----------------------------------------------------------------------*/
|
||
void SetShotBodyIdByOwn();
|
||
/*!----------------------------------------------------------------------
|
||
@brief 撮影した本体IDを無効状態にリセットする
|
||
-----------------------------------------------------------------------*/
|
||
void ResetShotBodyId();
|
||
|
||
/*!----------------------------------------------------------------------
|
||
@brief 送信した本体IDが有効かチェックする
|
||
@return 有効な場合はtrue
|
||
-----------------------------------------------------------------------*/
|
||
bool IsValidSendBodyId() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief 送信した本体IDを取得する
|
||
@return 送信した本体ID
|
||
@details
|
||
無効な場合の戻り値は不定です。
|
||
-----------------------------------------------------------------------*/
|
||
u32 GetSendBodyId() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief 送信した本体IDを設定する
|
||
@param[in] nBodyId 本体ID
|
||
@details
|
||
アプリ内で送受信した画像の場合は、適切なIDを指定してください。
|
||
そのほかの場合は初期値か、既存の画像のIDを指定してください。
|
||
-----------------------------------------------------------------------*/
|
||
void SetSendBodyId(u32 nBodyId);
|
||
/*!----------------------------------------------------------------------
|
||
@brief 送信した本体IDを自分の本体IDに設定する
|
||
@details
|
||
アプリ内で送受信した画像の場合は、適切なIDを指定してください。
|
||
そのほかの場合は初期値か、既存の画像のIDを指定してください。
|
||
-----------------------------------------------------------------------*/
|
||
void SetSendBodyIdByOwn();
|
||
/*!----------------------------------------------------------------------
|
||
@brief 送信した本体IDを無効状態にリセットする
|
||
-----------------------------------------------------------------------*/
|
||
void ResetSendBodyId();
|
||
|
||
/*!----------------------------------------------------------------------
|
||
@brief 受信した本体IDが有効かチェックする
|
||
@return 有効な場合はtrue
|
||
-----------------------------------------------------------------------*/
|
||
bool IsValidReceiveBodyId() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief 受信した本体IDを取得する
|
||
@return 受信した本体ID
|
||
@details
|
||
無効な場合の戻り値は不定です。
|
||
-----------------------------------------------------------------------*/
|
||
u32 GetReceiveBodyId() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief 受信した本体IDを設定する
|
||
@param[in] nBodyId 本体ID
|
||
@details
|
||
アプリ内で送受信した画像の場合は、適切なIDを指定してください。
|
||
そのほかの場合は初期値か、既存の画像のIDを指定してください。
|
||
-----------------------------------------------------------------------*/
|
||
void SetReceiveBodyId(u32 nBodyId);
|
||
/*!----------------------------------------------------------------------
|
||
@brief 受信した本体IDを自分の本体IDに設定する
|
||
@details
|
||
アプリ内で送受信した画像の場合は、適切なIDを指定してください。
|
||
そのほかの場合は初期値か、既存の画像のIDを指定してください。
|
||
-----------------------------------------------------------------------*/
|
||
void SetReceiveBodyIdByOwn();
|
||
/*!----------------------------------------------------------------------
|
||
@brief 受信した本体IDを無効状態にリセットする
|
||
-----------------------------------------------------------------------*/
|
||
void ResetReceiveBodyId();
|
||
|
||
|
||
/*!----------------------------------------------------------------------
|
||
@brief 最後に編集した本体IDが有効かチェックする
|
||
@return 有効な場合はtrue
|
||
-----------------------------------------------------------------------*/
|
||
bool IsValidEditorBodyId() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief 最後に編集した本体IDを取得する
|
||
@return 最後に編集した本体ID
|
||
@details
|
||
無効な場合の戻り値は不定です。
|
||
-----------------------------------------------------------------------*/
|
||
u32 GetEditorBodyId() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief 最後に編集した本体IDを設定する
|
||
@param[in] nBodyId 本体ID
|
||
@details
|
||
既存の画像を加工などを行って保存する場合は、このCTRの本体IDを指定するか、
|
||
SetEditorBodyIdByOwn()で設定を行ってください。
|
||
そのほかの場合は初期値か、既存の画像のIDを指定してください。
|
||
-----------------------------------------------------------------------*/
|
||
void SetEditorBodyId(u32 nBodyId);
|
||
/*!----------------------------------------------------------------------
|
||
@brief 最後に編集した本体IDを自分の本体IDに設定する
|
||
@details
|
||
既存の画像の場合は、その画像に含まれる最後に編集した本体IDを、
|
||
SetEditorBodyId()で指定してください。
|
||
-----------------------------------------------------------------------*/
|
||
void SetEditorBodyIdByOwn();
|
||
/*!----------------------------------------------------------------------
|
||
@brief 最後に編集した本体IDを無効状態にリセットする
|
||
-----------------------------------------------------------------------*/
|
||
void ResetEditorBodyId();
|
||
|
||
|
||
/* 削除予定 */
|
||
void SetPermitUploadFlag(bool ) { }
|
||
void SetPermitEditDistributeFlag(bool ) { }
|
||
void SetPermitSecondDistributeFlag(bool ) { }
|
||
|
||
protected:
|
||
bool IsValidTitleUniqueId() const;
|
||
|
||
bool GetHandleFlag(int nHandleType) const;
|
||
void SetHandleFlag(int nHandleType, bool bFlag);
|
||
|
||
bool IsValidBodyId(int nIdType) const;
|
||
u32 GetBodyId(int nIdType) const;
|
||
void SetBodyId(int nIdType, u32 nBodyId);
|
||
void ResetBodyId(int nIdType);
|
||
|
||
protected:
|
||
const void* m_pUserMakerNoteData;
|
||
std::size_t m_nUserMakerNoteDataSize;
|
||
void* m_pSysMakerNoteData;
|
||
bool m_bValidTitleUniqueId;
|
||
NN_PADDING3;
|
||
};
|
||
|
||
|
||
/*!--------------------------------------------------------------------------*
|
||
@brief JPEG保存クラス
|
||
@details
|
||
JPEGを保存するには最低限以下の関数を呼び出す必要があります。<BR>
|
||
SetRaw()<BR>
|
||
SetTitleUniqueId()<BR>
|
||
Save()
|
||
*---------------------------------------------------------------------------*/
|
||
class JpegSaver : public JpegMpBaseSaver, private nn::util::NonCopyable<JpegSaver>
|
||
{
|
||
public:
|
||
//! JPEGの品質のデフォルト値
|
||
static const int c_nDefaultJpegQuality = 80;
|
||
//! JPEGのサンプリングフォーマットのデフォルト値
|
||
static const nn::jpeg::CTR::PixelSampling c_eDefaultJpegFormat = nn::jpeg::CTR::PIXEL_SAMPLING_YUV422;
|
||
|
||
public:
|
||
/*!----------------------------------------------------------------------
|
||
@brief コンストラクタ
|
||
-----------------------------------------------------------------------*/
|
||
JpegSaver();
|
||
/*!----------------------------------------------------------------------
|
||
@brief デストラクタ
|
||
-----------------------------------------------------------------------*/
|
||
virtual ~JpegSaver();
|
||
|
||
/*!----------------------------------------------------------------------
|
||
@brief JPEGファイルとして保存する
|
||
@return 結果
|
||
@details
|
||
現在の設定されている内容で画像をJPEGに変換して保存します。<BR>
|
||
呼び出し前に各種設定を行っておいてください。<BR>
|
||
設定が不正だった場合はResultErrorInvalidParamが返ってきます。<BR>
|
||
本関数を呼び出すと内部で一時的に 200KB 程のメモリが消費されます。
|
||
-----------------------------------------------------------------------*/
|
||
Result Save();
|
||
|
||
|
||
/*=======================================================================
|
||
Save()を呼び出す前に設定しておく情報
|
||
=======================================================================*/
|
||
/*!----------------------------------------------------------------------
|
||
@brief JPEGの品質を取得する
|
||
@return 品質 [1, 100]
|
||
-----------------------------------------------------------------------*/
|
||
int GetJpegQuality() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief JPEGの品質を設定する
|
||
@param[in] nQuality 品質 [1, 100]
|
||
-----------------------------------------------------------------------*/
|
||
void SetJpegQuality(int nQuality);
|
||
|
||
/*!----------------------------------------------------------------------
|
||
@brief JPEGのサンプリングフォーマットを取得する
|
||
@return サンプリングフォーマット
|
||
-----------------------------------------------------------------------*/
|
||
nn::jpeg::CTR::PixelSampling GetJpegFormat() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief JPEGのサンプリングフォーマットを設定する
|
||
@param[in] eFormat サンプリングフォーマット
|
||
-----------------------------------------------------------------------*/
|
||
void SetJpegFormat(nn::jpeg::CTR::PixelSampling eFormat);
|
||
|
||
/*!----------------------------------------------------------------------
|
||
@brief 保存する画像データを取得する
|
||
@return 画像データ
|
||
-----------------------------------------------------------------------*/
|
||
const void* GetRawData() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief 保存する画像の幅を取得する
|
||
@return 幅(ピクセル単位)
|
||
-----------------------------------------------------------------------*/
|
||
int GetRawWidth() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief 保存する画像の高さを取得する
|
||
@return 高さ(ピクセル単位)
|
||
-----------------------------------------------------------------------*/
|
||
int GetRawHeight() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief 保存する画像のピクセルフォーマットを取得する
|
||
@return ピクセルフォーマット
|
||
-----------------------------------------------------------------------*/
|
||
nn::jpeg::CTR::PixelFormat GetRawFormat() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief 保存する画像を設定する
|
||
@param[in] pData 画像データ
|
||
@param[in] nWidth 画像の幅(ピクセル単位)
|
||
@param[in] nHeight 画像の高さ(ピクセル単位)
|
||
@param[in] eFormat 画像のピクセルフォーマット
|
||
-----------------------------------------------------------------------*/
|
||
void SetRaw(
|
||
const void* pData, int nWidth, int nHeight,
|
||
nn::jpeg::CTR::PixelFormat eFormat);
|
||
|
||
|
||
/*=======================================================================
|
||
Save()呼び出し成功後に取得できる情報
|
||
=======================================================================*/
|
||
/*!----------------------------------------------------------------------
|
||
@brief 保存したJPEGのファイルパスを取得する
|
||
@return ファイルパス
|
||
@details
|
||
保存していない、出来なかった場合などは空文字列を返します。
|
||
-----------------------------------------------------------------------*/
|
||
const wchar_t* GetSavedFilePath() const;
|
||
|
||
private:
|
||
Result ValidateParam() const;
|
||
void SetFilePathToVirtual(const wchar_t* pPath);
|
||
|
||
private:
|
||
int m_nJpegQuality;
|
||
nn::jpeg::CTR::PixelSampling m_eJpegFormat;
|
||
NN_PADDING3;
|
||
|
||
const void* m_pRawData;
|
||
int m_nRawWidth;
|
||
int m_nRawHeight;
|
||
nn::jpeg::CTR::PixelFormat m_eRawFormat;
|
||
NN_PADDING3;
|
||
wchar_t* m_pFilePath;
|
||
};
|
||
|
||
|
||
/*!--------------------------------------------------------------------------*
|
||
@brief MP保存クラス
|
||
@details
|
||
MPを保存するには最低限以下の関数を呼び出す必要があります。<BR>
|
||
SetRaw()<BR>
|
||
SetTitleUniqueId()<BR>
|
||
Save()
|
||
*---------------------------------------------------------------------------*/
|
||
class MpSaver : public JpegMpBaseSaver, private nn::util::NonCopyable<MpSaver>
|
||
{
|
||
public:
|
||
//! JPEGの品質のデフォルト値
|
||
static const int c_nDefaultJpegQuality = 80;
|
||
//! JPEGのサンプリングフォーマットのデフォルト値
|
||
static const nn::jpeg::CTR::PixelSampling c_eDefaultJpegFormat = nn::jpeg::CTR::PIXEL_SAMPLING_YUV422;
|
||
|
||
public:
|
||
/*!----------------------------------------------------------------------
|
||
@brief コンストラクタ
|
||
-----------------------------------------------------------------------*/
|
||
MpSaver();
|
||
/*!----------------------------------------------------------------------
|
||
@brief デストラクタ
|
||
-----------------------------------------------------------------------*/
|
||
virtual ~MpSaver();
|
||
|
||
/*!----------------------------------------------------------------------
|
||
@brief MPファイルとして保存する
|
||
@return 結果
|
||
@details
|
||
現在の設定されている内容で画像をMPに変換して保存します。<BR>
|
||
呼び出し前に各種設定を行っておいてください。<BR>
|
||
設定が不正だった場合はResultErrorInvalidParamが返ってきます。<BR>
|
||
本関数を呼び出すと内部で一時的に 400KB 程のメモリが消費されます。
|
||
-----------------------------------------------------------------------*/
|
||
Result Save();
|
||
|
||
|
||
/*=======================================================================
|
||
Save()を呼び出す前に設定しておく情報
|
||
=======================================================================*/
|
||
/*!----------------------------------------------------------------------
|
||
@brief JPEGの品質を取得する
|
||
@return 品質 [1, 100]
|
||
-----------------------------------------------------------------------*/
|
||
int GetJpegQuality() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief JPEGの品質を設定する
|
||
@param[in] nQuality 品質 [1, 100]
|
||
-----------------------------------------------------------------------*/
|
||
void SetJpegQuality(int nQuality);
|
||
|
||
/*!----------------------------------------------------------------------
|
||
@brief JPEGのサンプリングフォーマットを取得する
|
||
@return サンプリングフォーマット
|
||
-----------------------------------------------------------------------*/
|
||
nn::jpeg::CTR::PixelSampling GetJpegFormat() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief JPEGのサンプリングフォーマットを設定する
|
||
@param[in] eFormat サンプリングフォーマット
|
||
-----------------------------------------------------------------------*/
|
||
void SetJpegFormat(nn::jpeg::CTR::PixelSampling eFormat);
|
||
|
||
/*!----------------------------------------------------------------------
|
||
@brief 保存する左側の画像データを取得する
|
||
@return 画像データ
|
||
-----------------------------------------------------------------------*/
|
||
const void* GetRawDataL() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief 保存する右側の画像データを取得する
|
||
@return 画像データ
|
||
-----------------------------------------------------------------------*/
|
||
const void* GetRawDataR() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief 保存する画像の幅を取得する
|
||
@return 幅(ピクセル単位)
|
||
-----------------------------------------------------------------------*/
|
||
int GetRawWidth() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief 保存する画像の高さを取得する
|
||
@return 高さ(ピクセル単位)
|
||
-----------------------------------------------------------------------*/
|
||
int GetRawHeight() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief 保存する画像のピクセルフォーマットを取得する
|
||
@return ピクセルフォーマット
|
||
-----------------------------------------------------------------------*/
|
||
nn::jpeg::CTR::PixelFormat GetRawFormat() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief 保存する画像を設定する
|
||
@param[in] pDataL 左側の画像データ
|
||
@param[in] pDataR 右側の画像データ
|
||
@param[in] nWidth 画像の幅(ピクセル単位)
|
||
@param[in] nHeight 画像の高さ(ピクセル単位)
|
||
@param[in] eFormat 画像のピクセルフォーマット
|
||
-----------------------------------------------------------------------*/
|
||
void SetRaw(
|
||
const void* pDataL, const void* pDataR,
|
||
int nWidth, int nHeight, nn::jpeg::CTR::PixelFormat eFormat);
|
||
|
||
/*!----------------------------------------------------------------------
|
||
@brief 水平オフセット値を取得する
|
||
@return 水平オフセット値(ピクセル単位)
|
||
-----------------------------------------------------------------------*/
|
||
f32 GetOffsetH() const;
|
||
/*!----------------------------------------------------------------------
|
||
@brief 水平オフセット値を設定する
|
||
@param[in] fOfstH 水平オフセット値(ピクセル単位)
|
||
-----------------------------------------------------------------------*/
|
||
void SetOffsetH(f32 fOfstH);
|
||
|
||
|
||
/*=======================================================================
|
||
Save()呼び出し成功後に取得できる情報
|
||
=======================================================================*/
|
||
/*!----------------------------------------------------------------------
|
||
@brief 保存したMPのファイルパスを取得する
|
||
@return ファイルパス
|
||
@details
|
||
保存していない、出来なかった場合などは空文字列を返します。
|
||
-----------------------------------------------------------------------*/
|
||
const wchar_t* GetSavedFilePath() const;
|
||
|
||
private:
|
||
Result ValidateParam() const;
|
||
void SetFilePathToVirtual(const wchar_t* pPath);
|
||
|
||
private:
|
||
int m_nJpegQuality;
|
||
nn::jpeg::CTR::PixelSampling m_eJpegFormat;
|
||
NN_PADDING3;
|
||
|
||
const void* m_pRawDataL;
|
||
const void* m_pRawDataR;
|
||
int m_nRawWidth;
|
||
int m_nRawHeight;
|
||
nn::jpeg::CTR::PixelFormat m_eRawFormat;
|
||
NN_PADDING3;
|
||
f32 m_fOfstH;
|
||
wchar_t* m_pFilePath;
|
||
};
|
||
|
||
|
||
|
||
} // end of namespace imgdb
|
||
|
||
#endif // JPEG_MP_SAVER_H_
|