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

📄 bounce.c

📁 编译后直接运行的MP3播放器全部C语言源代码 一个包含FAT文件系统、系统引导 Boot、FLASH Driver等内容的
💻 C
📖 第 1 页 / 共 2 页
字号:
    rb->lcd_drawline(LCD_WIDTH/2, LCD_HEIGHT/2, xminute[pos], yminute[pos]);    hour = hour*5 + minute/12;    pos = 90-hour;    if(pos >= 60)        pos -= 60;    rb->lcd_drawline(LCD_WIDTH/2, LCD_HEIGHT/2, xhour[pos], yhour[pos]);    /* draw a circle */    for(i=0; i < 60; i+=3) {        rb->lcd_drawline( xminute[i],                      yminute[i],                      xminute[(i+1)%60],                      yminute[(i+1)%60]);    }}static int scrollit(void){    int b;    unsigned int y=100;    int x=LCD_WIDTH;    unsigned int yy,xx;    unsigned int i;    int textpos=0;    char* rock="Rockbox! Pure pleasure. Pure fun. Oooh. What fun! ;-) ";    unsigned int rocklen = rb->strlen(rock);    int letter;    rb->lcd_clear_display();    while(1)    {        b = rb->button_get_w_tmo(HZ/10);        if ( b == (BUTTON_OFF|BUTTON_REL) )            return 0;        else if ( b == (BUTTON_ON|BUTTON_REL) )            return 1;        rb->lcd_clear_display();        for(i=0, yy=y, xx=x; i< LETTERS_ON_SCREEN; i++) {            letter = rock[(i+textpos) % rocklen ];            rb->lcd_bitmap((char *)char_gen_12x16[letter-0x20],                       xx, table[yy&63],                       11, 16, false);            yy += YADD;            xx+= LCD_WIDTH/LETTERS_ON_SCREEN;        }        addclock();        rb->lcd_update();        x-= XSPEED;                if(x < 0) {            x += LCD_WIDTH/LETTERS_ON_SCREEN;            y += YADD;            textpos++;        }        y+=YSPEED;    }}static int loopit(void){    int b;    unsigned int y=100;    unsigned int x=100;    unsigned int yy,xx;    unsigned int i;    unsigned int ysanke=0;    unsigned int xsanke=0;    char* rock="ROCKbox";    unsigned int rocklen = rb->strlen(rock);    int show=0;    int timeout=0;    char buffer[30];    rb->lcd_clear_display();    while(1)    {        b = rb->button_get_w_tmo(HZ/10);        if ( b == (BUTTON_OFF|BUTTON_REL) )            return 0;                if ( b == SYS_USB_CONNECTED) {            rb->usb_screen();            return 0;        }        if ( b == (BUTTON_ON|BUTTON_REL) )            return 1;        else if(b != BUTTON_NONE)            timeout=20;        y+= speed[ysanke&15] + values[NUM_YADD].num;        x+= speed[xsanke&15] + values[NUM_XADD].num;        rb->lcd_clear_display();        addclock();        if(timeout) {            switch(b) {                case BUTTON_LEFT:                  values[show].num--;                  break;                case BUTTON_RIGHT:                  values[show].num++;                  break;                case BUTTON_UP:                  if(++show == NUM_LAST)                      show=0;                  break;                case BUTTON_DOWN:                  if(--show < 0)                      show=NUM_LAST-1;                  break;            }            rb->snprintf(buffer, 30, "%s: %d",                         values[show].what, values[show].num);            rb->lcd_putsxy(0, 56, buffer);            timeout--;        }        for(i=0, yy=y, xx=x;            i<rocklen;            i++, yy+=values[NUM_YDIST].num, xx+=values[NUM_XDIST].num)          rb->lcd_bitmap((char *)char_gen_12x16[rock[i]-0x20],                     xtable[xx%71], table[yy&63],                     11, 16, false);        rb->lcd_update();        ysanke+= values[NUM_YSANKE].num;        xsanke+= values[NUM_XSANKE].num;    }}enum plugin_status plugin_start(struct plugin_api* api, void* parameter){    int w, h;    char *off = "[Off] to stop";    int len;    TEST_PLUGIN_API(api);    (void)(parameter);    rb = api;    len = rb->strlen(SS_TITLE);    rb->lcd_setfont(FONT_SYSFIXED);    rb->lcd_getstringsize(SS_TITLE,&w, &h);    /* Get horizontel centering for text */    len *= w;    if (len%2 != 0)        len = ((len+1)/2)+(w/2);    else        len /= 2;        if (h%2 != 0)        h = (h/2)+1;    else        h /= 2;        rb->lcd_clear_display();    rb->lcd_putsxy(LCD_WIDTH/2-len, (LCD_HEIGHT/2)-h, SS_TITLE);        len = 1;    rb->lcd_getstringsize(off, &w, &h);        /* Get horizontel centering for text */    len *= w;    if (len%2 != 0)        len = ((len+1)/2)+(w/2);    else        len /= 2;        if (h%2 != 0)        h = (h/2)+1;    else        h /= 2;        rb->lcd_putsxy(LCD_WIDTH/2-len, LCD_HEIGHT-(2*h), off);    rb->lcd_update();    rb->sleep(HZ);        do {        h= loopit();        if(h)            h = scrollit();    } while(h);        rb->lcd_setfont(FONT_UI);        return false;}#endif

⌨️ 快捷键说明

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