/*	
 *	clipldir.h
 *
 *	高速切替・16階調表示
 *
 *	CLiP - Common Library for P/ECE
 *	Copyright (C) 2001-2004 Naoyuki Sawa
 *
 *	* Sun Jun 6 14:11:00 JST 2004 Naoyuki Sawa
 *	- 作成開始。
 */
#ifndef __CLIP_LDIR_H__
#define __CLIP_LDIR_H__

/****************************************************************************
 *	アプリケーション用関数
 ****************************************************************************/

/* 高速切替を開始します。
 * [in]
 *	interval	更新周期をミリ秒単位で指定します。
 * [note]
 *	* 既に高速切替が開始していた場合は、いったん停止した後、指定された更新周期で再開します。
 *	* 更新周期が速すぎると、処理が間に合わずにハングアップします。
 *	  48MHz/1wait時は約15ミリ秒、24MHz/2wait時は24ミリ秒程度を更新頻度上限の目安としてください。
 *	  更新周期を長くするほど、アプリケーションの実行速度は上がりますが、画面がちらつきます。
 */
void ldirect_init(int interval);

/* 高速切替を停止します。
 * [note]
 *	* 高速切替が開始していない場合は、何もしません。
 *	* 2004/06/06現在、高速切替ドライバはpceAppNotify()をフックして監視し、アプリケーション終了時に自動的に高速切替を停止します。
 *	  現在のところ、ldirect_free()を呼ぶ必要はないのですが、今後のため、なるべく明示的にldirect_free()を呼ぶようにしてください。
 */
void ldirect_free();

/* デバッグ用タイマ値を取得します。
 * [out]
 *	戻り値		デバッグ用タイマ値。
 * [note]
 *	* デバッグ用タイマ値は、高速切替ドライバが画面更新を行う度に+1するカウンタです。
 *	  高速切替の画面更新周期を確認する場合などに利用してください。
 */
int ldirect_timer();

/****************************************************************************
 *	内部関数
 ****************************************************************************/

void ldirect_mkbuf(const unsigned char wbuff[/*DISP_X / 2 * DISP_Y*/], const unsigned char* lcdbuff);
void ldirect_trans(const unsigned char wbuff[/*DISP_X / 2 * DISP_Y*/], const unsigned short cvttbl[/*256*/]);
void PDW_Draw_4BN(DRAW_OBJECT obj);

#endif /*__CLIP_LDIR_H__*/
