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

📄 osd.c

📁 代码有点长,需细心阅读,仅供影音视听类产品的开发人员参考
💻 C
📖 第 1 页 / 共 5 页
字号:
    if((int)addr_vy(osd_free) >= (int)OBV_H)
    {
        psprintf(linebuf, "OSD BUFFER OVERFLOW(osd_init_prog).... %x(%x)\n",
                         addr_vy(osd_free), OBV_H);
        epp_write_slow(linebuf);
    }
#endif
#endif

    ClearOsdMsg(0);
    osd_enable();
}

/*
** New init()
** for DVD setup menu
*/
void osd_init_setup_main(void)
{
#ifdef IR_SETUP_MENU_ON//EDO_REDUCE
    osd_disable();

    // setup first free address
    osd_free = addr_vxvy(0, 0);

    //MAX creation
    //region[0].osd_w = 14 * 4;
    //region[0].osd_h = 6 * OSD_FONT_HEIGHT;


#if CONFIG==CONFIG_COMBO_SVCD
// setup region 6   
    region[6].osd_w = 24 * 4;           //13*4;
    region[6].osd_h = OSD_FONT_HEIGHT;
    osd_create_region(&region[6], 72, 45 + (OSD_FONT_HEIGHT * 6), NULL,
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);


// setup region 5   
    region[5].osd_w = 24 * 4;           //13*4;
    region[5].osd_h = OSD_FONT_HEIGHT;
    osd_create_region(&region[5], 72, 45 + (OSD_FONT_HEIGHT * 5), &region[6],
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);


// setup region 4   
    region[4].osd_w = 24 * 4;           //13*4;
    region[4].osd_h = OSD_FONT_HEIGHT;
    osd_create_region(&region[4], 72, 45 + (OSD_FONT_HEIGHT * 4), &region[5],
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);


// setup region 3   
    region[3].osd_w = 24 * 4;           //13*4;
    region[3].osd_h = OSD_FONT_HEIGHT;
    osd_create_region(&region[3], 72, 45 + (OSD_FONT_HEIGHT * 3), &region[4],
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);


    // setup region 2   
    region[2].osd_w = 24 * 4;           //13*4;
    region[2].osd_h = OSD_FONT_HEIGHT;
    osd_create_region(&region[2], 72, 45 + (OSD_FONT_HEIGHT * 2), &region[3],
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);

    // setup region 1   
    region[1].osd_w = 24 * 4;           //13*4;
    region[1].osd_h = OSD_FONT_HEIGHT;
    osd_create_region(&region[1], 72, 45 + (OSD_FONT_HEIGHT * 1), &region[2],
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);

    // setup region 0   
    region[0].osd_w = 24 * 4;           //13*4;
    region[0].osd_h = OSD_FONT_HEIGHT;
    osd_create_region(&region[0], 72, 45 + (OSD_FONT_HEIGHT * 0), &region[1],
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);

#ifdef    MONE_OSD_BUFFER
    if((int)addr_vy(osd_free) >= (int)(MEM_AUDYA_DEF - MEM_OSDYA_DEF))
    {
        psprintf(linebuf,
                         "OSD BUFFER OVERFLOW(osd_init_setup_main)....%x-%x(%x)\n",
                         addr_vx(osd_free), addr_vy(osd_free),
                         (MEM_AUDYA_DEF - MEM_OSDYA_DEF));
        epp_write(linebuf);
    }
#endif

#else

    // setup region 5   
    region[5].osd_w = 13 * 4;
    region[5].osd_h = OSD_FONT_HEIGHT;
    osd_create_region(&region[5], 110, 60 + (OSD_FONT_HEIGHT * 5), NULL,
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);


// setup region 4   
    region[4].osd_w = 13 * 4;
    region[4].osd_h = OSD_FONT_HEIGHT;
    osd_create_region(&region[4], 110, 60 + (OSD_FONT_HEIGHT * 4), &region[5],
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);


// setup region 3   
    region[3].osd_w = 13 * 4;
    region[3].osd_h = OSD_FONT_HEIGHT;
    osd_create_region(&region[3], 110, 60 + (OSD_FONT_HEIGHT * 3), &region[4],
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);


    // setup region 2   
    region[2].osd_w = 13 * 4;
    region[2].osd_h = OSD_FONT_HEIGHT;
    osd_create_region(&region[2], 110, 60 + (OSD_FONT_HEIGHT * 2), &region[3],
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);

    // setup region 1   
    region[1].osd_w = 13 * 4;
    region[1].osd_h = OSD_FONT_HEIGHT;
    osd_create_region(&region[1], 110, 60 + (OSD_FONT_HEIGHT * 1), &region[2],
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);

    // setup region 0   
    region[0].osd_w = 13 * 4;
    region[0].osd_h = OSD_FONT_HEIGHT;
    osd_create_region(&region[0], 110, 60 + (OSD_FONT_HEIGHT * 0), &region[1],
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);

#ifdef    MONE_OSD_BUFFER
    if((int)addr_vy(osd_free) >= (int)OBV_H)
    {
        psprintf(linebuf, "OSD BUFFER OVERFLOW(osd_init_setup_main).... %x(%x)\n",
                         addr_vy(osd_free), OBV_H);
        epp_write_slow(linebuf);
    }
#endif

#endif

    ClearOsdMsg(0);
    osd_enable();
#endif//IR_SETUP_MENU_ON    
}

void osd_init_setup_set_eq(void)
{
#ifdef IR_SETUP_MENU_ON//EDO_REDUCE 
    osd_disable();

    // setup first free address
    osd_free = addr_vxvy(0, 0);


#if CONFIG==CONFIG_COMBO_SVCD
    // setup region 5
    region[5].osd_w = 26 * 4;           //20*4;
    region[5].osd_h = 8;                    //4*OSD_FONT_HEIGHT;
    osd_create_region(&region[5], 72,
                                        (45 + (OSD_FONT_HEIGHT * 3) + 3 * 16 + 16 + 16), NULL,
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);


    // setup region 4   
    region[4].osd_w = 26 * 4;           //20*4;
    region[4].osd_h = 8;                    //4*OSD_FONT_HEIGHT;
    osd_create_region(&region[4], 72, (45 + (OSD_FONT_HEIGHT * 3) + 3 * 16 + 8),
                                        &region[5], OSD_FORMAT_4COLOR, OSD_NONINTERLACED);


    // setup region 3   
    region[3].osd_w = 26 * 4;           //20*4;
    region[3].osd_h = 3 * 16 + 2;   //4*OSD_FONT_HEIGHT;
    osd_create_region(&region[3], 72, 45 + (OSD_FONT_HEIGHT * 3), &region[4],
                                        OSD_FORMAT_16COLOR, OSD_NONINTERLACED);

    // setup region 2   
    region[2].osd_w = 26 * 4;           //20*4;
    region[2].osd_h = OSD_FONT_HEIGHT;
    osd_create_region(&region[2], 72, 45 + (OSD_FONT_HEIGHT * 2), &region[3],
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);


    // setup region 1   
    region[1].osd_w = 26 * 4;           //20*4;
    region[1].osd_h = OSD_FONT_HEIGHT;
    osd_create_region(&region[1], 72, 45 + (OSD_FONT_HEIGHT * 1), &region[2],
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);


    // setup region 0   
    region[0].osd_w = 26 * 4;           //20*4;
    region[0].osd_h = OSD_FONT_HEIGHT;
    osd_create_region(&region[0], 72, 45 + (OSD_FONT_HEIGHT * 0), &region[1],
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);

#ifdef  MONE_OSD_BUFFER
    if((int)addr_vy(osd_free) >= (int)(MEM_AUDYA_DEF - MEM_OSDYA_DEF))
    {
        psprintf(linebuf,
                         "OSD BUFFER OVERFLOW(osd_init_setup_set_eq).... %x(%x)\n",
                         addr_vy(osd_free), (MEM_AUDYA_DEF - MEM_OSDYA_DEF));
        epp_write(linebuf);
    }
#endif

#else

    // setup region 3   
    region[3].osd_w = 20 * 4;           //13*4;
    region[3].osd_h = 8;                    //4*OSD_FONT_HEIGHT;
    osd_create_region(&region[3], 110,
                                        (60 + (OSD_FONT_HEIGHT * 1) + 3 * 16 + 16 + 16), NULL,
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);


    // setup region 2   
    region[2].osd_w = 20 * 4;           //13*4;
    region[2].osd_h = 8;                    //4*OSD_FONT_HEIGHT;
    osd_create_region(&region[2], 110,
                                        (60 + (OSD_FONT_HEIGHT * 1) + 3 * 16 + 8), &region[3],
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);


    // setup region 1   
    region[1].osd_w = 20 * 4;           //13*4;
    region[1].osd_h = 3 * 16 + 2;   //4*OSD_FONT_HEIGHT;
    osd_create_region(&region[1], 110, 60 + (OSD_FONT_HEIGHT * 1), &region[2],
                                        OSD_FORMAT_16COLOR, OSD_NONINTERLACED);

    // setup region 0   
    region[0].osd_w = 20 * 4;           //13*4;
    region[0].osd_h = OSD_FONT_HEIGHT;
    osd_create_region(&region[0], 110, 60 + (OSD_FONT_HEIGHT * 0), &region[1],
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);

#ifdef  MONE_OSD_BUFFER
    if((int)addr_vy(osd_free) >= (int)OBV_H)
    {
        psprintf(linebuf,
                         "OSD BUFFER OVERFLOW(osd_init_setup_set_eq).... %x(%x)\n",
                         addr_vy(osd_free), OBV_H);
        epp_write_slow(linebuf);
    }
#endif

#endif

    ClearOsdMsg(0);
    osd_enable();
#endif//IR_SETUP_MENU_ON
}

void osd_init_setup_show_eq(void)
{
#ifdef IR_SETUP_MENU_ON//EDO_REDUCE 
    osd_disable();

    // setup first free address
    osd_free = addr_vxvy(0, 0);

#if CONFIG==CONFIG_COMBO_SVCD
    // setup region 4   
    region[4].osd_w = 26 * 4;           //20*4;
    region[4].osd_h = 3 * 16 + 2;   //4*OSD_FONT_HEIGHT;
    osd_create_region(&region[4], 72, 45 + (OSD_FONT_HEIGHT * 4), NULL,
                                        OSD_FORMAT_16COLOR, OSD_NONINTERLACED);

    // setup region 3   
    region[3].osd_w = 26 * 4;           //20*4;
    region[3].osd_h = OSD_FONT_HEIGHT;
    osd_create_region(&region[3], 72, 45 + (OSD_FONT_HEIGHT * 3), &region[4],
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);


    // setup region 2   
    region[2].osd_w = 26 * 4;           //20*4;
    region[2].osd_h = OSD_FONT_HEIGHT;
    osd_create_region(&region[2], 72, 45 + (OSD_FONT_HEIGHT * 2), &region[3],
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);


    // setup region 1   
    region[1].osd_w = 26 * 4;           //20*4;
    region[1].osd_h = OSD_FONT_HEIGHT;
    osd_create_region(&region[1], 72, 45 + (OSD_FONT_HEIGHT * 1), &region[2],
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);

    // setup region 0   
    region[0].osd_w = 26 * 4;           //20*4;
    region[0].osd_h = OSD_FONT_HEIGHT;
    osd_create_region(&region[0], 72, 45 + (OSD_FONT_HEIGHT * 0), &region[1],
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);

#ifdef    MONE_OSD_BUFFER
    if((int)addr_vy(osd_free) >= (int)(MEM_AUDYA_DEF - MEM_OSDYA_DEF))
    {
        psprintf(linebuf,
                         "OSD BUFFER OVERFLOW(osd_init_setup_show_eq).... %x(%x)\n",
                         addr_vy(osd_free), (MEM_AUDYA_DEF - MEM_OSDYA_DEF));
        epp_write(linebuf);
    }
#endif

#else

    // setup region 4   
    region[2].osd_w = 20 * 4;           //13*4;
    region[2].osd_h = 3 * 16 + 2;   //4*OSD_FONT_HEIGHT;
    osd_create_region(&region[2], 110, 60 + (OSD_FONT_HEIGHT * 2), NULL,
                                        OSD_FORMAT_16COLOR, OSD_NONINTERLACED);

    // setup region 1   
    region[1].osd_w = 20 * 4;
    region[1].osd_h = OSD_FONT_HEIGHT;
    osd_create_region(&region[1], 110, 60 + (OSD_FONT_HEIGHT * 1), &region[2],
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);

    // setup region 0   
    region[0].osd_w = 20 * 4;
    region[0].osd_h = OSD_FONT_HEIGHT;
    osd_create_region(&region[0], 110, 60 + (OSD_FONT_HEIGHT * 0), &region[1],
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);

#ifdef    MONE_OSD_BUFFER
    if((int)addr_vy(osd_free) >= (int)OBV_H)
    {
        psprintf(linebuf,
                         "OSD BUFFER OVERFLOW(osd_init_setup_show_eq).... %x(%x)\n",
                         addr_vy(osd_free), OBV_H);
        epp_write_slow(linebuf);
    }
#endif

#endif

    ClearOsdMsg(0);
    osd_enable();
#endif//IR_SETUP_MENU_ON
}

//
// FUNCTION
// osd_init_realtime_eq
// 
// DESCRIPTION
// initialize (3dsound)osd-printing function
//
void osd_init_realtime_eq(void)
{
//  #include "avd.h"
    osd_disable();

    osd_free = addr_vxvy(0, 0);


#if 0
    // setup region 4   
    //region[4].osd_w = 20*4;
    //region[4].osd_h = 8;
    //osd_create_region(&region[4], 110,(IsAVDDisplayPAL()?(215+3*16+4):(175+3*16+4)),NULL, OSD_FORMAT_4COLOR,
    //             OSD_NONINTERLACED); 


    //setup region 3//220(for EQ chart display)
    //region[3].osd_w = 20*4;//21 * 4;
    //region[3].osd_h = 3*16+4;//2 * 28;//4 * 28 for others interlaced;2*28 for others non-interlaced 
    //osd_create_region(&region[3], 110, (IsAVDDisplayPAL()?215:175), &region[4], OSD_FORMAT_16COLOR,
    //             OSD_NONINTERLACED); 
#endif

    // setup region 4   
#if CONFIG==CONFIG_COMBO_SVCD
    region[4].osd_w = 26 * 4;
    region[4].osd_h = 8;
    osd_create_region(&region[4], 75, (170 + 3 * 16 + 2 + 4), NULL,
                                        OSD_FORMAT_4COLOR, OSD_NONINTERLACED);
#else
    region[4].osd_w = 20 * 4;

⌨️ 快捷键说明

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