Jump to content

Joel Bodenmann

Administrators
  • Posts

    2,654
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by Joel Bodenmann

  1. The font stuff is in the progress of a complete rework right now. Please stay tight, all your issues will be resolved soon... ~ Tectu
  2. I found some time to write a demo for you. The following is just an extension of the demo you can find in the repository and on the web page. main.c #include "gfx.h" #include "image_buttons.h" static GListener gl; static GHandle ghButton1; static gdispImage buttons; static void createWidgets(void) { GWidgetInit wi; // Apply some default values for GWIN wi.customDraw = 0; wi.customParam = 0; wi.customStyle = 0; wi.g.show = TRUE; // Prepare the images for the button gdispImageSetMemoryReader(&buttons, image_buttons); gdispImageOpen(&buttons); // Apply the button parameters wi.g.width = 79; wi.g.height = 32; wi.g.y = 10; wi.g.x = 10; wi.text = ""; // Create the actual button ghButton1 = gwinButtonCreate(NULL, &wi); // Apply the image gwinSetCustomDraw(ghButton1, gwinButtonDraw_Image, &buttons); } int main(void) { GEvent* pe; // Initialize the display gfxInit(); // Set the widget defaults gwinSetDefaultFont(gdispOpenFont("UI2")); gwinSetDefaultStyle(&WhiteWidgetStyle, FALSE); gdispClear(White); // Attach the mouse input gwinAttachMouse(0); // create the widget createWidgets(); // We want to listen for widget events geventListenerInit(&gl); gwinAttachListener(&gl); while(1) { // Get an Event pe = geventEventWait(&gl, TIME_INFINITE); switch(pe->type) { case GEVENT_GWIN_BUTTON: if (((GEventGWinButton*)pe)->button == ghButton1) { // Our button has been pressed printf("Button clicked\r\n"); } break; default: break; } } return 0; } image_buttons.h static const unsigned char image_buttons[] = { 0x47, 0x49, 0x46, 0x38, 0x37, 0x61, 0x4F, 0x00, 0x60, 0x00, 0xE7, 0xF1, 0x00, 0x18, 0x19, 0x17, 0x19, 0x1B, 0x18, 0x1A, 0x1C, 0x19, 0x1B, 0x1C, 0x1A, 0x1C, 0x1D, 0x1B, 0x1D, 0x1F, 0x1C, 0x1E, 0x1F, 0x1D, 0x1F, 0x20, 0x1E, 0x20, 0x21, 0x1F, 0x21, 0x23, 0x20, 0x22, 0x24, 0x21, 0x23, 0x24, 0x22, 0x24, 0x25, 0x23, 0x25, 0x27, 0x24, 0x26, 0x28, 0x25, 0x27, 0x28, 0x26, 0x28, 0x29, 0x27, 0x29, 0x2B, 0x28, 0x2A, 0x2C, 0x29, 0x2B, 0x2D, 0x2A, 0x2C, 0x2D, 0x2B, 0x2D, 0x2E, 0x2C, 0x2E, 0x2F, 0x2D, 0x2F, 0x31, 0x2E, 0x30, 0x32, 0x2F, 0x31, 0x33, 0x30, 0x32, 0x33, 0x31, 0x33, 0x34, 0x32, 0x34, 0x36, 0x33, 0x35, 0x37, 0x34, 0x36, 0x38, 0x35, 0x37, 0x39, 0x36, 0x38, 0x39, 0x37, 0x39, 0x3A, 0x38, 0x3A, 0x3B, 0x39, 0x3B, 0x3D, 0x3A, 0x3C, 0x3E, 0x3B, 0x3D, 0x3F, 0x3C, 0x3E, 0x40, 0x3D, 0x3F, 0x40, 0x3E, 0x40, 0x41, 0x3F, 0x41, 0x42, 0x40, 0x41, 0x43, 0x41, 0x43, 0x45, 0x42, 0x44, 0x46, 0x43, 0x45, 0x47, 0x44, 0x46, 0x48, 0x45, 0x47, 0x49, 0x46, 0x48, 0x49, 0x47, 0x49, 0x4A, 0x48, 0x4A, 0x4B, 0x49, 0x4A, 0x4C, 0x4A, 0x4C, 0x4E, 0x4B, 0x4D, 0x4F, 0x4C, 0x4E, 0x50, 0x4D, 0x4F, 0x51, 0x4E, 0x50, 0x52, 0x4F, 0x51, 0x53, 0x50, 0x52, 0x54, 0x51, 0x53, 0x54, 0x52, 0x54, 0x55, 0x53, 0x55, 0x56, 0x54, 0x56, 0x57, 0x55, 0x56, 0x58, 0x55, 0x57, 0x59, 0x56, 0x59, 0x5B, 0x58, 0x5A, 0x5C, 0x59, 0x5B, 0x5D, 0x5A, 0x5C, 0x5E, 0x5B, 0x5D, 0x5F, 0x5C, 0x5E, 0x60, 0x5D, 0x5F, 0x61, 0x5E, 0x60, 0x62, 0x5F, 0x61, 0x63, 0x60, 0x62, 0x64, 0x61, 0x63, 0x65, 0x62, 0x64, 0x65, 0x63, 0x65, 0x66, 0x64, 0x66, 0x67, 0x65, 0x67, 0x68, 0x66, 0x68, 0x69, 0x67, 0x68, 0x6A, 0x67, 0x69, 0x6B, 0x68, 0x6A, 0x6C, 0x69, 0x6B, 0x6D, 0x6A, 0x6C, 0x6E, 0x6B, 0x6D, 0x6F, 0x6C, 0x6E, 0x70, 0x6D, 0x6F, 0x71, 0x6E, 0x71, 0x73, 0x70, 0x72, 0x74, 0x71, 0x73, 0x75, 0x72, 0x74, 0x76, 0x73, 0x75, 0x77, 0x74, 0x76, 0x78, 0x75, 0x77, 0x79, 0x76, 0x78, 0x7A, 0x77, 0x79, 0x7B, 0x78, 0x7A, 0x7C, 0x79, 0x7B, 0x7D, 0x7A, 0x7C, 0x7E, 0x7B, 0x7D, 0x7F, 0x7C, 0x7E, 0x80, 0x7D, 0x7F, 0x81, 0x7E, 0x80, 0x82, 0x7F, 0x81, 0x83, 0x80, 0x82, 0x84, 0x81, 0x83, 0x85, 0x82, 0x84, 0x86, 0x83, 0x85, 0x87, 0x84, 0x86, 0x88, 0x85, 0x87, 0x89, 0x86, 0x88, 0x8A, 0x87, 0x89, 0x8B, 0x88, 0x8A, 0x8C, 0x89, 0x8B, 0x8D, 0x8A, 0x8C, 0x8E, 0x8B, 0x8D, 0x8F, 0x8C, 0x8E, 0x90, 0x8D, 0x8F, 0x91, 0x8E, 0x90, 0x92, 0x8F, 0x91, 0x93, 0x90, 0x92, 0x94, 0x91, 0x93, 0x95, 0x92, 0x94, 0x96, 0x93, 0x95, 0x97, 0x94, 0x96, 0x98, 0x95, 0x97, 0x99, 0x96, 0x98, 0x9A, 0x97, 0x9A, 0x9B, 0x98, 0x9B, 0x9D, 0x99, 0x9C, 0x9E, 0x9B, 0x9D, 0x9F, 0x9C, 0x9E, 0xA0, 0x9D, 0x9F, 0xA1, 0x9E, 0xA0, 0xA2, 0x9F, 0xA1, 0xA3, 0xA0, 0xA2, 0xA4, 0xA1, 0xA3, 0xA5, 0xA2, 0xA4, 0xA6, 0xA3, 0xA5, 0xA7, 0xA4, 0xA7, 0xA9, 0xA6, 0xA8, 0xAA, 0xA7, 0xA9, 0xAB, 0xA8, 0xAA, 0xAC, 0xA9, 0xAB, 0xAD, 0xAA, 0xAC, 0xAE, 0xAB, 0xAD, 0xAF, 0xAC, 0xAE, 0xB0, 0xAD, 0xB0, 0xB2, 0xAE, 0xB1, 0xB3, 0xAF, 0xB2, 0xB4, 0xB1, 0xB3, 0xB5, 0xB2, 0xB4, 0xB6, 0xB3, 0xB5, 0xB7, 0xB4, 0xB6, 0xB8, 0xB5, 0xB7, 0xB9, 0xB6, 0xB8, 0xBA, 0xB7, 0xB9, 0xBB, 0xB8, 0xBA, 0xBC, 0xB9, 0xBD, 0xBB, 0xBF, 0xBC, 0xBE, 0xBB, 0xB9, 0xBF, 0xC1, 0xC2, 0xBD, 0xBB, 0xBD, 0xBF, 0xBC, 0xC0, 0xBE, 0xC2, 0xC1, 0xBF, 0xC3, 0xBE, 0xC1, 0xBD, 0xBC, 0xC1, 0xC3, 0xC0, 0xC2, 0xBE, 0xC1, 0xC3, 0xBF, 0xC5, 0xC2, 0xC7, 0xC2, 0xC4, 0xC1, 0xC8, 0xC3, 0xC2, 0xC3, 0xC5, 0xC2, 0xC4, 0xC6, 0xC3, 0xC5, 0xC7, 0xC4, 0xC6, 0xC8, 0xC5, 0xC7, 0xC9, 0xC6, 0xC8, 0xCA, 0xC7, 0xC9, 0xCB, 0xC8, 0xCF, 0xCA, 0xC8, 0xCA, 0xCC, 0xC9, 0xC7, 0xCD, 0xCF, 0xCB, 0xCE, 0xCA, 0xC9, 0xCE, 0xD0, 0xCD, 0xCF, 0xCB, 0xCE, 0xD0, 0xCC, 0xCF, 0xD1, 0xCE, 0xD3, 0xD0, 0xD5, 0xD0, 0xD2, 0xCF, 0xD4, 0xD1, 0xD6, 0xCE, 0xD3, 0xD6, 0xD1, 0xD3, 0xD0, 0xD8, 0xD2, 0xD1, 0xD2, 0xD4, 0xD1, 0xD0, 0xD5, 0xD8, 0xD3, 0xD5, 0xD2, 0xD4, 0xD6, 0xD3, 0xD5, 0xD7, 0xD4, 0xD6, 0xD8, 0xD5, 0xD8, 0xDA, 0xD6, 0xD9, 0xDB, 0xD7, 0xDA, 0xDC, 0xD9, 0xD8, 0xDD, 0xE0, 0xDC, 0xDE, 0xDB, 0xDD, 0xDF, 0xDC, 0xDE, 0xE0, 0xDD, 0xDF, 0xE1, 0xDE, 0xE1, 0xE4, 0xE0, 0xE3, 0xE5, 0xE1, 0xE4, 0xE6, 0xE3, 0xE5, 0xE7, 0xE4, 0xE9, 0xE6, 0xEB, 0xE6, 0xE8, 0xE5, 0xED, 0xE7, 0xE6, 0xE7, 0xE9, 0xE6, 0xDF, 0xEC, 0xED, 0xE8, 0xEA, 0xE7, 0xE9, 0xEB, 0xE8, 0xEA, 0xEC, 0xE9, 0xEB, 0xEE, 0xEA, 0xED, 0xEF, 0xEB, 0xF4, 0xEE, 0xED, 0xEE, 0xF0, 0xED, 0xE8, 0xF2, 0xEC, 0xF1, 0xF0, 0xE6, 0xEF, 0xF1, 0xEE, 0xF0, 0xF2, 0xEF, 0xF1, 0xF3, 0xF0, 0xF2, 0xF4, 0xF1, 0xF3, 0xF5, 0xF2, 0xF4, 0xF7, 0xF3, 0xF6, 0xF8, 0xF4, 0xF7, 0xF9, 0xF6, 0xF8, 0xFA, 0xF7, 0xF9, 0xFB, 0xF8, 0xFA, 0xFC, 0xF9, 0xFB, 0xFD, 0xFA, 0xFC, 0xFF, 0xFB, 0xFE, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x00, 0x60, 0x00, 0x00, 0x08, 0xFE, 0x00, 0xC3, 0x09, 0x43, 0xE5, 0xA9, 0xA0, 0xC1, 0x83, 0x08, 0x13, 0x2A, 0x5C, 0xC8, 0xB0, 0xA1, 0x43, 0x85, 0xA6, 0x8A, 0x8D, 0x1B, 0x96, 0x4C, 0x1D, 0xBC, 0x8B, 0x18, 0x33, 0x6A, 0xDC, 0xC8, 0xB1, 0xA3, 0xC7, 0x8F, 0x20, 0x39, 0xAA, 0x4B, 0xD6, 0xEB, 0xD4, 0xBA, 0x90, 0x28, 0x53, 0xAA, 0x5C, 0xA9, 0x71, 0x1D, 0x29, 0x4F, 0x2C, 0x63, 0xCA, 0x9C, 0x89, 0xB1, 0x20, 0xCD, 0x9B, 0x38, 0x41, 0xDA, 0xCC, 0xC9, 0xB3, 0x27, 0x3C, 0x9B, 0xEE, 0x82, 0x0A, 0x1D, 0x4A, 0xB4, 0xA8, 0xD1, 0xA3, 0x48, 0x93, 0x2A, 0x45, 0xFA, 0x13, 0xE6, 0xD2, 0xA7, 0x50, 0xA3, 0x4A, 0x25, 0xDA, 0x14, 0xDE, 0xD4, 0xAB, 0x58, 0xB3, 0xBA, 0xAB, 0xAA, 0xB5, 0xAB, 0x57, 0xA6, 0x36, 0xDB, 0x89, 0x1D, 0x4B, 0x56, 0xEC, 0xAB, 0x3A, 0x68, 0xD1, 0x0E, 0x2B, 0xCB, 0xB6, 0xAD, 0xDB, 0xB7, 0x70, 0xE3, 0x56, 0x8D, 0xDB, 0xAE, 0x4E, 0x83, 0x08, 0x12, 0xF2, 0x46, 0x78, 0x44, 0x57, 0xEC, 0xB0, 0x67, 0x64, 0xBD, 0xBD, 0xEA, 0x4B, 0x98, 0xED, 0xDC, 0xB8, 0x77, 0x3C, 0x74, 0x71, 0x57, 0xEE, 0x8E, 0x8C, 0x18, 0x7D, 0x7D, 0x20, 0xB0, 0x33, 0xF6, 0xD5, 0x81, 0x04, 0x85, 0x33, 0x8B, 0xAD, 0xCA, 0xAE, 0xB3, 0xE7, 0xCF, 0x9D, 0xF3, 0xBC, 0x90, 0x13, 0xB4, 0x18, 0x13, 0x29, 0xED, 0xD8, 0x35, 0xA2, 0xE3, 0xAA, 0xF3, 0x33, 0x3A, 0x74, 0x3A, 0x37, 0x32, 0x71, 0x01, 0x0A, 0x9F, 0x67, 0xCF, 0xB4, 0x40, 0xF0, 0x10, 0x08, 0x92, 0x67, 0x4D, 0x59, 0x7A, 0x2C, 0x09, 0xF4, 0x19, 0xF6, 0x33, 0x57, 0x4B, 0x7A, 0x10, 0x07, 0xCD, 0x9C, 0x33, 0x73, 0xD0, 0x79, 0x6A, 0xDC, 0x71, 0xD7, 0x6E, 0x8C, 0x90, 0x4D, 0xD4, 0x7F, 0x38, 0xC0, 0xD3, 0xD9, 0xD5, 0x02, 0x08, 0x9D, 0x7F, 0xFE, 0x64, 0xB8, 0x51, 0x44, 0x86, 0xAC, 0x57, 0x0F, 0x4C, 0x10, 0x09, 0x22, 0xA5, 0x73, 0x16, 0x04, 0x0E, 0x90, 0x90, 0xB0, 0x80, 0xA3, 0x5B, 0xE7, 0x04, 0x0F, 0xBE, 0x30, 0x70, 0x40, 0xC1, 0x42, 0xA1, 0xE7, 0x9F, 0x39, 0x07, 0x60, 0x68, 0x35, 0x6C, 0xA1, 0x86, 0x09, 0x2C, 0x28, 0x12, 0x54, 0x3B, 0x44, 0x90, 0x70, 0x48, 0x6A, 0xAF, 0x60, 0xC0, 0x42, 0x6A, 0xEC, 0x6C, 0xF1, 0x44, 0x27, 0xD4, 0xB5, 0x43, 0x8B, 0x0F, 0x5B, 0x58, 0xD5, 0x0E, 0x2C, 0x0A, 0x5C, 0x90, 0x0C, 0x63, 0x4E, 0xBC, 0xE0, 0x47, 0x67, 0x12, 0xA4, 0xA0, 0x83, 0x2D, 0xED, 0xBC, 0xC1, 0xC3, 0x16, 0x14, 0x02, 0x28, 0xE0, 0x80, 0xD1, 0x71, 0xF1, 0x86, 0x0C, 0x24, 0xE8, 0x51, 0x4E, 0x6A, 0x49, 0xE4, 0x40, 0x49, 0x6A, 0xAE, 0x94, 0x90, 0x04, 0x85, 0x5E, 0x4C, 0xE1, 0x09, 0x75, 0xEC, 0xD0, 0x32, 0x84, 0x17, 0x41, 0xB1, 0x13, 0xC6, 0x05, 0x76, 0x2C, 0xA8, 0x0A, 0x13, 0x51, 0x74, 0xB6, 0x01, 0x11, 0xB0, 0x88, 0x45, 0x89, 0x14, 0x72, 0xC4, 0xF8, 0x5C, 0x55, 0xE9, 0x84, 0x29, 0xE6, 0x98, 0x61, 0xDE, 0x41, 0xC3, 0x1D, 0xA9, 0x05, 0xD2, 0x44, 0x19, 0xEA, 0xA4, 0x93, 0xC4, 0x0F, 0x97, 0xB0, 0xA3, 0x8E, 0x2A, 0x29, 0x54, 0xB9, 0x4E, 0x3A, 0x51, 0x1C, 0x91, 0x09, 0x3B, 0xEB, 0xA8, 0xF3, 0x8A, 0x0C, 0x55, 0xA4, 0xA6, 0x0E, 0x11, 0x28, 0xFC, 0x28, 0x27, 0x2D, 0x46, 0x3C, 0x21, 0x67, 0x07, 0x4B, 0x28, 0xD3, 0x59, 0x21, 0x44, 0xDC, 0x21, 0x27, 0x99, 0x63, 0x56, 0x75, 0xCE, 0xA5, 0x98, 0x66, 0x7A, 0xA9, 0x1D, 0x32, 0xD8, 0xD1, 0xD9, 0x38, 0x4D, 0xF8, 0x30, 0xCC, 0x39, 0x6F, 0x5A, 0xB2, 0x0E, 0x3A, 0xA9, 0xA0, 0x00, 0x05, 0x3B, 0xE9, 0x90, 0xFA, 0x83, 0xA9, 0xFE, 0xE8, 0x9C, 0x93, 0xEA, 0xAA, 0xAD, 0x1A, 0x61, 0x83, 0x25, 0xEC, 0xC4, 0xCA, 0x8A, 0x0C, 0x55, 0xA6, 0xD3, 0x81, 0x12, 0xC9, 0x9C, 0x7A, 0x47, 0x0D, 0x75, 0xE4, 0xAA, 0x69, 0xA6, 0x96, 0x1E, 0xAB, 0x29, 0xA7, 0xC5, 0xAA, 0xF3, 0x8C, 0x0E, 0x4B, 0xEC, 0x82, 0x4E, 0xA9, 0xA7, 0x36, 0xA1, 0x2A, 0xAB, 0xAE, 0xC2, 0x2A, 0xEB, 0xB5, 0xAD, 0x16, 0xD2, 0x83, 0x18, 0xA7, 0x9E, 0xB3, 0x45, 0x0A, 0x7D, 0xB0, 0xFA, 0xEB, 0x31, 0xEA, 0xA0, 0xC3, 0xAC, 0xB1, 0xCA, 0x9E, 0x93, 0x6C, 0xBB, 0x9B, 0xCA, 0x20, 0x86, 0x23, 0x79, 0x90, 0x70, 0x42, 0x18, 0xAC, 0x92, 0xF1, 0x43, 0x16, 0x89, 0x10, 0xB1, 0x41, 0x0B, 0xED, 0xB5, 0x2A, 0xC6, 0x0F, 0x62, 0xE8, 0xB2, 0xCB, 0x39, 0xCA, 0xA8, 0x3A, 0x89, 0x27, 0xE7, 0x60, 0x53, 0x04, 0x14, 0x6C, 0xB0, 0x12, 0x47, 0x03, 0x2C, 0x18, 0x63, 0xAE, 0x12, 0xC6, 0xA8, 0x73, 0xCE, 0xBA, 0xB1, 0xB6, 0xFB, 0x2E, 0xBC, 0x9C, 0x46, 0x31, 0x04, 0x08, 0x15, 0x94, 0xF1, 0x0C, 0xAB, 0xC1, 0x1C, 0x21, 0xC5, 0x0E, 0x4E, 0x78, 0xE2, 0x43, 0x16, 0xD8, 0xEE, 0x22, 0x45, 0x14, 0x39, 0xE4, 0x71, 0x0E, 0x3A, 0x77, 0x3C, 0xD1, 0x04, 0x09, 0xE8, 0xA0, 0x73, 0xCC, 0x1A, 0x45, 0x84, 0xF0, 0xC0, 0x09, 0xB0, 0xF0, 0x89, 0xCE, 0xAF, 0x19, 0x6F, 0x2C, 0x43, 0xB1, 0x1D, 0x2B, 0xFB, 0x71, 0xBB, 0xE8, 0xAC, 0xD3, 0xD9, 0x3A, 0x52, 0x77, 0x96, 0x4E, 0xD4, 0xC7, 0x9C, 0x2C, 0x75, 0x6A, 0xAD, 0x62, 0x5D, 0x4C, 0x9B, 0xE8, 0xA4, 0x63, 0xCD, 0x31, 0xD2, 0x5C, 0x9D, 0x0E, 0x3B, 0xD8, 0xEC, 0x72, 0x4C, 0xD5, 0xE9, 0x9E, 0x2D, 0xE7, 0xCD, 0x55, 0x37, 0x7D, 0xEC, 0xD3, 0xCA, 0xA2, 0xA3, 0x0E, 0x68, 0x77, 0xC6, 0xEA, 0x36, 0xFE, 0x9F, 0x52, 0x87, 0x7B, 0x8E, 0xDB, 0x79, 0xDB, 0x3D, 0x75, 0xCF, 0xEA, 0x54, 0xDD, 0x59, 0xBA, 0x70, 0x63, 0x2B, 0x38, 0xE2, 0x1E, 0xDB, 0x04, 0x6F, 0xA6, 0x61, 0x8F, 0xD9, 0xF3, 0xA5, 0x61, 0x83, 0x1D, 0x76, 0xD3, 0x95, 0x5F, 0x4D, 0x79, 0x3A, 0x60, 0xDF, 0x9C, 0xB9, 0xE6, 0x9B, 0x77, 0x7C, 0xF9, 0xE3, 0x74, 0x3F, 0x6E, 0xFA, 0xE9, 0xA8, 0xA7, 0x0E, 0x6F, 0xE9, 0xAA, 0xB7, 0xEE, 0xFA, 0xEB, 0x97, 0xB2, 0x0E, 0xFB, 0xEC, 0xB4, 0x3B, 0xED, 0x78, 0xED, 0xB8, 0xE7, 0xAE, 0xE9, 0x4F, 0xA4, 0x48, 0xAD, 0xFB, 0xEF, 0xB5, 0x53, 0x1D, 0x4A, 0x30, 0xC1, 0xFA, 0x64, 0x7C, 0x4C, 0xEB, 0x24, 0x63, 0x4B, 0x35, 0xB9, 0xBC, 0xF4, 0xD0, 0xF3, 0xD0, 0x47, 0x2F, 0x7D, 0x41, 0xA5, 0xD8, 0xD2, 0x0C, 0x37, 0xBF, 0x98, 0x32, 0xFD, 0xF6, 0xDC, 0x73, 0x7F, 0x0A, 0x31, 0xDF, 0x00, 0x53, 0xD1, 0xF1, 0xE4, 0xA7, 0x34, 0x52, 0x30, 0xBD, 0xB3, 0xDA, 0xF3, 0xFA, 0xEC, 0xB7, 0xEF, 0xFE, 0xFB, 0xF0, 0xC7, 0x2F, 0xFF, 0xFC, 0xEF, 0xF3, 0xF9, 0x12, 0x3C, 0xE8, 0x98, 0xA3, 0xFF, 0xFE, 0xFC, 0xF7, 0xEF, 0xFF, 0xFF, 0x00, 0x0C, 0xA0, 0x00, 0x07, 0x08, 0xC0, 0xAA, 0x94, 0xE3, 0x80, 0x08, 0x4C, 0xA0, 0x02, 0x17, 0xC8, 0xC0, 0x06, 0x3A, 0xF0, 0x81, 0x10, 0x74, 0xA0, 0x01, 0x23, 0x48, 0xC1, 0x0A, 0x5A, 0xF0, 0x82, 0x09, 0x9C, 0x20, 0x06, 0x37, 0xC8, 0x41, 0x0E, 0x56, 0x85, 0x1C, 0x20, 0x0C, 0xA1, 0x08, 0x47, 0x48, 0xC2, 0x12, 0x9A, 0xF0, 0x84, 0x28, 0x4C, 0xE1, 0x09, 0xAB, 0x32, 0x8E, 0x16, 0xBA, 0xF0, 0x85, 0x30, 0x8C, 0xA1, 0x0C, 0x67, 0x48, 0xC3, 0x1A, 0xDA, 0x90, 0x86, 0x2C, 0xBC, 0xA1, 0x0E, 0x77, 0xC8, 0xC3, 0x1E, 0xBE, 0xB0, 0x2A, 0xFE, 0xE0, 0x08, 0xA2, 0x10, 0x87, 0x18, 0x44, 0x4F, 0xB8, 0xE1, 0x88, 0x47, 0x94, 0x05, 0x11, 0x97, 0xC8, 0xC4, 0x26, 0x3A, 0xF1, 0x89, 0x50, 0xAC, 0x8A, 0x37, 0xA6, 0x48, 0xC5, 0x2A, 0x4E, 0xD1, 0x0D, 0x0A, 0x78, 0x00, 0x04, 0xB6, 0xE8, 0x00, 0x44, 0x58, 0xF1, 0x8B, 0x54, 0x8C, 0x45, 0x31, 0xAA, 0x08, 0x0D, 0x4F, 0x80, 0xF1, 0x8C, 0x68, 0x44, 0xA3, 0x14, 0xD3, 0xE8, 0x0D, 0x38, 0x6C, 0x00, 0x0B, 0xE6, 0xC0, 0x46, 0x1C, 0x5C, 0xD0, 0x82, 0x71, 0xB0, 0xD1, 0x1B, 0x39, 0x30, 0xC0, 0x1B, 0xA8, 0xE8, 0x89, 0x02, 0x1C, 0xE0, 0x8E, 0x80, 0x3C, 0x63, 0x55, 0xBA, 0x41, 0xC8, 0x42, 0x1A, 0x92, 0x90, 0x72, 0x58, 0x41, 0x1B, 0xD2, 0xB5, 0x8B, 0x23, 0x30, 0xA1, 0x1C, 0xDE, 0x28, 0x44, 0x1B, 0x3A, 0x41, 0xC8, 0x61, 0xB4, 0xA1, 0x0D, 0x84, 0x2C, 0xC4, 0x08, 0x28, 0xB0, 0x84, 0x3A, 0x14, 0x63, 0x18, 0x54, 0x68, 0xC0, 0x06, 0xF0, 0x90, 0x88, 0x42, 0x42, 0x62, 0x0A, 0x39, 0x30, 0x02, 0x1E, 0x0C, 0x79, 0xC9, 0x61, 0x74, 0xC2, 0x08, 0x39, 0x58, 0xE5, 0x21, 0x67, 0x59, 0x15, 0x6E, 0xD8, 0xF2, 0x96, 0xB8, 0xB4, 0xE5, 0x1C, 0x62, 0x20, 0x07, 0x74, 0x94, 0xA3, 0x0B, 0x3D, 0xA8, 0xC4, 0x39, 0xC0, 0x91, 0x03, 0x06, 0xC4, 0xA1, 0x1B, 0xDC, 0xE0, 0x44, 0x02, 0x1A, 0x80, 0xCC, 0x1C, 0x58, 0x40, 0x06, 0x3F, 0x68, 0xC1, 0x4B, 0x1A, 0x30, 0x02, 0x1F, 0xF0, 0x80, 0x09, 0xC8, 0x9C, 0x82, 0x01, 0x18, 0x30, 0xB2, 0x09, 0xC8, 0xE0, 0x19, 0xB6, 0x3C, 0x40, 0x03, 0xB0, 0xA0, 0x00, 0x06, 0x48, 0x60, 0x02, 0x7C, 0xC8, 0xA5, 0x3A, 0x6B, 0xA9, 0xCE, 0x5C, 0xEE, 0xB2, 0x0A, 0x64, 0x10, 0x01, 0x0A, 0x08, 0xA1, 0x31, 0x70, 0xFC, 0x00, 0x04, 0x81, 0xFE, 0x18, 0x47, 0x37, 0x3A, 0x51, 0x01, 0x14, 0x90, 0xC3, 0x1B, 0xDD, 0xA8, 0x82, 0x12, 0x30, 0x91, 0x8E, 0x72, 0x80, 0x23, 0x15, 0x39, 0xA8, 0x82, 0x3A, 0xCC, 0x31, 0x0E, 0x4F, 0x20, 0x80, 0x02, 0xBB, 0x28, 0x87, 0x36, 0x94, 0xB0, 0x82, 0x3B, 0x20, 0x13, 0x02, 0x25, 0xB0, 0x01, 0x2B, 0xCA, 0x91, 0x06, 0x1C, 0x58, 0xC1, 0x1B, 0xED, 0xBC, 0x65, 0x55, 0xB6, 0x41, 0xD2, 0x92, 0x9A, 0x94, 0xA4, 0x72, 0x80, 0x41, 0x15, 0xD0, 0xE0, 0x02, 0x10, 0xD4, 0x81, 0x1B, 0xE5, 0xE8, 0xC6, 0x10, 0x68, 0xE0, 0x88, 0x98, 0x76, 0x22, 0x04, 0x43, 0x38, 0x07, 0x40, 0xB1, 0xC0, 0x04, 0x82, 0x1A, 0x34, 0x15, 0x3D, 0xB0, 0xC2, 0x3A, 0xCE, 0x41, 0x0E, 0x2D, 0x50, 0x00, 0x0E, 0xB1, 0x32, 0x87, 0x27, 0x8C, 0xB0, 0x04, 0x70, 0x70, 0x03, 0x03, 0x3E, 0x38, 0xC5, 0x39, 0xCC, 0xE1, 0x88, 0x25, 0xB0, 0x81, 0x1C, 0xDC, 0x38, 0xA9, 0x49, 0xAB, 0x82, 0x8D, 0xAE, 0x7A, 0xF5, 0xAB, 0x5D, 0x85, 0xC3, 0x68, 0xF2, 0xB7, 0x87, 0x23, 0x7C, 0x81, 0x1B, 0xD8, 0x20, 0x82, 0x0E, 0x22, 0x41, 0x0E, 0x6D, 0x6C, 0xA2, 0x04, 0x4B, 0x38, 0x07, 0x5A, 0x99, 0x10, 0x04, 0x4A, 0xC4, 0x54, 0x1B, 0x9E, 0x70, 0xC1, 0x13, 0xD0, 0x01, 0x8E, 0x6D, 0xFC, 0x80, 0x04, 0x8F, 0x38, 0xC7, 0x38, 0xB8, 0xA1, 0x8A, 0x20, 0x24, 0x61, 0x1C, 0xDA, 0xD0, 0x40, 0x11, 0x8A, 0x61, 0x0E, 0x70, 0xF8, 0xC1, 0x07, 0x72, 0x28, 0xC7, 0x36, 0xC0, 0xFA, 0xD5, 0xAA, 0x58, 0xE3, 0xB2, 0x98, 0xCD, 0xEC, 0x65, 0xDF, 0xF0, 0x82, 0x38, 0xF8, 0x12, 0x1B, 0x48, 0xC8, 0x81, 0x2C, 0xAC, 0x31, 0x04, 0x1D, 0x40, 0x02, 0x1C, 0xD8, 0xD0, 0x04, 0x09, 0x94, 0x60, 0x8E, 0x6D, 0x90, 0xD6, 0xB4, 0xA8, 0xB5, 0xFE, 0x86, 0x6A, 0x59, 0xEB, 0x5A, 0x20, 0xC4, 0x00, 0x12, 0x6D, 0xB5, 0x06, 0x27, 0x5C, 0xB0, 0x04, 0x89, 0x6A, 0x80, 0x08, 0xC1, 0x18, 0x87, 0x1C, 0x63, 0xF0, 0x06, 0x89, 0x6A, 0x36, 0xB3, 0x96, 0x3D, 0xAE, 0x66, 0x39, 0x5B, 0xDC, 0x6E, 0x14, 0xA3, 0x06, 0x45, 0x88, 0x45, 0x5A, 0x61, 0x8B, 0x8D, 0x23, 0xAC, 0xB6, 0xB5, 0xAF, 0x3D, 0x2D, 0x36, 0x64, 0x7B, 0x5D, 0xD7, 0xF2, 0x01, 0x07, 0x5C, 0x10, 0xAE, 0x35, 0xA8, 0x60, 0x82, 0x3B, 0xB4, 0xF6, 0xB7, 0xBB, 0xE8, 0x86, 0x35, 0x98, 0x6B, 0x5C, 0xE5, 0x5A, 0x23, 0xB9, 0xEE, 0xDD, 0xEC, 0x0B, 0xB8, 0x90, 0x88, 0x39, 0x84, 0x60, 0x04, 0x5B, 0x30, 0x07, 0x37, 0xBA, 0xA0, 0x83, 0x29, 0x04, 0xE2, 0x07, 0x18, 0x48, 0x01, 0x13, 0xB0, 0xBB, 0x05, 0x1D, 0x70, 0xE1, 0x15, 0xAE, 0xB0, 0x86, 0x2E, 0x56, 0xEB, 0x88, 0x4A, 0x58, 0xA3, 0x19, 0x40, 0x50, 0x82, 0x19, 0x3A, 0x91, 0x86, 0x05, 0xA0, 0x20, 0xA2, 0x89, 0x25, 0x42, 0x7A, 0xD7, 0xFB, 0x82, 0xE2, 0x6A, 0x23, 0xBE, 0xF0, 0x8D, 0x2F, 0x67, 0x97, 0xE0, 0x83, 0x0E, 0x48, 0xE0, 0x0B, 0xCA, 0x90, 0x6B, 0x2C, 0x84, 0xC0, 0x04, 0x1B, 0x20, 0xC1, 0x12, 0x39, 0x90, 0x02, 0x76, 0x5F, 0xC1, 0x84, 0x25, 0xD0, 0x60, 0x0E, 0x97, 0x8D, 0x43, 0x12, 0x8E, 0x10, 0x02, 0x6B, 0xA4, 0xAD, 0x0C, 0x40, 0xF0, 0x40, 0x03, 0x48, 0x10, 0x0A, 0xA2, 0x62, 0x03, 0xBD, 0xEA, 0x65, 0xEF, 0x87, 0xDD, 0x1B, 0x62, 0xF7, 0x62, 0x03, 0x1C, 0xB1, 0x22, 0xC7, 0x38, 0xCA, 0x41, 0x54, 0x6D, 0x60, 0x63, 0x1C, 0xC4, 0x03, 0xA1, 0x39, 0xD2, 0x81, 0xDD, 0x2B, 0xEF, 0x42, 0x17, 0xDE, 0xB0, 0xF2, 0x36, 0xA0, 0x11, 0x8C, 0xEB, 0x61, 0x63, 0x1B, 0xE5, 0x88, 0xC6, 0xFE, 0x2C, 0x76, 0x41, 0x8E, 0x73, 0xC4, 0xD4, 0x1A, 0xDB, 0x30, 0xC7, 0x39, 0xD4, 0xFB, 0x64, 0x37, 0x2F, 0x59, 0xB9, 0x4D, 0x56, 0x2E, 0x36, 0xBA, 0xA1, 0xC0, 0xC1, 0x5E, 0x16, 0xA6, 0xE6, 0x28, 0x47, 0x0B, 0x05, 0xBD, 0x64, 0x6E, 0x90, 0xA3, 0x1C, 0x58, 0xED, 0x2A, 0x38, 0x0E, 0x88, 0x5A, 0x6C, 0x18, 0x3A, 0x81, 0xDD, 0xD8, 0xAE, 0x36, 0xC6, 0x41, 0x0E, 0xD7, 0xEE, 0x99, 0x1C, 0xB1, 0x65, 0xB2, 0x4D, 0xE2, 0x9B, 0x59, 0x6C, 0x68, 0xA3, 0xA4, 0x56, 0xC6, 0xAC, 0xA7, 0x6D, 0x69, 0x65, 0x6D, 0xDC, 0xD9, 0x1A, 0xDA, 0xB0, 0xE5, 0x76, 0x7D, 0xBC, 0x8D, 0xAC, 0x62, 0x36, 0xD5, 0xC8, 0x0C, 0xF5, 0x65, 0x4D, 0xBD, 0x6A, 0x4F, 0xAF, 0x5A, 0xD3, 0x30, 0xE1, 0xB4, 0xAE, 0x77, 0xCD, 0xEB, 0x5E, 0xFB, 0x3A, 0xCF, 0xBE, 0x0E, 0xB6, 0xB0, 0x87, 0x8D, 0x59, 0x60, 0x13, 0xFB, 0xD8, 0xC8, 0xC6, 0x35, 0x3C, 0x92, 0xCD, 0xEC, 0x66, 0x1F, 0x97, 0x77, 0xEB, 0x28, 0x87, 0xB3, 0xA7, 0x9D, 0x6C, 0x72, 0xAC, 0x63, 0x78, 0xC5, 0x2B, 0x9F, 0xB6, 0x3D, 0x92, 0xBC, 0x5B, 0x5C, 0x23, 0x17, 0xA3, 0xE8, 0x9E, 0xB8, 0xC7, 0xDD, 0x10, 0x51, 0xD4, 0x82, 0x19, 0xE2, 0x78, 0xC5, 0x22, 0x06, 0xC1, 0xEE, 0x76, 0xBB, 0xFB, 0xDD, 0xF0, 0x8E, 0xB7, 0xBC, 0xE7, 0x4D, 0xEF, 0x7A, 0xC7, 0x9B, 0x11, 0xAD, 0xC8, 0xC6, 0x2A, 0x52, 0x21, 0x8D, 0x5B, 0x53, 0xFB, 0xDF, 0xBD, 0x7E, 0x46, 0x28, 0x4C, 0xA1, 0x88, 0x68, 0x34, 0x23, 0x18, 0x5F, 0xD6, 0x85, 0xC2, 0x17, 0xCE, 0xF0, 0x86, 0x3B, 0xFC, 0xE1, 0x10, 0x8F, 0xB8, 0xC4, 0x27, 0xCE, 0xF0, 0x5D, 0xEC, 0x22, 0x11, 0x83, 0x70, 0x86, 0x2D, 0x5E, 0xC1, 0x8A, 0x8E, 0x7B, 0xFC, 0xE3, 0x20, 0x0F, 0xB9, 0xC8, 0xFE, 0x47, 0x4E, 0xF2, 0x92, 0x9B, 0x5C, 0xE4, 0xB3, 0x60, 0xB7, 0x31, 0x38, 0x7E, 0xF2, 0x96, 0xBB, 0xFC, 0xE5, 0x30, 0xF7, 0xB8, 0x2C, 0xD8, 0x3D, 0x8C, 0x98, 0xDB, 0xFC, 0xE6, 0x38, 0x67, 0xC5, 0xCC, 0x07, 0x11, 0x8C, 0x9C, 0xFB, 0xFC, 0xE7, 0x24, 0xDF, 0x79, 0xCF, 0x4B, 0xEE, 0x8A, 0xA2, 0x1B, 0x1D, 0xE8, 0x48, 0x0F, 0x3A, 0xBB, 0x87, 0x3E, 0x72, 0x57, 0xBC, 0x22, 0x16, 0xB2, 0x88, 0x7A, 0x2C, 0x60, 0xE1, 0x8A, 0xA4, 0x5B, 0x5D, 0xE6, 0x4B, 0x27, 0x7A, 0x2C, 0x66, 0x41, 0x8B, 0x59, 0xC8, 0x62, 0x16, 0xB3, 0x88, 0x45, 0xD5, 0x4D, 0xFE, 0x0A, 0x58, 0xB0, 0x9C, 0x15, 0x4E, 0xA7, 0xFA, 0xD5, 0x41, 0x2E, 0x74, 0xA2, 0xCB, 0x82, 0x10, 0x58, 0xB8, 0xC2, 0x15, 0xB0, 0x90, 0x85, 0x46, 0x70, 0xFC, 0xE8, 0x1D, 0x2F, 0x7A, 0xC7, 0x5F, 0x21, 0xF5, 0xBB, 0xC3, 0x22, 0xEA, 0x6A, 0xCF, 0xBB, 0xD3, 0x11, 0xFC, 0x71, 0xA3, 0x17, 0x9D, 0xF0, 0x27, 0x6F, 0x3B, 0xC9, 0x5D, 0x21, 0x8B, 0x2C, 0x10, 0xE0, 0x00, 0x08, 0x88, 0xFC, 0x01, 0xD8, 0xE0, 0x0A, 0x58, 0xC4, 0x82, 0xF0, 0x4F, 0x17, 0xBB, 0x2B, 0x62, 0x41, 0x0B, 0x5B, 0x34, 0xA2, 0x12, 0xAF, 0xE0, 0xBB, 0x2D, 0x4E, 0x31, 0x08, 0xB5, 0x3F, 0x3D, 0xEA, 0xB2, 0xB8, 0x7C, 0xDE, 0x63, 0x31, 0x75, 0xA8, 0xA7, 0xFE, 0xEC, 0x4A, 0xE7, 0xB9, 0xDB, 0xB7, 0x20, 0x81, 0x21, 0xC0, 0xE2, 0x14, 0x58, 0x08, 0x01, 0x08, 0xF8, 0x1E, 0xF6, 0xAA, 0xC3, 0xC2, 0xEB, 0x08, 0xE6, 0x3C, 0x0B, 0x00, 0x90, 0x05, 0x58, 0xFC, 0xBD, 0x10, 0x00, 0x08, 0x80, 0xD8, 0x79, 0xEF, 0x75, 0xB0, 0x9F, 0x87, 0x15, 0x7C, 0xA7, 0x45, 0xD4, 0xB9, 0xDE, 0x7B, 0x93, 0x2B, 0xBE, 0xE9, 0xB2, 0xE8, 0xC2, 0x07, 0xAA, 0xFE, 0xC0, 0x75, 0x47, 0xD8, 0x40, 0x07, 0x7C, 0x7F, 0xC3, 0x15, 0xFE, 0xB0, 0xF9, 0x4C, 0x60, 0xC1, 0x0A, 0xAC, 0x80, 0x85, 0x1B, 0x32, 0xC0, 0x00, 0x03, 0x4F, 0xC2, 0x12, 0x43, 0x38, 0xC0, 0x89, 0xDB, 0xB0, 0xF5, 0x59, 0xD8, 0x01, 0x08, 0x2B, 0xB8, 0xC1, 0x18, 0x64, 0xE1, 0xF4, 0x59, 0x64, 0x01, 0x0B, 0x95, 0x10, 0x08, 0x37, 0xC0, 0x02, 0x62, 0x00, 0x7B, 0x22, 0x77, 0x7D, 0x22, 0xC7, 0x78, 0x5D, 0x30, 0x02, 0x59, 0xC0, 0x75, 0x49, 0xD0, 0x02, 0x74, 0xC0, 0x77, 0x2D, 0x50, 0x00, 0x59, 0xB0, 0x79, 0x84, 0x30, 0x00, 0x07, 0x00, 0x7D, 0x2D, 0xD0, 0x00, 0x25, 0x00, 0x03, 0x21, 0x10, 0x08, 0x81, 0x60, 0x00, 0x18, 0xF0, 0x02, 0x2D, 0xA0, 0x03, 0xB2, 0x40, 0x0B, 0x42, 0x10, 0x00, 0x05, 0x20, 0x03, 0x16, 0xB0, 0x00, 0x27, 0xE0, 0x09, 0xAF, 0x30, 0x0B, 0x02, 0x60, 0x00, 0x45, 0x40, 0x00, 0x05, 0xA0, 0x00, 0x0B, 0x40, 0x06, 0xD6, 0xC7, 0x6E, 0xC5, 0x60, 0x7C, 0x3E, 0xF8, 0x83, 0x96, 0x37, 0x0B, 0x5F, 0x50, 0x02, 0x43, 0xF0, 0x04, 0x18, 0xE0, 0x01, 0x6B, 0x10, 0x75, 0xB6, 0x20, 0x03, 0x17, 0x60, 0x06, 0x50, 0x67, 0x08, 0x0E, 0xE0, 0x01, 0x7F, 0x67, 0x0B, 0x6A, 0x85, 0x07, 0x96, 0x27, 0x0B, 0x8A, 0xC0, 0x02, 0xB6, 0x27, 0x0B, 0xB6, 0x80, 0x08, 0x03, 0xD0, 0x00, 0x8F, 0x10, 0x0B, 0xAA, 0xA0, 0x03, 0x20, 0x00, 0x06, 0xB2, 0x80, 0x0B, 0x09, 0xB0, 0x01, 0x29, 0x70, 0x08, 0xB3, 0x40, 0x05, 0x2B, 0x60, 0x7B, 0x40, 0x08, 0x84, 0xB4, 0xC0, 0x6E, 0xC9, 0x00, 0x76, 0x76, 0x78, 0x87, 0x5C, 0xA7, 0x0B, 0x61, 0x60, 0x02, 0x46, 0x40, 0x05, 0x25, 0x90, 0x01, 0x61, 0xF0, 0x0A, 0xB6, 0xB0, 0x0B, 0x38, 0x90, 0x02, 0x74, 0x40, 0x0B, 0xFE, 0xBA, 0xA0, 0x08, 0x19, 0x60, 0x03, 0xB3, 0x30, 0x88, 0x48, 0xF0, 0x03, 0x7C, 0xC0, 0x75, 0xB8, 0xE0, 0x08, 0x31, 0x70, 0x04, 0x5C, 0xB7, 0x0B, 0x4C, 0xD0, 0x00, 0x5B, 0x90, 0x87, 0x85, 0x90, 0x03, 0x3D, 0x30, 0x88, 0x11, 0x20, 0x03, 0x85, 0x80, 0x88, 0x76, 0xE0, 0x03, 0x58, 0x80, 0x87, 0xA8, 0xB8, 0x0B, 0x74, 0x88, 0x8A, 0x77, 0x88, 0x88, 0x7B, 0xE8, 0x05, 0x88, 0x78, 0x06, 0x2C, 0x33, 0x88, 0x39, 0xF0, 0x02, 0x78, 0x30, 0x88, 0x8B, 0xD0, 0x01, 0x3E, 0x70, 0x89, 0x3F, 0x50, 0x03, 0x79, 0x20, 0x89, 0x8C, 0x50, 0x02, 0x41, 0x40, 0x0B, 0x88, 0x58, 0x03, 0x1C, 0x60, 0x07, 0x9D, 0xB7, 0x0B, 0x8F, 0x50, 0x03, 0x3C, 0x30, 0x88, 0x13, 0xE0, 0x23, 0x88, 0xB8, 0x06, 0x32, 0xE0, 0x05, 0xAC, 0x78, 0x87, 0xAA, 0x38, 0x08, 0x75, 0x58, 0x8D, 0x79, 0xF8, 0x8A, 0x16, 0x27, 0x0B, 0x3C, 0xF0, 0x02, 0x92, 0xA0, 0x0B, 0xB5, 0x98, 0x07, 0x16, 0x97, 0x8B, 0xBB, 0x88, 0x88, 0xE3, 0x68, 0x0B, 0x9D, 0x97, 0x08, 0xBA, 0x88, 0x0B, 0x9D, 0x67, 0x03, 0x28, 0x90, 0x07, 0x06, 0xB3, 0x0B, 0x8B, 0x60, 0x02, 0x3F, 0xE0, 0x8C, 0x39, 0x30, 0x09, 0x88, 0x28, 0x06, 0x28, 0xC0, 0x05, 0xDA, 0x08, 0x76, 0xD7, 0x98, 0x0C, 0xC4, 0x38, 0x90, 0x04, 0xD9, 0x79, 0x7A, 0x68, 0x02, 0x5D, 0x60, 0x71, 0x9F, 0xC0, 0x02, 0x3A, 0xF0, 0x08, 0xE2, 0xF8, 0x02, 0x7A, 0x60, 0x71, 0x3D, 0xA0, 0x8B, 0x9D, 0x87, 0x0B, 0xB5, 0xA8, 0x07, 0xBA, 0x60, 0x0B, 0xB6, 0xC0, 0x8E, 0x3E, 0xB0, 0x0B, 0x1A, 0xC9, 0x06, 0x2E, 0xD0, 0x04, 0x16, 0xD7, 0x48, 0x1E, 0x20, 0x06, 0xB8, 0xB0, 0x0B, 0xCF, 0x28, 0x09, 0xB6, 0x70, 0x90, 0x5B, 0x50, 0x90, 0x2E, 0x19, 0x90, 0x2E, 0x59, 0xFE, 0x90, 0xB6, 0xF0, 0x05, 0x26, 0xD0, 0x04, 0x72, 0x20, 0x06, 0x1A, 0xC0, 0x01, 0x4B, 0xD0, 0x79, 0x25, 0x52, 0x04, 0x6D, 0x40, 0x03, 0x12, 0x10, 0x02, 0x40, 0x40, 0x8C, 0xB6, 0xD0, 0x04, 0x2F, 0xD0, 0x04, 0x8E, 0xF0, 0x08, 0xB4, 0xA0, 0x09, 0xBA, 0x68, 0x07, 0x81, 0x40, 0x0B, 0xAA, 0x50, 0x03, 0x3E, 0x60, 0x05, 0x89, 0xA0, 0x05, 0x07, 0x00, 0x02, 0x2A, 0x89, 0x0B, 0x29, 0xD9, 0x79, 0x34, 0xD9, 0x92, 0x31, 0x39, 0x90, 0x30, 0xF9, 0x95, 0x03, 0xE9, 0x05, 0xF6, 0xC8, 0x82, 0x0D, 0xE0, 0x04, 0x99, 0x40, 0x8C, 0x91, 0x60, 0x03, 0xD1, 0xC4, 0x03, 0x81, 0xF0, 0x02, 0x45, 0x30, 0x90, 0x90, 0xF0, 0x03, 0x3F, 0xB0, 0x02, 0x61, 0x40, 0x8C, 0x5E, 0xD0, 0x03, 0x3B, 0xA0, 0x01, 0xC4, 0x48, 0x09, 0x53, 0x50, 0x03, 0x17, 0x80, 0x00, 0x1C, 0x70, 0x08, 0x03, 0xB9, 0x95, 0xB4, 0x40, 0x96, 0x5E, 0x29, 0x96, 0x61, 0x29, 0x96, 0x8C, 0x39, 0x90, 0x92, 0x90, 0x96, 0x5F, 0x29, 0x09, 0x91, 0x40, 0x90, 0x9F, 0xB0, 0x30, 0x94, 0xF9, 0x08, 0x94, 0xD0, 0x98, 0x9A, 0x49, 0x0B, 0x8B, 0xB9, 0x99, 0x9E, 0xF9, 0x99, 0xA0, 0xE9, 0x99, 0x9D, 0x19, 0x9A, 0xA4, 0x59, 0x9A, 0xA1, 0x39, 0x9A, 0xA6, 0x99, 0x9A, 0xAA, 0x19, 0x93, 0xA8, 0xB9, 0x9A, 0xAE, 0xA9, 0x9A, 0xAD, 0xF9, 0x9A, 0xB2, 0x79, 0x9A, 0x74, 0x38, 0x9B, 0xB6, 0x69, 0x9A, 0xAA, 0x98, 0x08, 0xC5, 0xE0, 0x8E, 0xB7, 0xD9, 0x9B, 0x9B, 0x89, 0x0B, 0x1B, 0x69, 0x0A, 0x9B, 0xC0, 0x99, 0x23, 0x59, 0x9C, 0xC6, 0x79, 0x9C, 0xC8, 0x99, 0x9C, 0xCA, 0xB9, 0x9C, 0xCC, 0xA9, 0x9C, 0xB4, 0x70, 0x09, 0xA1, 0x50, 0x0D, 0xA1, 0x80, 0x71, 0xF6, 0x56, 0x9D, 0xD6, 0x79, 0x9D, 0xD8, 0xC9, 0x6E, 0x8A, 0x05, 0x00, 0x0A, 0xCF, 0x10, 0x10, 0x00, 0x3B, }; The image is a *.gif so make sure you got that format enabled in your gfxconf.h. I hope that helps, ~ Tectu
  3. Hello TechNet, The documentation describes the process as following: * @note The image custom draw function @p gwinButtonDraw_Image() uses param to pass in the gdispImage pointer. * The image must be already opened before calling @p gwinSetCustomDraw(). The image should be 3 * times the height of the button. The button image is repeated 3 times vertically, the first (top) for * the "up" image, the 2nd for the "down" image, and the third (bottom) image for the disabled state. If * the disabled state is never going to be used then the image can be just 2 times the button height. * No checking is done to compare the size of the button to the size of the image. * Note text is drawn on top of the image. If you have any problem getting it running anyway, please post some code so we can take a look and tell you what might be of a problem. ~ Tectu
  4. Since the registers of your LCDs are "selected" through the databus and not the address bus, this makes sense. Please try 0x60000000 and 0x60000001 for your GDISP_REG and GDISP_RAM values. ~ Tectu
  5. Meh, I just packed out my hardware, plugged everything in and flashed the demo project to start debugging what you're talking about... now I hit F5 and the issue is gone Anyway, the issue is resolved, that's a good thing. Sorry that I couldn't help better. Happy hacking! ~ Tectu
  6. Hey goeck and welcome to the new forum I'm sorry but I'm trying really hard to understand what you're saying... Is something not working for you or are you asking why it's implemented that way? Or is maybe something broken? I would have tried it out before this post but I'm currently not able to. ~ Tectu
  7. I didn't take a look at the datasheet nor your complete code but what I see directly is that this: #define GDISP_REG (*((volatile uint16_t *) 0x60000000)) /* RS = 0 */ #define GDISP_RAM (*((volatile uint16_t *) 0x08000000)) /* RS = 1 */ seems to be wrong. The FSMC Bank you're using starts at 0x60000000 and therefore the address of your RS pin cannot be below that. How did you get to 0x08000000 anyway? That's actually the start address of the flash. ~ Tectu
  8. Thanks for finding and fixing that error. I took a look and I can verify that the GQUEUE_NEED_ASYNC macro gets set to TRUE as it should. ~ Tectu
  9. Good to hear that you got it working! ~ Tectu
  10. Hello David, Can you please give some more information about what your troubles are and what you already tried to do? ~ Tectu
  11. Yes, that for sure, I also meant that you won't notice any visible color quality differences ~ Tectu
  12. Well, it can be done with GPIO without any problem. Since he uses ChibiOS/RT it's fairly easy because it offers to build a bus structure out of several GPIO pins. However, I don't really see the reason to use this display in 18- instead of 16-bit mode too. I don't think that you'll notice any difference at all. ~ Tectu
  13. Because the FSMC has per definition only a 16-bit data width. You'd have to bitbang your stuff using GPIO then. @ mobyfab: There are an awful lot of people having issues with the SSD1963 driver. Can you confirm that the driver itself is fine the way it is and that it's only a problem with the panel configuration? We have to find a solution for this. Maybe some more documentation will help there. ~ Tectu
  14. One more issue fixed - excellent! I will try to come up with a better solution for custom initialization routines. When you want to use your display in 18-bit mode, you have to create a copy of the driver and modify it that it matches the 18-bit stuff. The current SSD1963 driver runs in RGB565 format. You have to make sure that you handle all the colors and data writing correctly inside the driver. You will also have to redefine the color_t type since it's a uint16_t by default. ~ Tectu
  15. Hello David, Just leave it blank so your line would look like this: palSetPadMode(GPIOB, 12, PAL_MODE_OUTPUT_PUSHPULL Why exactly are you modifying the SPI config registers in your SPI struct? I cannot remember the default values provided by ChibiOS/RT but experience says that it will work for 99% sure if you leave it as it is. Just set a higher prescaler to be sure that your LCD controller can handle it. I know that distributors often write «SPI Freq = 10MHz» in their example codes but those are very often just copied and copied and copied and copied so the comments are not up to date. static const SPIConfig spi2cfg1 = { NULL, /* HW dependent part.*/ GPIOB, 12, SPI_CR1_BR_2 | SPI_CR1_BR_1 }; Furthermore I can see that you seem to directly access your registers in the board file. Why do you do this? I advice you to do everything through the SPI driver provided by the ChibiOS/RT HAL because the spiSend() command already handles the busy flag and so on. One more thing: How long are your wires? ~ Tectu
  16. Good to hear that you got it working. The multicolor lines indicate that this part of the screen was not initialized properly. Please check your initialization code to make sure that the entire area gets initialized. ~ Tectu
×
×
  • Create New...