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

📄 dual_align.c

📁 realtek LCD monitor, TV开发源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
        case(_ALIGN3_RAM_EE_ADC_PLUS):
        case(_ALIGN3_RAM_EE_ADC_MINUS):
        {
           if((RamI2cCommandData[1]&0xF0)==0x30)
           {//gain
              if(RamI2cCommandData[0]==_ALIGN3_RAM_EE_ADC_PLUS)
                 stAdcData.AdcGain[RamI2cCommandData[1]-0x33]+=RamI2cCommandData[2];
              else
                 stAdcData.AdcGain[RamI2cCommandData[1]-0x33]-=RamI2cCommandData[2];
              RamI2cCommandData[2]=stAdcData.AdcGain[RamI2cCommandData[1]-0x33];
           }
           else if((RamI2cCommandData[1]&0xF0)==0x20)
           {//offset
              if(RamI2cCommandData[0]==_ALIGN3_RAM_EE_ADC_PLUS)
                 stAdcData.AdcOffset[RamI2cCommandData[1]-0x23]+=RamI2cCommandData[2];
              else
                 stAdcData.AdcOffset[RamI2cCommandData[1]-0x23]-=RamI2cCommandData[2];
              RamI2cCommandData[2]=stAdcData.AdcOffset[RamI2cCommandData[1]-0x23];
           }
           CAdjustAdcGainOffset();
           CEepromSaveAdcData();
        }
        break;

        case(_ALIGN3_READ_EE_ADC):
        {
           if((RamI2cCommandData[1]&0xF0)==0x20)
              RamI2cCommandData[2]=stAdcData.AdcOffset[RamI2cCommandData[1]-0x23];
           else if((RamI2cCommandData[1]&0xF0)==0x30)
              RamI2cCommandData[2]=stAdcData.AdcGain[RamI2cCommandData[1]-0x33];
        }
        break;

        case(_ALIGN1_WRITE_EEPROM):
        {
           if((RamI2cCommandData[1]>=0)&&(RamI2cCommandData[1]<=10))  // write serial number
           {
              CEepromWrite(_EEPROM_SN_ADDRESS+RamI2cCommandData[1],LENGTH(1) ,&RamI2cCommandData[2]);
              break;
           }
           if(RamI2cCommandData[1]==0xB1)  // write timer
           {
              CEepromRead(_DUTYTIMER_DATA_ADDRESS+4,LENGTH(1) ,&pData[10]);
              pData[12]=((RamI2cCommandData[2]&0xfe)>>1);
              pData[13]=((RamI2cCommandData[2]&0x01)<<7 | (pData[10]&0x7f));
              CEepromWrite(_DUTYTIMER_DATA_ADDRESS+3,LENGTH(2) ,&pData[12]);
              break;
           }
           else if(RamI2cCommandData[1]==0xB2)
           {
              CEepromRead(_DUTYTIMER_DATA_ADDRESS+4,LENGTH(1) ,&pData[10]);
              pData[12]=((RamI2cCommandData[2]&0xfe)>>1 | (pData[10]&0x80));
              pData[13]=((RamI2cCommandData[2]&0x01)<<7);
              CEepromWrite(_DUTYTIMER_DATA_ADDRESS+4,LENGTH(2) ,&pData[12]);
              break;
           }
           if(RamI2cCommandData[1]==_ALIGN2_EE_OSD_H)
           {
#if(_OSD_TYPE == _BENQ_OSD)
              g_usHEndPos=AlignMapToReal(RamI2cCommandData[2],_OSD_HPOS_MAX_BENQ,_OSD_HPOS_MIN_BENQ);
#else//_GENERIC_OSD
              g_usHEndPos=AlignMapToReal(RamI2cCommandData[2],_OSD_HPOS_MAX_GENERIC,_OSD_HPOS_MIN_GENERIC);
#endif
              pData[12] = HIBYTE(g_usHEndPos);
              pData[13] = LOBYTE(g_usHEndPos);

#if(_OSD_TYPE == _BENQ_OSD)
              CEepromWrite(_EEPROM_MENUPOSH_BENQ_ADDRESS,LENGTH(2),&pData[12]);
#else//_GENERIC_OSD
              CEepromWrite(_EEPROM_MENUPOSH_GENERIC_ADDRESS,LENGTH(2),&pData[12]);
#endif
  //            break;  //ryan 081218
           }
           if(RamI2cCommandData[1]==_ALIGN2_EE_OSD_V)
           {
#if(_OSD_TYPE == _BENQ_OSD)
              g_usVEndPos=AlignMapToReal((100-RamI2cCommandData[2]),_OSD_VPOS_MAX_BENQ,_OSD_VPOS_MIN_BENQ);
#else
              g_usVEndPos=AlignMapToReal((100-RamI2cCommandData[2]),_OSD_VPOS_MAX_GENERIC,_OSD_VPOS_MIN_GENERIC);
#endif
              pData[12] = HIBYTE(g_usVEndPos);
              pData[13] = LOBYTE(g_usVEndPos);

#if(_OSD_TYPE == _BENQ_OSD)
              CEepromWrite(_EEPROM_MENUPOSV_BENQ_ADDRESS,LENGTH(2),&pData[12]);
#else
              CEepromWrite(_EEPROM_MENUPOSV_GENERIC_ADDRESS,LENGTH(2),&pData[12]);
#endif
//              break;//ryan 081218
           }
           if(RamI2cCommandData[1]==_ALIGN2_EE_LANGUAGE)
           {

#if(_OSD_TYPE == _BENQ_OSD)
              pData[14]=LanguageIndexExchangeBenq[RamI2cCommandData[2]];
              stGlobalData0.Language=pData[14];
              if(stGlobalData0.Language>=_LANGUAGE_AMOUNT_BENQ)
              {
                  stGlobalData0.Language=_ENGLISH_BENQ;
                  pData[14]=LanguageIndexExchangeBenq[1];
              }
#else//_GENERIC_OSD
              pData[14]=LanguageIndexExchangeGeneric[RamI2cCommandData[2]];
              stGlobalData0.Language=pData[14];
              if(stGlobalData0.Language>=_LANGUAGE_AMOUNT_GENERIC)
              {
                  stGlobalData0.Language=_ENGLISH_GENERIC;
                  pData[14]=LanguageIndexExchangeGeneric[1];
              }
#endif
           }
           else if(RamI2cCommandData[1]==_ALIGN2_EE_CT_INDEX)
           {
#if(_OSD_TYPE == _BENQ_OSD)
              pData[14]=ColorIndexExchangeBenq[RamI2cCommandData[2]];
#else//_GENERIC_OSD
              pData[14]=ColorIndexExchangeGeneric[RamI2cCommandData[2]];
#endif
           }
           else if((RamI2cCommandData[1]>=_ALIGN2_EE_C1R)&&(RamI2cCommandData[1]<=_ALIGN2_EE_SRGBB)) //ARKIN 1227
           {
              if(RamI2cCommandData[2]>=_COLOR_MAX) RamI2cCommandData[2]=_COLOR_MAX;
              if(RamI2cCommandData[2]<=_COLOR_MIN) RamI2cCommandData[2]=_COLOR_MIN;
              pData[14]=RamI2cCommandData[2];
           }
           else if(RamI2cCommandData[1]==_ALIGN2_EE_CONTRAST)
              pData[14]=AlignMapToReal(RamI2cCommandData[2],_CONTRAST_MAX,_CONTRAST_MIN);
           else if((RamI2cCommandData[1]==_ALIGN2_EE_BRIGHT)) //ARKIN 1227
              pData[14]=AlignMapToReal(RamI2cCommandData[2],_BACKLIGHT_MAX,_BACKLIGHT_MIN);
           else if((RamI2cCommandData[1]==_ALIGN2_EE_SRGB_BRIGHT)) //ARKIN 1227
              pData[14]=AlignMapToReal(RamI2cCommandData[2],_BACKLIGHT_MAX,_BACKLIGHT_MIN);
           else if(RamI2cCommandData[1]==_ALIGN2_EE_VOLUME)
           {
#if(_OSD_TYPE == _BENQ_OSD)
              pData[14]=AlignMapToReal(RamI2cCommandData[2],_VOLUME_MAX_BENQ,_VOLUME_MIN_BENQ);
#else
              pData[14]=AlignMapToReal(RamI2cCommandData[2],_VOLUME_MAX_GENERIC,_VOLUME_MIN_GENERIC);
#endif
           }
           else
              pData[14]=RamI2cCommandData[2];

           CEepromWrite(AlignGetEEAddress(),LENGTH(1),&pData[14]);

           CEepromLoadGlobalData0();
           CEepromLoadColorTempData();
           CEepromLoadGlobalData1();
           CEepromLoadGlobalData4();
           CEepromLoadPictureData();//arkin 1227
           CEepromRead(_SRGB_DEFAULT_DATA_ADDRESS,LENGTH(1),&ucSrgbDefaultBrightReal);                 //0103-2
           CAdjustBacklight();  //arkin 1227
        }
        break;
        case(_ALIGN1_READ_EEPROM):
        {
           if((RamI2cCommandData[1]>=0)&&(RamI2cCommandData[1]<=10))  // Read serial number
           {
              CEepromRead(_EEPROM_SN_ADDRESS+RamI2cCommandData[1],LENGTH(1) ,&RamI2cCommandData[2]);
           }
           else if(RamI2cCommandData[1]==0xB1)  // Read timer
           {
              CEepromRead(_DUTYTIMER_DATA_ADDRESS+3,LENGTH(2) ,&pData[12]);
              RamI2cCommandData[2]= (((pData[12]&0x7f)<<1) | ((pData[13]&0x80)>>7));
           }
           else if(RamI2cCommandData[1]==0xB2)
           {
              CEepromRead(_DUTYTIMER_DATA_ADDRESS+4,LENGTH(2) ,&pData[12]);
              RamI2cCommandData[2]= (((pData[12]&0x7f)<<1) | ((pData[13]&0x80)>>7));
           }
           else if(RamI2cCommandData[1]==_ALIGN2_EE_LANGUAGE)
           {
              CEepromRead(_EEPROM_LANGUAGE_ADDRESS,LENGTH(1),&pData[15]);
#if(_OSD_TYPE == _BENQ_OSD)
              {
                  for(i=0;i<17;i++)
                  {
                     if(LanguageIndexExchangeBenq[i]==pData[15])
                         RamI2cCommandData[2]=i;
                  }
              }
#else//_GENERIC_OSD
              {
                  for(i=0;i<8;i++)
                  {
                     if(LanguageIndexExchangeGeneric[i]==pData[15])
                     {
                        if((i == 0x08) || (i == 0x09) || (i == 0x0D) || (i == 0x0E) || (i == 0x0F) || (i == 0x10))
                        {
                           RamI2cCommandData[2]=0x01;
                           break;
                        }
                        else if(i == 0x06)
                        {
                           RamI2cCommandData[2]=0x07;
                           break;
                        }
                        else
                        {
                           RamI2cCommandData[2]=i;
                           break;
                        }
                     }
                  }
              }
#endif
            }
            else if(RamI2cCommandData[1]==_ALIGN2_EE_CT_INDEX)
            {
               CEepromRead(_EEPROM_COLORTEMP_ADDRESS,LENGTH(1),&pData[15]);
#if(_OSD_TYPE == _BENQ_OSD)
               for(i=1;i<7;i++)
               {
                  if(ColorIndexExchangeBenq[i]==pData[15])
                     RamI2cCommandData[2]=i;
               }
#else
               for(i=1;i<5;i++)
               {
                  if(ColorIndexExchangeGeneric[i]==pData[15])
                     RamI2cCommandData[2]=i;
               }
#endif
            }
            else if(RamI2cCommandData[1]==_ALIGN2_EE_OSD_H)
            {
#if(_OSD_TYPE == _BENQ_OSD)
              CEepromRead(_EEPROM_MENUPOSH_BENQ_ADDRESS,LENGTH(2),&pData[12]);
#else//_GENERIC_OSD
              CEepromRead(_EEPROM_MENUPOSH_GENERIC_ADDRESS,LENGTH(2),&pData[12]);
#endif
              g_usHEndPos=((pData[12]<<8) | (pData[13]));

#if(_OSD_TYPE == _BENQ_OSD)
              RamI2cCommandData[2]=AlignMapToPercent(g_usHEndPos,_OSD_HPOS_MAX_BENQ,_OSD_HPOS_MIN_BENQ);
#else//_GENERIC_OSD
              RamI2cCommandData[2]=AlignMapToPercent(g_usHEndPos,_OSD_HPOS_MAX_GENERIC,_OSD_HPOS_MIN_GENERIC);
#endif
           }
           else if(RamI2cCommandData[1]==_ALIGN2_EE_OSD_V)
           {
#if(_OSD_TYPE == _BENQ_OSD)
              CEepromRead(_EEPROM_MENUPOSV_BENQ_ADDRESS,LENGTH(2),&pData[12]);
#else//_GENERIC_OSD
              CEepromRead(_EEPROM_MENUPOSV_GENERIC_ADDRESS,LENGTH(2),&pData[12]);
#endif
              g_usVEndPos=((pData[12]<<8) | (pData[13]));

#if(_OSD_TYPE == _BENQ_OSD)
              RamI2cCommandData[2] = 100 - AlignMapToPercent(g_usVEndPos,_OSD_VPOS_MAX_BENQ,_OSD_VPOS_MIN_BENQ);
#else//_GEGERIC_OSD
              RamI2cCommandData[2] = 100 - AlignMapToPercent(g_usVEndPos,_OSD_VPOS_MAX_GENERIC,_OSD_VPOS_MIN_GENERIC);
#endif
           }
           else
           {
              CEepromRead(AlignGetEEAddress(),LENGTH(1),&RamI2cCommandData[2]);
              if((RamI2cCommandData[1]==_ALIGN2_EE_SRGB_BRIGHT) || (RamI2cCommandData[1]==_ALIGN2_EE_BRIGHT))
                 RamI2cCommandData[2]=AlignMapToPercent(RamI2cCommandData[2],_BACKLIGHT_MAX,_BACKLIGHT_MIN);
              else if(RamI2cCommandData[1]==_ALIGN2_EE_CONTRAST)
                 RamI2cCommandData[2]=AlignMapToPercent(RamI2cCommandData[2],_CONTRAST_MAX,_CONTRAST_MIN);
              else
                 RamI2cCommandData[2]=RamI2cCommandData[2];
           }

        }
        break;
        case(_ALIGN1_COLORTEMP):
        {
           if(RamI2cCommandData[1]<=5)
           {
#if(_OSD_TYPE == _BENQ_OSD)
              stGlobalData0.ColorTemp=ColorIndexExchangeBenq[RamI2cCommandData[1]];
#else
              stGlobalData0.ColorTemp=ColorIndexExchangeGeneric[RamI2cCommandData[1]];
#endif
              stGlobalData0.StandardModeCT=stGlobalData0.ColorTemp;

#if(_OSD_TYPE == _BENQ_OSD)
              if(stGlobalData0.ColorTemp==_SRGB_COLOR)
                 stGlobalData4.PictureMode=_SRGB_PICTURE;
              else
                 stGlobalData4.PictureMode=_STANDARD_PICTURE;
#else//_GEGNERIC_OSD
              stGlobalData4.PictureMode=_STANDARD_PICTURE;
#endif
              CEepromLoadColorTempData();
              CEepromLoadPictureData();
              CAdjustAccessGammaTable();
#if(_OSD_TYPE == _BENQ_OSD)
              CAdjustDemoWindow();
#endif

⌨️ 快捷键说明

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