/**
 * @brief        DisplayManager sample header
 * @file         dsp_sample.h
 * @author       AXELL
 * @history      17_06_30 構成見直し
 * @description  none
 * @note         このファイルは tab幅=4、改行コード=CRLF で記述されています.
 */

/*
 * This program was created by AXELL CORPORATION.
 * Copyright (C) 2017 AXELL CORPORATION, all rights reserved.
 */

#ifndef __DSP_SAMPLE_H__
#define __DSP_SAMPLE_H__

#include "main.h"
#include "com.h"

#include "sys/spcprm.h"
#include "sys/sscprm.h"


/*---------------------- 出力 ----------------------*/
#define DSP_Printf(FMT, ...)		sys_print(0, FMT,##__VA_ARGS__)
#define DSP_ErrPrintf(FMT, ...)		sys_print(1, FMT,##__VA_ARGS__)

/*-------------------- 定数定義 --------------------*/
/* 表示出力ポート */
#define DSP_SAMPLE_OUT_CMOS			0
#define DSP_SAMPLE_OUT_LVDS			1

/* PLLチャンネル */
#define DSP_SAMPLE_PLLCH_1			1
#define DSP_SAMPLE_PLLCH_2			2

/* LVDS出力パターン */
#define DSP_SAMPLE_LVDS_SINGLE		0
#define DSP_SAMPLE_LVDS_DUAL		1

/* 色補正テーブル設定 */
#define DSP_SAMPLE_LUT_NORMAL		0
#define DSP_SAMPLE_LUT_REVERSE		1
#define DSP_SAMPLE_LUT_OFF			255

/* ディザリング設定 */
#define DSP_SAMPLE_DITH_DISABLE		0
#define DSP_SAMPLE_DITH_SXGA		1


/*-------------------- データ構造定義 --------------------*/
typedef struct _DSP_SAMPLE_PARAM{
	AG903_DSPMgrHandle		*handle[AG903_DSP_CH_NUM];		/* DisplayManagerハンドラ */
	uint32_t				fb_addr;						/* フレームバッファ先頭アドレス */
	uint32_t				fb_size;						/* フレームバッファサイズ */
	uint32_t				fb_addr2;						/* フレームバッファ先頭アドレス */
	uint32_t				fb_size2;						/* フレームバッファサイズ */
	uint32_t				attr_addr;						/* ウィンドウアトリビュート先頭アドレス */
	AG903_DSPMgrCtrlParam	param_ctrl;						/* DisplayManager設定用構造体 */
	AG903_DSPMgrCMOSParam	param_cmos;						/* DisplayManager設定用構造体 */
	AG903_DSPMgrLVDSParam	param_lvds;						/* DisplayManager設定用構造体 */
	AG903_DSPMgrBPwrModeParam	param_bpwr;					/* DisplayManager設定用構造体 */
	AG903_DSPMgrWindowParam	param_win;						/* DisplayManager設定用構造体 */
	AG903_DSPMgrIntParam	param_int;						/* DisplayManager設定用構造体 */
	bool					lut_changed[AG903_DSP_CH_NUM];	/* 色補正テーブル変更済みフラグ */
	bool					dith_enabled[AG903_DSP_CH_NUM];	/* ディザリング設定有効フラグ */
	uint32_t				lvds_format;					/* LVDS出力フォーマット */
	uint32_t				bpwr_brightness;				/* バックライトの明るさ[%] */
}DSP_SAMPLE_PARAM;


#endif/* __DSP_SAMPLE_H__ */
