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

📄 menufunc_new_pal.c

📁 lcd tv : MST9E19A原代码
💻 C
📖 第 1 页 / 共 4 页
字号:
/******************************************************************************
 Copyright (c) 2003 MStar Semiconductor, Inc.
 All rights reserved.

 [Module Name]: MenuFunc.c
 [Date]:        06-Jan-2003
 [Comment]:
   OSD adjsut function relative subroutines.
 [Reversion History]:
*******************************************************************************/

#define _MENUFUNC_C_

// System

// Common
#include "define.h"
#include "msreg.h"
#include "common.h"
#include "global.h"

// External
#include "userpref.h"
#include "userdef.h"
#include "msio.h"
#include "msACE.h"
#include "msDLC.h"
#include "i2c.h"
#include "devvd.h"
#include "board.h"
#include "msModeHandler.h"
#include "msadjust.h"
#include "uart.h"
#include "msosd.h"
#include "msauto.h"
#include "devaudio.h"
#include "ram.h"
#include "msfb.h"
#include "debug.h"
#include "MenuDef.h"
#include "MenuTbl.h"
#include "MenuStr.h"
#include "msMultiLanguage.h"

#include "Menu.h"
#include "devVD.h"
#include "Power.h"
#include "tv.h"
#include "msModeTbl.h"
#include "msWindow.h"

// Internal
#include "menufunc.h"
#include <math.h>
#include "auprocess.h"


//====================================================
WORD DecIncValue(MenuItemActionType action, WORD wValue, WORD wMinValue, WORD wMaxValue, BYTE ucStep)
{
    if(action == MIA_INCVALUE)
    {
        if(wValue >= wMaxValue)
            return wMaxValue;
        wValue += ucStep;
        if(wValue > wMaxValue)
            wValue = wMaxValue;
    }
    else if(action==MIA_DECVALUE)
    {
        if(wValue <= wMinValue)
            return wMinValue;
        if(wValue < ucStep)
            wValue = 0;
        else
            wValue -= ucStep;
        if(wValue < wMinValue)
            wValue = wMinValue;
    }
    return wValue;
}

WORD DecIncValue_Cycle(MenuItemActionType action, WORD wValue, WORD wMinValue, WORD wMaxValue, BYTE ucStep)
{
    if(action == MIA_INCVALUE)
    {
        if(wValue >= wMaxValue)
            return wMinValue;
        wValue += ucStep;
        if(wValue > wMaxValue)
            wValue = wMinValue;
    }
    else if(action==MIA_DECVALUE)
    {
        if(wValue <= wMinValue)
            return wMaxValue;
        if(wValue < ucStep)
            wValue = 0;
        else
            wValue -= ucStep;
        if(wValue < wMinValue)
            wValue = wMaxValue;
    }
    return wValue;
}

WORD GetScale100Value(WORD wValue, WORD wMinValue, WORD wMaxValue)
{
    wMaxValue = wMaxValue - wMinValue;
    wValue = wValue - wMinValue;

    wValue = ( (DWORD)wValue * 100 + (wMaxValue / 2) ) / wMaxValue;

    if(wValue > 100)
        wValue = 100;

    return wValue;
}

//---------------------------------------------------------------------
void SetPCColorTemp( void)
{
    if( g_PCColorSetting.ColorTempIndex == PC_COLOR_TEMP_SRGB )
    {
        msACEPCUsesRGB(0,  TRUE);
    }
    else
    {
        msACEPCUsesRGB(0,  FALSE);
    }

    msAdjustPCRGB( 0, g_PCColorTempSetting.RedColor, g_PCColorTempSetting.GreenColor, g_PCColorTempSetting.BlueColor );
}

void SetVideoColorTemp( void )
{
    msAdjustVideoRGB( 0, g_VideoColorTempSetting.RedColor, g_VideoColorTempSetting.GreenColor, g_VideoColorTempSetting.BlueColor );
}

//======================== picture =========================
BOOL AdjustPictureContrast(MenuItemActionType action)
{
    if(g_ucFactoryFlag&0x80)//FACTORY MODE
    {
        if( SrcTypeIsVideo() )
        {
            if( IsSrcUseHDTVSetting())
            {
                g_VideoSetting.HDTVadjust.Contrast = DecIncValue(action, g_VideoSetting.HDTVadjust.Contrast, MIN_VIDEO_CONTRAST, MAX_VIDEO_CONTRAST, 1);
                msAdjustVideoContrast( 0, g_VideoSetting.HDTVadjust.Contrast );
            }
            else
            {
                g_VideoSetting.SDTVadjust.Contrast = DecIncValue(action, g_VideoSetting.SDTVadjust.Contrast, MIN_VIDEO_CONTRAST, MAX_VIDEO_CONTRAST, 1);
                msAdjustVideoContrast( 0, g_VideoSetting.SDTVadjust.Contrast);
            }
        }
    }
    else
    {
        if( SrcTypeIsVideo() )
        {
            g_VideoSetting.VideoPictureMode = PICTURE_MODE_USER;

            if( IsSrcUseHDTVSetting() )
            {
                g_VideoSetting.HDTVadjust.Contrast = DecIncValue(action, g_VideoSetting.HDTVadjust.Contrast, MIN_VIDEO_CONTRAST, MAX_VIDEO_CONTRAST, 2);
                msAdjustVideoContrast( 0,  g_VideoSetting.HDTVadjust.Contrast );
            }
            else
            {
                g_VideoSetting.SDTVadjust.Contrast = DecIncValue(action, g_VideoSetting.SDTVadjust.Contrast, MIN_VIDEO_CONTRAST, MAX_VIDEO_CONTRAST, 2);
                msAdjustVideoContrast( 0, g_VideoSetting.SDTVadjust.Contrast);
            }
        }
    }
    return TRUE;
}
WORD GetPictureContrastValue(void)
{
    if( IsSrcUseHDTVSetting() )
    {
        return GetScale100Value(g_VideoSetting.HDTVadjust.Contrast, MIN_VIDEO_CONTRAST, MAX_VIDEO_CONTRAST);
    }
    else
    {
        return GetScale100Value(g_VideoSetting.SDTVadjust.Contrast, MIN_VIDEO_CONTRAST, MAX_VIDEO_CONTRAST);
    }
}

BOOL AdjustPictureBrightness(MenuItemActionType action)
{
    if(g_ucFactoryFlag&0x80)//FACTORY MODE
    {
        if( SrcTypeIsVideo() )
        {
            if( IsSrcUseHDTVSetting())
            {
                g_VideoSetting.HDTVadjust.Brightness = DecIncValue(action, g_VideoSetting.HDTVadjust.Brightness, MIN_VIDEO_BRIHTNESS, MAX_VIDEO_BRIHTNESS, 2);
                msAdjustBrightness( g_VideoSetting.HDTVadjust.Brightness );
            }
            else
            {
                g_VideoSetting.SDTVadjust.Brightness = DecIncValue(action, g_VideoSetting.SDTVadjust.Brightness, MIN_VIDEO_BRIHTNESS, MAX_VIDEO_BRIHTNESS, 2);
                msAdjustBrightness( g_VideoSetting.SDTVadjust.Brightness );
            }
        }
    }
    else
    {
        if( SrcTypeIsVideo() )
        {
            g_VideoSetting.VideoPictureMode = PICTURE_MODE_USER;
            if( IsSrcUseHDTVSetting() )
            {
                g_VideoSetting.HDTVadjust.Brightness = DecIncValue(action, g_VideoSetting.HDTVadjust.Brightness, MIN_VIDEO_BRIHTNESS, MAX_VIDEO_BRIHTNESS, 2);
                msAdjustBrightness(g_VideoSetting.HDTVadjust.Brightness );
            }
            else
            {
                g_VideoSetting.SDTVadjust.Brightness = DecIncValue(action, g_VideoSetting.SDTVadjust.Brightness, MIN_VIDEO_BRIHTNESS, MAX_VIDEO_BRIHTNESS, 2);
                msAdjustBrightness(g_VideoSetting.SDTVadjust.Brightness );
            }
        }
    }
    return TRUE;
}
WORD GetPictureBrightnessValue(void)
{
    if( IsSrcUseHDTVSetting() )
    {
        return GetScale100Value(g_VideoSetting.HDTVadjust.Brightness, MIN_VIDEO_BRIHTNESS, MAX_VIDEO_BRIHTNESS);
    }
    else
    {
        return GetScale100Value(g_VideoSetting.SDTVadjust.Brightness, MIN_VIDEO_BRIHTNESS, MAX_VIDEO_BRIHTNESS);
    }
}

BOOL AdjustPictureHue(MenuItemActionType action)
{
    if( SrcTypeIsVideo() )
    {
        g_VideoSetting.VideoPictureMode = PICTURE_MODE_USER;
        if( IsSrcUseHDTVSetting() )
        {
            g_VideoSetting.HDTVadjust.Hue = DecIncValue(action, g_VideoSetting.HDTVadjust.Hue, MIN_VIDEO_HUE, MAX_VIDEO_HUE, 1);
            msAdjustVideoHue(0, g_VideoSetting.HDTVadjust.Hue );
        }
        else
        {
            g_VideoSetting.SDTVadjust.Hue = DecIncValue(action, g_VideoSetting.SDTVadjust.Hue, MIN_VIDEO_HUE, MAX_VIDEO_HUE, 1);
            msAdjustVideoHue(0, g_VideoSetting.SDTVadjust.Hue );
        }
    }
    return TRUE;
}
WORD GetPictureHueValue(void)
{
    if( IsSrcUseHDTVSetting() )
    {
        return GetScale100Value(g_VideoSetting.HDTVadjust.Hue, MIN_VIDEO_HUE, MAX_VIDEO_HUE);
    }
    else
    {
        return GetScale100Value(g_VideoSetting.SDTVadjust.Hue, MIN_VIDEO_HUE, MAX_VIDEO_HUE);
    }
}

BOOL AdjustPictureSaturation(MenuItemActionType action)  // 0 ~ 253
{
    if(g_ucFactoryFlag&0x80)//FACTORY MODE
    {
        if( SrcTypeIsVideo() )
        {
            if( IsSrcUseHDTVSetting())
            {
                g_VideoSetting.HDTVadjust.Saturation = DecIncValue(action, g_VideoSetting.HDTVadjust.Saturation, MIN_VIDEO_SATURATION, MAX_VIDEO_SATURATION, 2);
                msAdjustVideoSaturation(0, g_VideoSetting.HDTVadjust.Saturation );
            }
            else
            {
                g_VideoSetting.SDTVadjust.Saturation = DecIncValue(action, g_VideoSetting.SDTVadjust.Saturation, MIN_VIDEO_SATURATION, MAX_VIDEO_SATURATION, 2);
                msAdjustVideoSaturation(0, g_VideoSetting.SDTVadjust.Saturation );
            }
        }
    }
    else
    {
        if( SrcTypeIsVideo() )
        {
            g_VideoSetting.VideoPictureMode = PICTURE_MODE_USER;
            if( IsSrcUseHDTVSetting() )
            {
                g_VideoSetting.HDTVadjust.Saturation = DecIncValue(action, g_VideoSetting.HDTVadjust.Saturation, MIN_VIDEO_SATURATION, MAX_VIDEO_SATURATION, 2);
                msAdjustVideoSaturation(0, g_VideoSetting.HDTVadjust.Saturation );
            }
            else
            {
                g_VideoSetting.SDTVadjust.Saturation = DecIncValue(action, g_VideoSetting.SDTVadjust.Saturation, MIN_VIDEO_SATURATION, MAX_VIDEO_SATURATION, 2);
                msAdjustVideoSaturation(0, g_VideoSetting.SDTVadjust.Saturation );
            }
        }
    }
    return TRUE;
}
WORD GetPictureSaturationValue(void)
{
    if( IsSrcUseHDTVSetting() )
    {
        return GetScale100Value(g_VideoSetting.HDTVadjust.Saturation, MIN_VIDEO_SATURATION, MAX_VIDEO_SATURATION);
    }
    else
    {
        return GetScale100Value(g_VideoSetting.SDTVadjust.Saturation, MIN_VIDEO_SATURATION, MAX_VIDEO_SATURATION);
    }
}

BOOL AdjustPictureSharpness(MenuItemActionType action)
{
    if(g_ucFactoryFlag&0x80)//FACTORY MODE
    {
        if( SrcTypeIsVideo() )
        {
            if( IsSrcUseHDTVSetting())
            {
                g_VideoSetting.HDTVadjust.Sharpness = DecIncValue(action, g_VideoSetting.HDTVadjust.Sharpness, MIN_VIDEO_SHARPNESS, MAX_VIDEO_SHARPNESS, 1);
                msAdjustSharpness(g_VideoSetting.HDTVadjust.Sharpness);
            }
            else
            {
                g_VideoSetting.SDTVadjust.Sharpness = DecIncValue(action, g_VideoSetting.SDTVadjust.Sharpness, MIN_VIDEO_SHARPNESS, MAX_VIDEO_SHARPNESS, 1);
                msAdjustSharpness(g_VideoSetting.SDTVadjust.Sharpness);
            }
        }
    }
    else
    {
        if( SrcTypeIsVideo() )
        {
            g_VideoSetting.VideoPictureMode = PICTURE_MODE_USER;
            if( IsSrcUseHDTVSetting() )
            {
                g_VideoSetting.HDTVadjust.Sharpness = DecIncValue(action, g_VideoSetting.HDTVadjust.Sharpness, MIN_VIDEO_SHARPNESS, MAX_VIDEO_SHARPNESS, 1);
                msAdjustSharpness(g_VideoSetting.HDTVadjust.Sharpness);
            }
            else
            {
                g_VideoSetting.SDTVadjust.Sharpness = DecIncValue(action, g_VideoSetting.SDTVadjust.Sharpness, MIN_VIDEO_SHARPNESS, MAX_VIDEO_SHARPNESS, 1);
                msAdjustSharpness(g_VideoSetting.SDTVadjust.Sharpness);
            }
            return TRUE;
        }
    }
    return TRUE;
}
WORD GetPictureSharpnessValue(void)
{
    if( IsSrcUseHDTVSetting() )
    {
        return GetScale100Value(g_VideoSetting.HDTVadjust.Sharpness, MIN_VIDEO_SHARPNESS, MAX_VIDEO_SHARPNESS);
    }
    else
    {
        return GetScale100Value(g_VideoSetting.SDTVadjust.Sharpness, MIN_VIDEO_SHARPNESS, MAX_VIDEO_SHARPNESS);
    }
}

BOOL AdjustColorTone(MenuItemActionType action)
{
    if( SrcTypeIsVideo() )
    {
        g_VideoSetting.ColorTempIndex=DecIncValue_Cycle( action, g_VideoSetting.ColorTempIndex, 0, VIDEO_COLOR_TEMP_NUMS-1, 1 );

        usrLoadVideoColorTempSetting( &g_VideoColorTempSetting, g_VideoSetting.ColorTempIndex );

        SetVideoColorTemp(  );
    }
    return TRUE;
}

BOOL AdjustPictureScale(MenuItemActionType action)
{
    if( (SrcTypeIsPC() && !IsSrcColorSpaceYUV()) || !IsSrcHasSignal() )
        return FALSE;

    g_ucVideoScreen=DecIncValue_Cycle( action, g_ucVideoScreen, 0, VIDEOSCREEN_NUMS-1, 1 );
    g_VideoSetting.VideoScreen = g_ucVideoScreen;
    msProgWindow( g_ucVideoScreen );

    return TRUE;
}

BOOL AdjustPicturePictureMode(MenuItemActionType action)
{
    BYTE ucPMIdx;

    if( SrcTypeIsVideo() )
    {
        g_VideoSetting.VideoPictureMode=DecIncValue_Cycle( action, g_VideoSetting.VideoPictureMode, 0, PICTURE_MODE_NUMS-1, 1 );
        ucPMIdx = g_VideoSetting.VideoPictureMode;

        if( PICTURE_MODE_USER != g_VideoSetting.VideoPictureMode ) // Preset mode
        {
            usrResetPictureSetting( g_VideoSetting.VideoPictureMode );
        }
        else
        {
            usrLoadPictureSetting();
            g_VideoSetting.VideoPictureMode = ucPMIdx;
        }

        if( SrcTypeIsVideo() )
        {
            if( IsSrcUseHDTVSetting() )
            {
                msAdjustBrightness(g_VideoSetting.HDTVadjust.Brightness );
                msAdjustVideoContrast(0, g_VideoSetting.HDTVadjust.Contrast );
                msAdjustVideoHue(0, g_VideoSetting.HDTVadjust.Hue );
                msAdjustVideoSaturation(0, g_VideoSetting.HDTVadjust.Saturation );
                msAdjustSharpness(g_VideoSetting.HDTVadjust.Sharpness);
            }
            else
            {
                msAdjustBrightness(g_VideoSetting.SDTVadjust.Brightness );
                msAdjustVideoContrast(0,  g_VideoSetting.SDTVadjust.Contrast );
                msAdjustVideoHue(0, g_VideoSetting.SDTVadjust.Hue );
                msAdjustVideoSaturation(0, g_VideoSetting.SDTVadjust.Saturation );
                msAdjustSharpness(g_VideoSetting.SDTVadjust.Sharpness);
            }
        }
    }
    return TRUE;
}

//======================== Pc ==============================
BOOL AdjustPcContrast(MenuItemActionType action)
{
    if( SrcTypeIsPC() && !(IsSrcColorSpaceYUV()) )
    {
        g_PCColorSetting.Contrast = DecIncValue(action, g_PCColorSetting.Contrast, MIN_PC_CONTRAST, MAX_PC_CONTRAST, 2);
        msAdjustPCContrast( 0, g_PCColorSetting.Contrast );
    }
    return TRUE;
}

WORD GetPcContrastValue(void)
{
    return GetScale100Value(g_PCColorSetting.Contrast, MIN_PC_CONTRAST, MAX_PC_CONTRAST);
}

BOOL AdjustPcBrightness(MenuItemActionType action)

⌨️ 快捷键说明

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