GadgetSeed  0.9.6
video_ioctl.h
[詳解]
1 /** @file
2  @brief 画像表示デバイスドライバ ioctl 用マクロ定義
3 
4  推奨デバイス名 : "video"
5 
6  @date 2017.01.15
7  @author Takashi SHUDO
8 */
9 
10 #ifndef VIDEO_IOCTL_H
11 #define VIDEO_IOCTL_H
12 
13 #include "device/std_ioctl.h"
14 #include "framebuf.h"
15 
16 #define DEF_DEV_NAME_VIDEO "video" ///< 標準ビデオデバイス名
17 
18 // ビデオデバイスタイプ(video_info.type)
19 #define VIDEOTYPE_MONO 0 ///< モノクロ(2値)フレームバッファ
20 #define VIDEOTYPE_CMDDRAW 1 ///< コマンドによる描画(フレームバッファなし)
21 #define VIDEOTYPE_FRAMEBUF 2 ///< カラーフレームバッファ(描画同期無し)
22 
23 // 色深度(video_info.color_depth)
24 #define VCOLORDEP_MONO 0 ///< モノクロ
25 #define VCOLORDEP_8 1 ///< 8ビットカラー
26 #define VCOLORDEP_16 2 ///< 16ビットカラー
27 #define VCOLORDEP_24 3 ///< 24ビットカラー
28 #define VCOLORDEP_32 4 ///< 32ビットカラー
29 
30 struct st_video_info {
31  unsigned short type; ///< ビデオデバイスタイプ(VIDEOTYPE_*)
32  unsigned short width; ///< 表示幅ドット数
33  unsigned short height; ///< 表示高さドット数
34  unsigned short color_depth; ///< 色深度(VCOLORDEP_*)
35  unsigned short frame_num; ///< 表示可能フレーム数
36  unsigned char *frame_buf_ptr[MAX_FRAMEBUF]; ///< フレームバッファポインタ
37  unsigned int mem_size; ///< フレームバッファメモリサイズ
38  struct st_device *dev; ///< ビデオデバイスドライバ
39 }; ///< 画像表示デバイス情報
40 
41 
42 // フレームバッファ制御 ioctl
43 
44 #define IOCMD_VIDEO_LOCK_DEVICE STDIOCTL(DEV_VIDEO,0x00) ///< デバイスをMUTEXロックする
45 #define IOCMD_VIDEO_UNLOCK_DEVICE STDIOCTL(DEV_VIDEO,0x01) ///< デバイスをMUTEXアンロックする
46 
47 #define IOCMD_VIDEO_SETDISPFRAME STDIOCTL(DEV_VIDEO,0x02) ///< 表示フレーム番号を設定する
48 #define IOCMD_VIDEO_GETDISPFRAME STDIOCTL(DEV_VIDEO,0x03) ///< 表示フレーム番号を取得する
49 #define IOCMD_VIDEO_SETDRAWFRAME STDIOCTL(DEV_VIDEO,0x04) ///< 描画フレーム番号を設定する
50 #define IOCMD_VIDEO_GETDRAWFRAME STDIOCTL(DEV_VIDEO,0x05) ///< 描画フレーム番号を取得する
51 
52 #define IOCMD_VIDEO_CLEAR STDIOCTL(DEV_VIDEO,0x20) ///< 全画面初期化
53 #define IOCMD_VIDEO_SCROLL STDIOCTL(DEV_VIDEO,0x22) ///< 表示位置を変更(スクロール)する
54 #define IOCMD_VIDEO_FILL STDIOCTL(DEV_VIDEO,0x24) ///< 全画面を任意の色に描画する
55 #define IOCMD_VIDEO_SETRECT STDIOCTL(DEV_VIDEO,0x25) ///< 描画データ転送範囲を矩形で設定する
56 #define IOCMD_VIDEO_RESETRECT STDIOCTL(DEV_VIDEO,0x26) ///< 描画データ転送範囲を全表示範囲にする
57 
58 #define IOCMD_VIDEO_WRITE_BYTE STDIOCTL(DEV_VIDEO,0x40) ///< 1バイト表示データを転送する(未使用)
59 #define IOCMD_VIDEO_WRITE_WORD STDIOCTL(DEV_VIDEO,0x41) ///< 2バイト表示データを転送する(未使用)
60 #define IOCMD_VIDEO_WRITE_LONG STDIOCTL(DEV_VIDEO,0x42) ///< 4バイト表示データを転送する(未使用)
61 
62 #define IOCMD_VIDEO_NOLOCK_WRITE_WORD STDIOCTL(DEV_VIDEO,0x44) ///< 2バイト表示データを転送する(MUTEXロックは無視)
63 
64 #define IOCMD_VIDEO_SET_FORECOLOR STDIOCTL(DEV_VIDEO,0x60) ///< フォアカラーを設定する
65 #define IOCMD_VIDEO_SET_BACKCOLOR STDIOCTL(DEV_VIDEO,0x61) ///< バックカラーを設定する
66 #define IOCMD_VIDEO_REPEAT_DATA STDIOCTL(DEV_VIDEO,0x62) ///< 指定ドット数分フォアカラーで描画する
67 #define IOCMD_VIDEO_DRAW_PIXEL STDIOCTL(DEV_VIDEO,0x63) ///< フォアカラーで1ドット描画する
68 #define IOCMD_VIDEO_DRAW_BITS STDIOCTL(DEV_VIDEO,0x64) ///< ビットパターンを描画する
69 
70 #define IOCMD_VIDEO_BCKLIGHT STDIOCTL(DEV_VIDEO,0x70) ///< バックライトを制御する(未使用)
71 
72 #endif // VIDEO_IOCTL_H
struct st_device * dev
ビデオデバイスドライバ
Definition: video_ioctl.h:38
デバイスドライバ ioctl 用マクロ定義
unsigned short height
表示高さドット数
Definition: video_ioctl.h:33
フレームバッファドライバ用コンテキスト定義
画像表示デバイス情報
Definition: video_ioctl.h:30
unsigned short type
ビデオデバイスタイプ(VIDEOTYPE_*)
Definition: video_ioctl.h:31
#define MAX_FRAMEBUF
最大フレームバッファ数
Definition: graphics.h:14
unsigned short width
表示幅ドット数
Definition: video_ioctl.h:32
unsigned short frame_num
表示可能フレーム数
Definition: video_ioctl.h:35
unsigned int mem_size
フレームバッファメモリサイズ
Definition: video_ioctl.h:37
unsigned char * frame_buf_ptr[MAX_FRAMEBUF]
フレームバッファポインタ
Definition: video_ioctl.h:36
デバイスドライバ構造体
Definition: device.h:25
unsigned short color_depth
色深度(VCOLORDEP_*)
Definition: video_ioctl.h:34