// // sampleVNC: X-Window 端末プログラム // xkozima@myu.ac.jp #include "raspVNC.h" #include "raspTFT.h" TFT display; VNC server; // 描画用コールバック(画面が更新されると呼ばれる) void vncDraw (unsigned char *buf, int x, int y, int w, int h) { // buf (w*h*2 bytes) を TFT の (x, y) に表示 display.sendBuffer(buf, x, y, w, h); } // タッチ処理用コールバック(VNC 内部で繰り返し呼ばれる) void vncTouch (int *x, int *y, int *m) { // タッチ状態を取得 int xpos, ypos, mode; mode = display.getTouch(&xpos, &ypos); // タッチ状態をサーバへ返す *x = xpos; *y = ypos; *m = mode; } // メイン int main () { // TFT 初期化 display.init(); // VNC 初期化 server.presetServer("127.0.0.1", 5901); server.presetDrawCB(vncDraw); server.presetTouchCB(vncTouch); server.presetPassword(getpass("VNC password: ")); server.init(TFT_WIDTH, TFT_HEIGHT, VNC_FMT_RGB16); printf("sampleVNC: %s\n", server.getTitle()); // FramebufferUpdate を補足し vncDraw で表示 while (1) { server.update(); } }