⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 meter.c

📁 EP9315开发板的Wince6.0的BSP包文件
💻 C
📖 第 1 页 / 共 4 页
字号:
/**********************************************************************
#                                                                      
# Filename: meter.c
#                                                                      
# Description:
#
# THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
# ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
# PARTICULAR PURPOSE.
#
# Use of this source code is subject to the terms of the Cirrus end-user
# license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
# If you did not accept the terms of the EULA, you are not authorized to 
# use this source code. For a copy of the EULA, please see the 
# EULA.RTF on your install media.
#
# Copyright(c) Cirrus Logic Corporation 2005, All Rights Reserved                       
#                                                                      
#**********************************************************************/

#include <Windows.h>
#include <stdio.h>
#include <stdlib.h>
#include "font.h"
//#include "rgb.h"

#define FRAMEBUF_PHYSICAL_MEMORY              0x000C0000
#define FRAMEBUF_VIRTUAL_MEMORY               (0xA0000000 + FRAMEBUF_PHYSICAL_MEMORY)



unsigned short *pusFrame;
int iFD;

void
fb_init(void)
{
#ifdef UNDER_CE
	pusFrame = (unsigned short *)(FRAMEBUF_VIRTUAL_MEMORY);

#else
    iFD = open("/dev/tty1", O_RDWR);

    write(iFD, "\033[?25l\033[?1c", 11);

    close(iFD);

    iFD = open("/dev/fb", O_RDWR);

    pusFrame = mmap(NULL, 640 * 480 * 2, PROT_READ | PROT_WRITE, MAP_SHARED,
                    iFD, 0);
#endif

    memset(pusFrame, 0, 640 * 480 * 2);
}

void
fb_cleanup(void)
{
#ifdef UNDER_CE
#else
    munmap(pusFrame, 640 * 480 * 2);

    close(iFD);
#endif
}
extern HICON hBrzierIco;
void DrawBezierIcon()
{
	HDC hdc;
	if(hBrzierIco ==NULL) return;
	hdc = GetDC(NULL);
	if(hdc ==NULL) return;
	DrawIcon(hdc, 0 , 0, hBrzierIco);
}

void
DrawBezier(unsigned short *pusBuffer, unsigned long *pulX, unsigned long *pulY,
           unsigned short usColor)
{
    unsigned long ulX, ulY;
    float fT, fT2, fT3, fIT, fIT2, fIT3;

    for(fT = 0.0; fT < 1.0; fT += 0.005f)
    {
        fT2 = fT * fT;
        fT3 = fT2 * fT;
        fIT = 1.0f - fT;
        fIT2 = fIT * fIT;
        fIT3 = fIT2 * fIT;

        ulX = (unsigned long)( ((fIT3 * pulX[0]) +
               (3 * fT * fIT2 * pulX[1]) +
               (3 * fT2 * fIT * pulX[2]) +
               (fT3 * pulX[3])));
        ulY = (unsigned long)( ((fIT3 * pulY[0]) +
               (3 * fT * fIT2 * pulY[1]) +
               (3 * fT2 * fIT * pulY[2]) +
               (fT3 * pulY[3])));

        pusBuffer[(ulY * 640) + ulX] = usColor;
    }
}

extern void DrawBezierCrunch(unsigned short *pusBuffer, unsigned long *pulX,
                 unsigned long *pulY, unsigned short usColor);

void (*pfnBezier)(unsigned short *pusBuffer, unsigned long *pulX,
                  unsigned long *pulY, unsigned short usColor);

void
DrawBand(long *plPointsX, long *plPointsY, unsigned long ulPoints,
         unsigned short usColor)
{
    unsigned long pulX[4], pulY[4], ulIndex;

    for(ulIndex = 0; ulIndex < ulPoints; ulIndex += 2)
    {
        pulX[0] = (plPointsX[ulIndex] + plPointsX[ulIndex + 1]) / 2;
        pulY[0] = (plPointsY[ulIndex] + plPointsY[ulIndex + 1]) / 2;

        pulX[1] = plPointsX[ulIndex + 1];
        pulY[1] = plPointsY[ulIndex + 1];

        pulX[2] = plPointsX[ulIndex + 2];
        pulY[2] = plPointsY[ulIndex + 2];

        pulX[3] = (plPointsX[ulIndex + 2] + plPointsX[ulIndex + 3]) / 2;
        pulY[3] = (plPointsY[ulIndex + 2] + plPointsY[ulIndex + 3]) / 2;

        (pfnBezier)(pusFrame, pulX, pulY, usColor);
    }
}

#define RGB16(r,g,b) (((b) >> 3) | (((g) >> 2) << 5) | (((r) >> 3) << 11))

unsigned short pusColors[] =
{
    RGB16(255,  0,  0),
    RGB16(255,  1,  0),
    RGB16(255,  2,  0),
    RGB16(255,  3,  0),
    RGB16(255,  4,  0),
    RGB16(255,  5,  0),
    RGB16(255,  6,  0),
    RGB16(255,  7,  0),
    RGB16(255,  8,  0),
    RGB16(255,  9,  0),
    RGB16(255, 10,  0),
    RGB16(255, 11,  0),
    RGB16(255, 12,  0),
    RGB16(255, 13,  0),
    RGB16(255, 14,  0),
    RGB16(255, 15,  0),
    RGB16(255, 16,  0),
    RGB16(255, 17,  0),
    RGB16(255, 18,  0),
    RGB16(255, 19,  0),
    RGB16(255, 20,  0),
    RGB16(255, 21,  0),
    RGB16(255, 22,  0),
    RGB16(255, 23,  0),
    RGB16(255, 24,  0),
    RGB16(255, 25,  0),
    RGB16(255, 26,  0),
    RGB16(255, 27,  0),
    RGB16(255, 28,  0),
    RGB16(255, 29,  0),
    RGB16(255, 30,  0),
    RGB16(255, 31,  0),
    RGB16(255, 32,  0),
    RGB16(255, 33,  0),
    RGB16(255, 34,  0),
    RGB16(255, 35,  0),
    RGB16(255, 36,  0),
    RGB16(255, 37,  0),
    RGB16(255, 38,  0),
    RGB16(255, 39,  0),
    RGB16(255, 40,  0),
    RGB16(255, 41,  0),
    RGB16(255, 42,  0),
    RGB16(255, 43,  0),
    RGB16(255, 44,  0),
    RGB16(255, 45,  0),
    RGB16(255, 46,  0),
    RGB16(255, 47,  0),
    RGB16(255, 48,  0),
    RGB16(255, 49,  0),
    RGB16(255, 50,  0),
    RGB16(255, 51,  0),
    RGB16(255, 52,  0),
    RGB16(255, 53,  0),
    RGB16(255, 54,  0),
    RGB16(255, 55,  0),
    RGB16(255, 56,  0),
    RGB16(255, 57,  0),
    RGB16(255, 58,  0),
    RGB16(255, 59,  0),
    RGB16(255, 60,  0),
    RGB16(255, 61,  0),
    RGB16(255, 62,  0),
    RGB16(255, 63,  0),
    RGB16(255, 64,  0),
    RGB16(255, 65,  0),
    RGB16(255, 66,  0),
    RGB16(255, 67,  0),
    RGB16(255, 68,  0),
    RGB16(255, 69,  0),
    RGB16(255, 70,  0),
    RGB16(255, 71,  0),
    RGB16(255, 72,  0),
    RGB16(255, 73,  0),
    RGB16(255, 74,  0),
    RGB16(255, 75,  0),
    RGB16(255, 76,  0),
    RGB16(255, 77,  0),
    RGB16(255, 78,  0),
    RGB16(255, 79,  0),
    RGB16(255, 80,  0),
    RGB16(255, 81,  0),
    RGB16(255, 82,  0),
    RGB16(255, 83,  0),
    RGB16(255, 84,  0),
    RGB16(255, 85,  0),
    RGB16(255, 86,  0),
    RGB16(255, 87,  0),
    RGB16(255, 88,  0),
    RGB16(255, 89,  0),
    RGB16(255, 90,  0),
    RGB16(255, 91,  0),
    RGB16(255, 92,  0),
    RGB16(255, 93,  0),
    RGB16(255, 94,  0),
    RGB16(255, 95,  0),
    RGB16(255, 96,  0),
    RGB16(255, 97,  0),
    RGB16(255, 98,  0),
    RGB16(255, 99,  0),
    RGB16(255,100,  0),
    RGB16(255,101,  0),
    RGB16(255,102,  0),
    RGB16(255,103,  0),
    RGB16(255,104,  0),
    RGB16(255,105,  0),
    RGB16(255,106,  0),
    RGB16(255,107,  0),
    RGB16(255,108,  0),
    RGB16(255,109,  0),
    RGB16(255,110,  0),
    RGB16(255,111,  0),
    RGB16(255,112,  0),
    RGB16(255,113,  0),
    RGB16(255,114,  0),
    RGB16(255,115,  0),
    RGB16(255,116,  0),
    RGB16(255,117,  0),
    RGB16(255,118,  0),
    RGB16(255,119,  0),
    RGB16(255,120,  0),
    RGB16(255,121,  0),
    RGB16(255,122,  0),
    RGB16(255,123,  0),
    RGB16(255,124,  0),
    RGB16(255,125,  0),
    RGB16(255,126,  0),
    RGB16(255,127,  0),
    RGB16(255,128,  0),
    RGB16(255,129,  0),
    RGB16(255,130,  0),
    RGB16(255,131,  0),
    RGB16(255,132,  0),
    RGB16(255,133,  0),
    RGB16(255,134,  0),
    RGB16(255,135,  0),
    RGB16(255,136,  0),
    RGB16(255,137,  0),
    RGB16(255,138,  0),
    RGB16(255,139,  0),
    RGB16(255,140,  0),
    RGB16(255,141,  0),
    RGB16(255,142,  0),
    RGB16(255,143,  0),
    RGB16(255,144,  0),
    RGB16(255,145,  0),
    RGB16(255,146,  0),
    RGB16(255,147,  0),
    RGB16(255,148,  0),
    RGB16(255,149,  0),
    RGB16(255,150,  0),
    RGB16(255,151,  0),
    RGB16(255,152,  0),
    RGB16(255,153,  0),
    RGB16(255,154,  0),
    RGB16(255,155,  0),
    RGB16(255,156,  0),
    RGB16(255,157,  0),
    RGB16(255,158,  0),
    RGB16(255,159,  0),
    RGB16(255,160,  0),
    RGB16(255,161,  0),
    RGB16(255,162,  0),
    RGB16(255,163,  0),
    RGB16(255,164,  0),
    RGB16(255,165,  0),
    RGB16(255,166,  0),
    RGB16(255,167,  0),
    RGB16(255,168,  0),
    RGB16(255,169,  0),
    RGB16(255,170,  0),
    RGB16(255,171,  0),
    RGB16(255,172,  0),
    RGB16(255,173,  0),
    RGB16(255,174,  0),
    RGB16(255,175,  0),
    RGB16(255,176,  0),
    RGB16(255,177,  0),
    RGB16(255,178,  0),
    RGB16(255,179,  0),
    RGB16(255,180,  0),
    RGB16(255,181,  0),
    RGB16(255,182,  0),
    RGB16(255,183,  0),
    RGB16(255,184,  0),
    RGB16(255,185,  0),
    RGB16(255,186,  0),
    RGB16(255,187,  0),
    RGB16(255,188,  0),
    RGB16(255,189,  0),
    RGB16(255,190,  0),
    RGB16(255,191,  0),
    RGB16(255,192,  0),
    RGB16(255,193,  0),
    RGB16(255,194,  0),
    RGB16(255,195,  0),
    RGB16(255,196,  0),
    RGB16(255,197,  0),
    RGB16(255,198,  0),
    RGB16(255,199,  0),
    RGB16(255,200,  0),
    RGB16(255,201,  0),
    RGB16(255,202,  0),
    RGB16(255,203,  0),
    RGB16(255,204,  0),
    RGB16(255,205,  0),
    RGB16(255,206,  0),
    RGB16(255,207,  0),
    RGB16(255,208,  0),
    RGB16(255,209,  0),
    RGB16(255,210,  0),
    RGB16(255,211,  0),
    RGB16(255,212,  0),
    RGB16(255,213,  0),
    RGB16(255,214,  0),
    RGB16(255,215,  0),
    RGB16(255,216,  0),
    RGB16(255,217,  0),
    RGB16(255,218,  0),
    RGB16(255,219,  0),
    RGB16(255,220,  0),
    RGB16(255,221,  0),
    RGB16(255,222,  0),
    RGB16(255,223,  0),
    RGB16(255,224,  0),
    RGB16(255,225,  0),
    RGB16(255,226,  0),
    RGB16(255,227,  0),
    RGB16(255,228,  0),
    RGB16(255,229,  0),
    RGB16(255,230,  0),
    RGB16(255,231,  0),
    RGB16(255,232,  0),
    RGB16(255,233,  0),
    RGB16(255,234,  0),
    RGB16(255,235,  0),
    RGB16(255,236,  0),
    RGB16(255,237,  0),
    RGB16(255,238,  0),
    RGB16(255,239,  0),
    RGB16(255,240,  0),
    RGB16(255,241,  0),
    RGB16(255,242,  0),
    RGB16(255,243,  0),
    RGB16(255,244,  0),
    RGB16(255,245,  0),
    RGB16(255,246,  0),
    RGB16(255,247,  0),
    RGB16(255,248,  0),
    RGB16(255,249,  0),
    RGB16(255,250,  0),
    RGB16(255,251,  0),
    RGB16(255,252,  0),
    RGB16(255,253,  0),
    RGB16(255,254,  0),
    RGB16(255,255,  0),
    RGB16(254,255,  0),
    RGB16(253,255,  0),
    RGB16(252,255,  0),
    RGB16(251,255,  0),
    RGB16(250,255,  0),
    RGB16(249,255,  0),
    RGB16(248,255,  0),
    RGB16(247,255,  0),
    RGB16(246,255,  0),
    RGB16(245,255,  0),
    RGB16(244,255,  0),
    RGB16(243,255,  0),
    RGB16(242,255,  0),
    RGB16(241,255,  0),
    RGB16(240,255,  0),
    RGB16(239,255,  0),
    RGB16(238,255,  0),
    RGB16(237,255,  0),
    RGB16(236,255,  0),
    RGB16(235,255,  0),
    RGB16(234,255,  0),
    RGB16(233,255,  0),
    RGB16(232,255,  0),
    RGB16(231,255,  0),
    RGB16(230,255,  0),
    RGB16(229,255,  0),
    RGB16(228,255,  0),
    RGB16(227,255,  0),
    RGB16(226,255,  0),
    RGB16(225,255,  0),
    RGB16(224,255,  0),
    RGB16(223,255,  0),
    RGB16(222,255,  0),
    RGB16(221,255,  0),
    RGB16(220,255,  0),
    RGB16(219,255,  0),
    RGB16(218,255,  0),
    RGB16(217,255,  0),
    RGB16(216,255,  0),
    RGB16(215,255,  0),
    RGB16(214,255,  0),
    RGB16(213,255,  0),
    RGB16(212,255,  0),
    RGB16(211,255,  0),
    RGB16(210,255,  0),
    RGB16(209,255,  0),
    RGB16(208,255,  0),
    RGB16(207,255,  0),
    RGB16(206,255,  0),
    RGB16(205,255,  0),
    RGB16(204,255,  0),
    RGB16(203,255,  0),
    RGB16(202,255,  0),
    RGB16(201,255,  0),
    RGB16(200,255,  0),
    RGB16(199,255,  0),
    RGB16(198,255,  0),
    RGB16(197,255,  0),
    RGB16(196,255,  0),
    RGB16(195,255,  0),
    RGB16(194,255,  0),
    RGB16(193,255,  0),
    RGB16(192,255,  0),
    RGB16(191,255,  0),
    RGB16(190,255,  0),
    RGB16(189,255,  0),
    RGB16(188,255,  0),
    RGB16(187,255,  0),
    RGB16(186,255,  0),
    RGB16(185,255,  0),

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -