Exemplo n.º 1
0
char* getHighestMode(int fb)
{
    int i = 0;

    if(read_mode_finished == 0) {
        read_graphics_fb_mode(fb);
    }

    if(g_config_len > 0) {
        for(i = 0; i<g_config_len; i++) {
            if(isModeValid(fb, g_config_mode[i].mode, strlen(g_config_mode[i].mode)))
                break;
        }
        return g_config_mode[i].mode;
    }

    return disp_class_list[fb].disp_mode_list[i].mode;
}
int isModeValid(int fb, char* pMode, int len)
{
    int err = 0;
    int i;

        LOGW("----------isModeValid:pMode=%s, len=%d", pMode, len);
    err = read_graphics_fb_mode(fb);
    if(err)
        return 0;

    for(i=0; i<disp_class_list[fb].disp_mode_length; i++) {
        LOGW("----------isModeValid:disp_mode_list[%d].mode=%s", i, disp_class_list[fb].disp_mode_list[i].mode);
        if(!strncmp(disp_class_list[fb].disp_mode_list[i].mode, pMode, len)) {
            return 1;
        }
    }

    return 0;
}
Exemplo n.º 3
0
int isModeValid(int fb, const char* pMode, int len)
{
    int err = 0;
    int i;

    //LOGW("isModeValid:pMode=%s, len=%d", pMode, len);
    if(read_mode_finished == 0) {
        err = read_graphics_fb_mode(fb);
        if(err)
            return 0;
    }

    for(i=0; i<disp_class_list[fb].disp_mode_length; i++) {
        //LOGW("isModeValid:disp_mode_list[%d].mode=%s", i, disp_class_list[fb].disp_mode_list[i].mode);
        if(!strncmp(disp_class_list[fb].disp_mode_list[i].mode, pMode, len)) {
            return 1;
        }
    }

    return 0;
}
Exemplo n.º 4
0
char* disp_get_disp_modelist(int fbid)
{
    LOGI("disp_get_disp_modelist");
    int i;
    char temp_mode[20];
    int pointer =0;
    char mode_send[MAX_DISP_DEVICE_MODE][20];
    int num_send = 0;

    if (g_config_len == 0) {
        char conf_modes[1024];
        int size;
        memset(conf_modes, 0, sizeof(conf_modes));
        memset(&g_config_mode[0], 0, sizeof(g_config_mode));
        int fd = open("/system/etc/display_mode.conf", O_RDONLY, 0);
        if(fd < 0) {
            LOGE("Warning: /system/etc/display_mode.conf not defined");
        }
        else {
            size = read(fd, conf_modes, sizeof(conf_modes));
            if(size > 0) {
                char* m_start = conf_modes;
                int m_len = 0;
                char *pmode = conf_modes;
                while(*pmode != '\0') {
                    if (*pmode == '\n') {
                        m_len = pmode - m_start + 1;
                        strncpy(g_config_mode[g_config_len].mode, m_start, m_len);
                        g_config_len ++;
                        m_start = pmode + 1;
                    }
                    pmode ++;
                }//while
            }
        }//else
    }

    memset(&disp_class_list[fbid].disp_mode_list[0], 0, MAX_DISP_DEVICE_MODE*sizeof(disp_mode));
    read_graphics_fb_mode(fbid);
    memset(mode_send, 0, sizeof(mode_send));
    
    for(i=0; i<disp_class_list[fbid].disp_mode_length; i++)
    {
        //strncpy(temp_mode+pointer, disp_mode_list[i].mode, strlen(disp_mode_list[i].mode)-1);
        //pointer = pointer +  strlen(disp_mode_list[i].mode) -1;
        //strncpy(temp_mode+pointer, " ", 1);
        //pointer = pointer +  1;
        if (g_config_len > 0) {
            int k, j;
            for(k=0; k<g_config_len; k++) {
                if(!strcmp(g_config_mode[k].mode, disp_class_list[fbid].disp_mode_list[i].mode)) {
                    strncpy(temp_mode, disp_class_list[fbid].disp_mode_list[i].mode, strlen(disp_class_list[fbid].disp_mode_list[i].mode)-1);
                    temp_mode[strlen(disp_class_list[fbid].disp_mode_list[i].mode)-1] = '\0';
                    for(j=0; j<num_send; j++) {
                        if(!strcmp(mode_send[j], temp_mode)) {
                            break;
                        }
                    }
                    if(j == num_send) {
                        strcpy(mode_send[num_send], temp_mode);
                        num_send++;
                        send_msg_with_code(InterfaceListResult, temp_mode, -1);
                    }
                }
            }
        }
        else {
            strncpy(temp_mode, disp_class_list[fbid].disp_mode_list[i].mode, strlen(disp_class_list[fbid].disp_mode_list[i].mode)-1);
            temp_mode[strlen(disp_class_list[fbid].disp_mode_list[i].mode)-1] = '\0';
            send_msg_with_code(InterfaceListResult, temp_mode, -1);
        }
    }
    
    //temp_mode[pointer] = '\0';
    //LOGW("modelist = %s", temp_mode);
    
    send_msg_with_code(CommandOkay, "Interface list completed", -1);
    return temp_mode;    
}