📄 ms_func.lst
字号:
C51 COMPILER V7.50 MS_FUNC 03/18/2008 22:29:09 PAGE 5
240 1 {
241 2 ucXVStart = NoLinear.X1;
242 2 ucXVEnd = NoLinear.X2;
243 2 ucXStar = NON_LINEAR_POINT_X1;
244 2 ucXEnd = NON_LINEAR_POINT_X2;
245 2 }
246 1 else if (AdjustValue < NON_LINEAR_POINT_X3)
247 1 {
248 2 ucXVStart = NoLinear.X2;
249 2 ucXVEnd = NoLinear.X3;
250 2 ucXStar = NON_LINEAR_POINT_X2;
251 2 ucXEnd = NON_LINEAR_POINT_X3;
252 2 }
253 1 else
254 1 {
255 2 ucXVStart = NoLinear.X3;
256 2 ucXVEnd = NoLinear.X4;
257 2 ucXStar = NON_LINEAR_POINT_X3;
258 2 ucXEnd = NON_LINEAR_POINT_X4;
259 2 }
260 1
261 1 if (ucXVEnd > ucXVStart)
262 1 {
263 2 wDistance = ucXVEnd - ucXVStart;
264 2 ucStartPoint = ucXVStart;
265 2 temData = AdjustValue - ucXStar;
266 2 }
267 1 else
268 1 {
269 2 wDistance = ucXVStart - ucXVEnd;
270 2 ucStartPoint = ucXVEnd;
271 2 temData = ucXEnd - AdjustValue;
272 2 }
273 1
274 1 rValue = ((WORD)wDistance*temData/(ucXEnd - ucXStar)) + ucStartPoint;
275 1
276 1 return rValue;
277 1 }
278
279 void mstInitialConBriNLCCurve(void)
280 {
281 1 g_NLCVideoContrast.X0 = INIT_VIDEO_CONTRAST_X0;
282 1 g_NLCVideoContrast.X1 = INIT_VIDEO_CONTRAST_X1;
283 1 g_NLCVideoContrast.X2 = INIT_VIDEO_CONTRAST_X2;
284 1 g_NLCVideoContrast.X3 = INIT_VIDEO_CONTRAST_X3;
285 1 g_NLCVideoContrast.X4 = INIT_VIDEO_CONTRAST_X4;
286 1
287 1 g_NLCVideoBrightness.X0 = INIT_VIDEO_BRIGHTNESS_X0;
288 1 g_NLCVideoBrightness.X1 = INIT_VIDEO_BRIGHTNESS_X1;
289 1 g_NLCVideoBrightness.X2 = INIT_VIDEO_BRIGHTNESS_X2;
290 1 g_NLCVideoBrightness.X3 = INIT_VIDEO_BRIGHTNESS_X3;
291 1 g_NLCVideoBrightness.X4 = INIT_VIDEO_BRIGHTNESS_X4;
292 1
293 1 g_NLCVideoSaturation.X0 = INIT_VIDEO_SATURATION_X0;
294 1 g_NLCVideoSaturation.X1 = INIT_VIDEO_SATURATION_X1;
295 1 g_NLCVideoSaturation.X2 = INIT_VIDEO_SATURATION_X2;
296 1 g_NLCVideoSaturation.X3 = INIT_VIDEO_SATURATION_X3;
297 1 g_NLCVideoSaturation.X4 = INIT_VIDEO_SATURATION_X4;
298 1 }
299
300 #endif // VIDEO_NON_LINEAR_ADJ
301
C51 COMPILER V7.50 MS_FUNC 03/18/2008 22:29:09 PAGE 6
302 void mstSetContrast(BYTE ConValue)
303 {
304 1 BYTE ucTemp;
305 1
306 1 mstWriteByte(GEN_00_REGBK, REGBANKSCALER); // select register bank scaler
307 1 if (tOSDSourcSELSequence[Display.ucSourceSEL] == VGA)
308 1 {
309 2
310 2 ucTemp = 0x80 + ((SCHAR)(ConValue - DEF_CONTRAST));
311 2 msAdjustPCContrast(ucTemp);
312 2
313 2 }
314 1 else
315 1 {
316 2 #if VIDEO_NON_LINEAR_ADJ
317 2 ucTemp=mstNonLinearCalculate(g_NLCVideoContrast,ConValue);
318 2 #else
ucTemp = _COLOR_DEF_CONTRAST+((SCHAR)(ConValue - DEF_CONTRAST));
#endif // VIDEO_NON_LINEAR_ADJ
321 2 msAdjustVideoContrast(ucTemp);
322 2 }
323 1
324 1 }
325
326
327 void msSetCCFLBrightness(void)
328 {
329 1 #if ENABLE_CCFL_FUNCTION
330 1 mstWriteByte(GEN_00_REGBK,REGBANKLVDS_CCFL);
331 1 mstWriteByte(BK4_6B, 0x80);
332 1
333 1 #if CCFL_BURST_MODE
334 1 mstWriteByte(BK4_91, 0x00);
335 1 mstWriteByte(BK4_90, 0xae);//tony for SZ demo 0xAE);//0x90
336 1 #else
mstWriteByte(BK4_82, 0xAA);
#endif
339 1
340 1 mstWriteByte(BK4_6B, 0x00);
341 1 mstWriteByte(GEN_00_REGBK, REGBANKSCALER);
342 1 #endif
343 1 ;
344 1 }
345
346 void mstSetBrightness(BYTE BriValue)
347 {
348 1 BYTE ucTemp;
349 1
350 1 #if VIDEO_NON_LINEAR_ADJ
351 1 ucTemp=mstNonLinearCalculate(g_NLCVideoBrightness,BriValue);
352 1 #else
if(BriValue >= DEF_BRIGHTNESS)
ucTemp = 0x80 + (BriValue - DEF_BRIGHTNESS);
else
ucTemp = 0x80 - (DEF_BRIGHTNESS - BriValue);
#endif // VIDEO_NON_LINEAR_ADJ
359 1 mstWriteByte(GEN_00_REGBK, REGBANKSCALER);
360 1 mstWriteByte(BK0_59_BRI_R, ucTemp-8);
361 1 mstWriteByte(BK0_5A_BRI_G, ucTemp-8);
362 1 mstWriteByte(BK0_5B_BRI_B, ucTemp-8);
363 1 mstWriteByte(BK0_58_BRIGHTNESS_EN, 0x01);
C51 COMPILER V7.50 MS_FUNC 03/18/2008 22:29:09 PAGE 7
364 1 }
365
366 void mstSetHue(BYTE HueValue)
367 {
368 1 BYTE ucTemp;
369 1
370 1 if (tOSDSourcSELSequence[Display.ucSourceSEL] != VGA)
371 1 {
372 2 if (HueValue >= 50)
373 2 ucTemp = ((WORD)(100 -_COLOR_DEF_HUE)*(HueValue-DEF_HUE)/(100-DEF_HUE))+_COLOR_DEF_HUE;
374 2 else
375 2 ucTemp = (WORD)_COLOR_DEF_HUE*HueValue/DEF_HUE;
376 2 msAdjustVideoHue(ucTemp);
377 2 }
378 1 }
379
380 #define SAT_ACC_DOWN 30
381 void mstSetSaturation(BYTE SatValue)//The saturation way is the bad.
382 {
383 1
384 1 #if 0
SINT wTemp,wBurstGap;
if (tOSDSourcSELSequence[Display.ucSourceSEL] != VGA)
{
mstWriteByte(GEN_00_REGBK, REGBANKVCF); // select register bank scaler
wBurstGap = (0x38-mstReadByte(BK3_76_DET_BST_HGHT))*2;
if (tOSDSourcSELSequence[Display.ucSourceSEL] == YPBPR)
wBurstGap = 0;
// Patch for saturattion low level range not enough
if (SatValue <= SAT_ACC_DOWN)
{
wBurstGap *= SatValue;
wBurstGap /= SAT_ACC_DOWN;
}
#if VIDEO_NON_LINEAR_ADJ
wTemp = mstNonLinearCalculate(g_NLCVideoSaturation,SatValue);
wTemp += wBurstGap;
#else
wTemp = _COLOR_DEF_SATURATION+wBurstGap+((SCHAR)(SatValue - DEF_SATURATION));
#endif
if(wTemp>0xFF)//20050915 forte modify for changing different source
{
// For saturattion high level range not enough, patch BK3.65h value
wBurstGap = (wTemp -0xFF) + _INIT_VD_SATURATION;
#if DEMODULELATOR_MODE
mstWriteByte(BK3_65_REG_SAT, (BYTE)wBurstGap);
#else
mstWriteByte(BK3_13_CBGAIN, (BYTE)wBurstGap);
mstWriteByte(BK3_14_CRGAIN, (BYTE)wBurstGap);
#endif // !DEMODULELATOR_MODE
wTemp = 0xFF;
}
else
{
#if DEMODULELATOR_MODE
mstWriteByte(BK3_65_REG_SAT, _INIT_VD_SATURATION);
#else
mstWriteByte(BK3_13_CBGAIN, _INIT_VD_SATURATION);
mstWriteByte(BK3_14_CRGAIN, _INIT_VD_SATURATION);
C51 COMPILER V7.50 MS_FUNC 03/18/2008 22:29:09 PAGE 8
#endif // !DEMODULELATOR_MODE
}
if(wTemp < 0)
wTemp = 0;
mstWriteByte(GEN_00_REGBK, REGBANKSCALER); // select register bank scaler
msAdjustVideoSaturation((BYTE)wTemp);
}
#else
436 1 SINT wTemp;
437 1 wTemp = _COLOR_DEF_SATURATION+((SCHAR)(SatValue - DEF_SATURATION));
438 1 msAdjustVideoSaturation((BYTE)wTemp);
439 1 #endif
440 1 }
441
442 void mstSetGamma(BYTE GammaValue)
443 {
444 1 BYTE i;
445 1 BYTE count;
446 1
447 1 mstWriteByte(BK0_90_GAMMA_EN, (GammaValue&0x01));
448 1
449 1 if (GammaValue&0x01)
450 1 {
451 2 mstWriteByte(BK0_90_GAMMA_EN,0x03);
452 2 mstWriteByte(BK0_91_GAMMA_ADR_PORT,0x00);
453 2
454 2 for (i=0;i<3;i++)
455 2 {
456 3 for(count=0;count<33;count++)
457 3 {
458 4 mstWriteByte(BK0_92_GAMMA_DAT_PORT,tGammaTableNormal[i][count]);
459 4 }
460 3 }
461 2 }
462 1 }
463
464 #if USE_ALLMACEOSD
void mstSetSharpness(BYTE SharpValue)
{
BYTE ucTemp;
mstWriteByte(GEN_00_REGBK, REGBANKADC);
ucTemp = mstReadByte(BK1_78_PEAK_BAND1) & 0xC7;
ucTemp |= ((SharpValue&0x07)<<3);
mstWriteByte(BK1_78_PEAK_BAND1, ucTemp);
mstWriteByte(GEN_00_REGBK, REGBANKSCALER);
}
void mstSetDLTI(BYTE DLTIValue)
{
BYTE ucTemp;
mstWriteByte(GEN_00_REGBK, REGBANKADC);
ucTemp = mstReadByte(BK1_7A_LTI) & 0xC7;
ucTemp |= ((DLTIValue&0x07) << 3);
mstWriteByte(BK1_7A_LTI, ucTemp);
mstWriteByte(GEN_00_REGBK, REGBANKSCALER);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -