Changeset 39428


Ignore:
Timestamp:
12/13/16 20:21:32 (5 years ago)
Author:
gost
Message:

[titan] ARM first step dm900

Location:
titan/titan
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • titan/titan/mipselport.h

    r38477 r39428  
    15571557void setfbosd()
    15581558{
     1559#ifndef ARM
    15591560        debug(101, "################## set osd offset ####################");
    15601561        debug(101, "status.leftoffset: %d", status.leftoffset);
     
    15861587        setfbosddev(fbheightdev, fbheight);
    15871588        debug(101, "######################################################");
     1589#endif
    15881590}
    15891591
  • titan/titan/oled.h

    r36824 r39428  
    66        unsigned char* lfb1 = NULL;
    77        unsigned char* lfb2 = NULL;
     8        unsigned char byte;
    89        int i = 0;
    910        int bi = 0;
    1011        int ret = 0;
    1112       
    12         lfb1 = malloc(xres * yres);
     13        int lcdfd1 = open(getconfig("vfddev", NULL), O_RDWR);
     14       
     15        if(checkbox("DM900") == 1)
     16                lfb1 = malloc(xres * yres * 2);
     17        else
     18                lfb1 = malloc(xres * yres);
    1319        if(lfb1 == NULL)
    1420                return;
     21
     22        if(checkbox("DM900") != 1)
     23        {
    1524               
    16         for(i = 0; i <= xres*yres; i++)
     25                for(i = 0; i <= xres*yres; i++)
     26                {
     27                        //             R                           B                          G
     28                        lfb1[i] = ((76 * buf[bi+2]) / 255) + ((150 * buf[bi+1]) / 255) + ((28 * buf[bi]) / 255);
     29                        bi = bi + 4;
     30                }
     31       
     32               
     33                if(checkchipset("BCM7424") == 1)
     34                {
     35                        ret = write(lcdfd1, lfb1, xres * yres);
     36                        if(ret != xres * yres)
     37                                err("write to oled - %s - was not ok", getconfig("vfddev", NULL));
     38                }
     39                //Die Displays der dm7020hd, dm7025+(?), dm7080 und dm8000 haben 128*64*4bpp, DM800se hat 96*64*16bpp (RGB565), dm800 und dm7025(?) haben 132*64*1bpp (ältere ggf. 120*64 oder 128*64)
     40                else if(checkbox("DM7020HD") == 1 || checkbox("DM7020HDV2") == 1)
     41                {
     42                        bi = 0;
     43                        lfb2 = malloc(xres * yres / 2);
     44                        if(lfb2 == NULL)
     45                                return;
     46                        for(i = 0; i <= xres*yres; i = i + 2)
     47                        {
     48                                byte = lfb1[i] * 15 / 255;
     49                                lfb2[bi] = (byte << 4) & 0xf0;
     50                                byte = lfb1[i+1] * 15 / 255;
     51                                lfb2[bi] |= byte & 0x0f;
     52                                bi = bi + 1;
     53                        }
     54                        ret = write(lcdfd1, lfb2, xres * yres / 2);
     55                        if(ret != xres * yres / 2)
     56                                err("write to oled - %s - was not ok", getconfig("vfddev", NULL));
     57                        free(lfb2);
     58                }
     59        }
     60        else
    1761        {
    18                 //             R                           B                          G
    19                 lfb1[i] = ((76 * buf[bi+2]) / 255) + ((150 * buf[bi+1]) / 255) + ((28 * buf[bi]) / 255);
    20                 bi = bi + 4;
    21         }
    22        
    23         int lcdfd1 = open(getconfig("vfddev", NULL), O_RDWR);
    24        
    25         if(checkchipset("BCM7424") == 1)
    26         {
    27                 ret = write(lcdfd1, lfb1, xres * yres);
    28                 if(ret != xres * yres)
    29                         err("write to oled - %s - was not ok", getconfig("vfddev", NULL));
    30         }
    31         //Die Displays der dm7020hd, dm7025+(?), dm7080 und dm8000 haben 128*64*4bpp, DM800se hat 96*64*16bpp (RGB565), dm800 und dm7025(?) haben 132*64*1bpp (ältere ggf. 120*64 oder 128*64)
    32         else if(checkbox("DM7020HD") == 1 || checkbox("DM7020HDV2") == 1)
    33         {
    34                 unsigned char byte;
    35                 bi = 0;
    36                 lfb2 = malloc(xres * yres / 2);
    37                 if(lfb2 == NULL)
    38                         return;
    39                 for(i = 0; i <= xres*yres; i = i + 2)
     62                //RGB565
     63                for(i = 0; i <= xres*yres*2; i = i + 2)
    4064                {
    41                         byte = lfb1[i] * 15 / 255;
    42                         lfb2[bi] = (byte << 4) & 0xf0;
    43                         byte = lfb1[i+1] * 15 / 255;
    44                         lfb2[bi] |= byte & 0x0f;
    45                         bi = bi + 1;
     65                        lfb1[i] = buf[bi+2] & 0xF8;
     66                        byte = (buf[bi] >> 5) & 0x07;
     67                        lfb1[i] = lfb1[i] ^ byte;
     68                        lfb1[i+1] = (buf[bi] << 3) & 0xE0;
     69                        byte = (buf[bi+1] >> 3) & 0x1F;
     70                        lfb1[i+1] = lfb1[i+1] ^ byte;
     71                        bi = bi + 4;
    4672                }
    47                 ret = write(lcdfd1, lfb2, xres * yres / 2);
    48                 if(ret != xres * yres / 2)
    49                         err("write to oled - %s - was not ok", getconfig("vfddev", NULL));
     73                ret = write(lcdfd1, lfb1, xres * yres * 2);
     74                if(ret != xres * yres * 2)
     75                        err("write to oled dm900 - %s - was not ok", getconfig("vfddev", NULL));
    5076                free(lfb2);
    5177        }
    52                
    5378        close(lcdfd1);
    5479       
     
    93118                                OLED_all = getscreen(getskinconfig("OLED_dream1", NULL));
    94119                }
    95         }       
     120        }
     121        else if(checkbox("DM900") == 1)
     122        {
     123                if(status.updatevfd == PAUSE)
     124                        OLED_all = getscreen("OLED_dream2_menu");
     125                else if(status.standby > 0)
     126                        OLED_all = getscreen("OLED_dream2_standby");
     127                else
     128                {
     129                        if(getskinconfig("OLED_dream2", NULL) == NULL)
     130                                OLED_all = getscreen("OLED_dream2");
     131                        else
     132                                OLED_all = getscreen(getskinconfig("OLED_dream2", NULL));
     133                }
     134        }               
    96135               
    97136       
  • titan/titan/skin.h

    r38603 r39428  
    42444244                                }
    42454245                        }
     4246                        else if(node->name != NULL && ostrstr(node->name, "OLED_dream2") != NULL) {
     4247                                debug(100, "alloc OLED_dream2 framebuffer");
     4248                                oledskinfb = oledaddfb(400, 240);
     4249                                if(oledskinfb == NULL)
     4250                                {
     4251                                        if(flag == 0 || flag == 4)
     4252                                                m_unlock(&status.drawingmutex, 0);
     4253                                        return -2;
     4254                                }
     4255                        }
    42464256                }
    42474257                merkskinfb = skinfb;
  • titan/titan/titan.c

    r38317 r39428  
    776776#ifdef MIPSEL
    777777        waitvsync();
    778         if(checkbox("DM7020HD") == 0 && checkbox("DM7020HDV2") == 0 && checkbox("VUSOLO2") == 0)
     778        if(checkbox("DM7020HD") == 0 && checkbox("DM7020HDV2") == 0 && checkbox("VUSOLO2") == 0 && checkbox("DM900") == 0)
    779779                setfbosd();
    780780        status.usedirectfb = 1;
     
    945945        else
    946946                ret = readscreen(getconfig("keyskin_file", NULL), 0, 0);
    947         if(checkchipset("BCM7424") == 1 || checkbox("DM7020HD") == 1 || checkbox("DM7020HDV2") == 1)  //inihdp
     947        if(checkchipset("BCM7424") == 1 || checkbox("DM7020HD") == 1 || checkbox("DM7020HDV2") == 1 || checkbox("DM900") == 1)  //inihdp
    948948        {
    949949                if(getconfig("oledskin_path", NULL) == NULL)
     
    10061006                        }
    10071007                }
    1008                 if(checkbox("DM7020HD") == 1 || checkbox("DM7020HDV2") == 1)
     1008                if(checkbox("DM7020HD") == 1 || checkbox("DM7020HDV2") == 1 || checkbox("DM900"))
    10091009                {
    10101010                        addconfig("remotecontrol", "0");
  • titan/titan/vfd.h

    r39121 r39428  
    240240                return writevfdioctl(value);
    241241               
    242         if(checkchipset("BCM7424") == 1 || checkbox("DM7020HD") == 1 || checkbox("DM7020HDV2") == 1) //inihdp
     242        if(checkchipset("BCM7424") == 1 || checkbox("DM7020HD") == 1 || checkbox("DM7020HDV2") == 1 || checkbox("DM900") == 1) //inihdp
     243        //if(checkchipset("BCM7424") == 1 || checkbox("DM7020HD") == 1 || checkbox("DM7020HDV2") == 1) //inihdp
    243244        {
    244245                int oledret = 0;
     
    430431        addvfdiconstate(VFD_CLOCK);
    431432
    432         if(checkbox("DM7020HD") == 1 || checkbox("DM7020HDV2") == 1)
     433        if(checkbox("DM7020HD") == 1 || checkbox("DM7020HDV2") == 1 || checkbox("DM900") == 1)
    433434                initOLEDdream1();
    434435        else
     
    471472
    472473        // Set VFD icons:
    473         if(checkchipset("BCM7424") != 1 && checkbox("DM7020HD") != 1 && checkbox("DM7020HDV2") != 1) //inihdp
     474        if(checkchipset("BCM7424") != 1 && checkbox("DM7020HD") != 1 && checkbox("DM7020HDV2") != 1 && checkbox("DM900") != 1) //inihdp
    474475                setvfdicon(VFD_REC, status.recording > 0);
    475         if(status.standby == 0 && checkbox("DM7020HD") != 1 && checkbox("DM7020HDV2") != 1 && checkbox("ATEMIO530") != 1 && checkbox("ATEMIO520") != 1 && checkbox("IPBOX91") != 1 && checkbox("ATEMIO6000") != 1 && checkbox("ATEMIO6100") != 1)
     476        if(status.standby == 0 && checkbox("DM900") != 1 && checkbox("DM7020HD") != 1 && checkbox("DM7020HDV2") != 1 && checkbox("ATEMIO530") != 1 && checkbox("ATEMIO520") != 1 && checkbox("IPBOX91") != 1 && checkbox("ATEMIO6000") != 1 && checkbox("ATEMIO6100") != 1)
    476477        {
    477478                //setvfdicon(VFD_USB, 0);
     
    563564                        case 1: // off
    564565                                tmpstr = ostrcat(tmpstr, " ", 1, 0);
    565                                 if(checkchipset("BCM7424") == 1 || checkbox("DM7020HD") == 1 || checkbox("DM7020HDV2") == 1) //inihdp
     566                                if(checkchipset("BCM7424") == 1 || checkbox("DM7020HD") == 1 || checkbox("DM7020HDV2") || checkbox("DM900") == 1) //inihdp
    566567                                {
    567568                                        free(tmpstr);
     
    570571                                break;
    571572                        case 2: // date + time
    572                                 if(checkchipset("BCM7424") == 1 || checkbox("DM7020HD") == 1 || checkbox("DM7020HDV2") == 1) //inihdp
     573                                if(checkchipset("BCM7424") == 1 || checkbox("DM7020HD") == 1 || checkbox("DM7020HDV2") == 1 || checkbox("DM900") == 1) //inihdp
    573574                                        tmpstr = ostrcat(tmpstr, gettime(NULL, "%d.%m - %H:%M"), 1, 1);
    574575                                else
     
    587588
    588589                // Switch off all VFD icons:
    589                 if(checkchipset("BCM7424") != 1 || checkbox("DM7020HD") == 1 || checkbox("DM7020HDV2") == 1) //inihdp
     590                if(checkchipset("BCM7424") != 1 || checkbox("DM7020HD") == 1 || checkbox("DM7020HDV2") == 1 || checkbox("DM900") == 1) //inihdp
    590591                        setallvfdsymbols(0);
    591592        }
     
    664665                {
    665666                        action = 2;
    666                         if(checkchipset("BCM7358") == 1 || checkbox("ATEMIO6200") == 1 || checkchipset("BCM7424") == 1 || checkbox("DM7020HD") == 1 || checkbox("DM7020HDV2") == 1) //inihde inihdp
     667                        if(checkchipset("BCM7358") == 1 || checkbox("ATEMIO6200") == 1 || checkchipset("BCM7424") == 1 || checkbox("DM7020HD") == 1 || checkbox("DM7020HDV2") == 1 || checkbox("DM900") == 1) //inihde inihdp
    667668                                writevfd("RECORD");
    668669                        else if(checkbox("ATEMIO6000") == 1 || checkbox("ATEMIO6100") == 1 || checkbox("SPARK") == 1)
Note: See TracChangeset for help on using the changeset viewer.