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

📄 decoder.cpp

📁 focus FS45x windows CE driver
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/*---------------------------------------------------------------------------

                          -----General Notice-----

  Copyright (C) 1997-2000, Tvia, Inc. (Formerly IGS Technologies, Inc.)

  PERMISSION IS HEREBY GRANTED TO USE, COPY AND MODIFY THIS SOFTWARE
  ONLY FOR THE PURPOSE OF DEVELOPING TVIA RELATED PRODUCTS.

  THIS SOFTWARE MAY NOT BE DISTRIBUTED TO ANY PARTY WHICH IS NOT COVERED
  BY TVIA NON-DISCLOSURE AGREEMENT (NDA). UNAUTHORIZED DISCLOSURE
  IS AGAINST LAW AND STRICTLY PROHIBITED.

  THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
  EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
  WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.

                          -----About This File-----

                                 IniDecod.c

  The file is a sample code to show how to call IGST I2C libraries and how
  to initialize Philips 7111/7114/7113 video decoder through I2C access.

  NOTE: This sample assumes you are using Tvia Philips 7114/7113 video 
        decoder card, and it should run under real mode.

                          --Modification History--

  1. 02-25-1998 Rev 2.00
  2. 02-24-2000 Add Philips 7114(1) video decoder initialization setting
  3. 09-19-2000 Add Philips 7114(2) video decoder initialization setting
  4. 10-24-2000 Support Tuner and Tvia Cyber53xx VBI.

  ---------------------------------------------------------------------------*/
#include "stdafx.h"
#include  "decoder.h"
#include "AudioMix.h"
#include "TVAVControl.h"
#include "DBF.h"
#include "TviaCompatable.h"


///////////////////////////////////////////////////////////////////////////////
// BYTE_ I2CPort[4] = {0x48, 0x42, 0x4A, 0x40};

// On CLE Board, change I2C Address of 7113 chip to 48
// Don't care the result of I2C write
BYTE_ I2CPort[4] = {0x48, 0x42, 0x48, 0x40};

/*register:value table used to initialize philips 7111 decoder*/
BYTE_ Phil7111_NTSC[P7111_Count * 2] =
{
    0x02, 0xc0,
    0x03, 0x23,
    0x04, 0x00,
    0x05, 0x00,
    0x06, 0xeb,
    0x07, 0xe0,
    0x08, 0x48,
    0x09, 0x10,
    0x0a, 0x80,
    0x0b, 0x47,
    0x0c, 0x40,
    0x0d, 0x00,
    0x0e, 0x02,
    0x0f, 0x00,
    0x10, 0xc0,
    0x11, 0x0c,
    0x12, 0x80
}; /*reg_02 to reg_12*/
     
BYTE_ Phil7111_PAL[P7111_Count * 2]=
{
    0x02, 0xc0,
    0x03, 0x23,
    0x04, 0x00,
    0x05, 0x00,
    0x06, 0xeb,
    0x07, 0xe0,
    0x08, 0x08,
    0x09, 0x40,
    0x0a, 0x80,
    0x0b, 0x47,
    0x0c, 0x40,
    0x0d, 0x00,
    0x0e, 0x02,
    0x0f, 0x00,
    0x10, 0xc0,
    0x11, 0x0c,
    0x12, 0x80
}; /*reg_02 to reg_12*/

/*register:value table used to initialize philips 7111 decoder*/
BYTE_ Phil7114_NTSC[2][P7114_Count*2]=
{
    /*Task A is VBI ( if we want to capture raw data )*/
    /*Task B is video*/
    { 
        0x01, 0x08,
        0x02, 0xc3,
        0x03, 0x10,
        0x04, 0x90,
        0x05, 0x90,
        0x06, 0xd0,
        0x07, 0xf6,
        0x08, 0x68,
        0x09, 0x40,
        0x0a, 0x80,
        0x0b, 0x44,
        0x0c, 0x40,
        0x0d, 0x00,
        0x0e, 0x02, /*ntsc = 89, pal=81*/
        0x0f, 0x2a,
        0x10, 0x0e,
        0x11, 0x10,
        0x12, 0x00,
        0x13, 0x40,
        0x14, 0x00,
        0x15, 0x11,
        0x16, 0xfe,
        0x17, 0xc0,
        0x18, 0x40,
        0x19, 0x80,
        0x1a, 0x00,
        0x1b, 0x00,
        0x1c, 0x00,
        0x1d, 0x00,
        0x1e, 0x00,
        0x30, 0xbc,
        0x31, 0xdf,
        0x32, 0x02,
        0x34, 0xcd,
        0x35, 0xcc,
        0x36, 0x3a,
        0x38, 0x03,
        0x39, 0x20,
        0x3a, 0x00,
        0x40, 0x00,
        0x41, 0xff,
        0x42, 0xff,
        0x43, 0xff,
        0x44, 0xff,
        0x45, 0xff,
        0x46, 0xff,
        0x47, 0xff,
        0x48, 0xff,
        0x49, 0xff,
        0x4a, 0xff,
        0x4b, 0xff,
        0x4c, 0xff,
        0x4d, 0xff,
        0x4e, 0xff,
        0x4f, 0xff,
        0x50, 0xff,
        0x51, 0xff,
        0x52, 0xff,
        0x53, 0xff,
        0x54, 0xff,
        0x55, 0xff,
        0x56, 0xff,
        0x57, 0xff,
        0x58, 0x00,
        0x59, 0x47,
        0x5a, 0x06,
        0x5b, 0x03,
        0x5c, 0x00,
        0x5d, 0x00,
        0x5e, 0x00,
        0x5f, 0x00,
        0x63, 0x00,
        0x64, 0x00,
        0x65, 0x00,
        0x66, 0x00,
        0x67, 0x00,
        0x68, 0x00,
        0x80, 0x10, /*10 for task A, 21 for task B*/
        0x83, 0x01, /*00 xport disabled, 01 enabled*/
        0x84, 0xa5,
        0x85, 0x14,
        0x86, 0xc5, /*c5 = text and video, 45 = video*/
        0x87, 0x00, /*00 iport disabled, 01 enabled, for old board, set 01*/
        0x88, 0xd0,
        0x8f, 0x4b,

        /*Task A*/
        0x90, 0x00,
        0x91, 0x08,
        0x92, 0x10,
        0x93, 0x80,
        0x94, 0x08,
        0x95, 0x00,
        0x96, 0xd0,
        0x97, 0x02,
        0x98, 0x10,
        0x99, 0x00,
        0x9a, 0xf4,
        0x9b, 0x00,
        0x9c, 0xd0,
        0x9d, 0x02,
        0x9e, 0xf2,
        0x9f, 0x00,
        0xa0, 0x01,
        0xa1, 0x00,
        0xa2, 0x00,
        0xa4, 0x80,
        0xa5, 0x40,
        0xa6, 0x40,
        0xa8, 0x00,
        0xa9, 0x04,
        0xaa, 0x00,
        0xac, 0x00,
        0xad, 0x02,
        0xae, 0x00,
        0xb0, 0x00,
        0xb1, 0x04,
        0xb2, 0x00,
        0xb3, 0x04,
        0xb4, 0x01,
        0xb8, 0x00,
        0xb9, 0x00,
        0xba, 0x00,
        0xbb, 0x00,
        0xbc, 0x00,
        0xbd, 0x00,
        0xbe, 0x00,
        0xbf, 0x00,

        /*Task B*/
        0xc0, 0x00,
        0xc1, 0x18, /*18 for xport, 08 for decoder*/
        0xc2, 0x59,
        0xc3, 0x80,
        0xc4, 0x00,
        0xc5, 0x00,
        0xc6, 0xd0,
        0xc7, 0x02,
        0xc8, 0x01,
        0xc9, 0x00,
        0xca, 0xf2, /*ntsc = f2, pal = 38*/
        0xcb, 0x00, /*ntsc = 00, pal = 01*/
        0xcc, 0xd0,
        0xcd, 0x02,
        0xce, 0xf0, /*ntsc = f0, pal = 35*/
        0xcf, 0x00, /*ntsc = 00, pal = 01*/
        0xd0, 0x01,
        0xd1, 0x00,
        0xd2, 0x00,
        0xd4, 0x80,
        0xd5, 0x3f,
        0xd6, 0x3f,
        0xd8, 0x00,
        0xd9, 0x04,
        0xda, 0x00,
        0xdc, 0x00,
        0xdd, 0x02,
        0xde, 0x00,
        0xe0, 0x00,
        0xe1, 0x04,
        0xe2, 0x00,
        0xe3, 0x04,
        0xe4, 0x01,
        0xe8, 0x00,
        0xe9, 0x00,
        0xea, 0x00,
        0xeb, 0x00,
        0xec, 0x00,
        0xed, 0x00,
        0xee, 0x00,
        0xef, 0x00,
        0x88, 0xf0
    },
    
    /*Sliced data - NCI setting*/
    /*Task A is VBI ( sliced data )*/
    /*Task B is video*/
    { 
        0x01, 0x08,
        0x02, 0xc3, /*0x82,85*/
        0x03, 0x10,
        0x04, 0x90,
        0x05, 0xa0,
        0x06, 0xd0,
        0x07, 0xf6,
        0x08, 0xC8,
        0x09, 0x40,
        0x0a, 0x78,
        0x0b, 0x40,
        0x0c, 0x48,
        0x0d, 0x00,
        0x0e, 0x00,
        0x0f, 0x00,
        0x10, 0x06,
        0x11, 0x17,
        0x12, 0x00,
        0x13, 0x40,
        0x14, 0x00,
        0x15, 0x11,
        0x16, 0xfe,
        0x17, 0xc0,
        0x18, 0x40,
        0x19, 0x80,
        0x1a, 0x00,
        0x1b, 0x00,
        0x1c, 0x00,
        0x1d, 0x00,
        0x1e, 0x00,
        0x30, 0xbc,
        0x31, 0xdf,
        0x32, 0x02,
        0x34, 0xcd,
        0x35, 0xcc,
        0x36, 0x3a,
        0x38, 0x03,
        0x39, 0x20,
        0x3a, 0x00,
        0x40, 0x40, 
        0x41, 0xff, /*2*/  
        0x42, 0xff, /*3*/  
        0x43, 0xff, /*4*/  
        0x44, 0xff, /*5*/  
        0x45, 0xff, /*6*/  
        0x46, 0xff, /*7*/  
        0x47, 0xcc, /*8*/  
        0x48, 0xcc, /*9*/  
        0x49, 0xcc, /*10*/ 
        0x4a, 0xcc, /*11*/ 
        0x4b, 0xcc, /*12*/ 
        0x4c, 0xcc, /*13*/ 
        0x4d, 0xcc, /*14*/ 
        0x4e, 0xcc, /*15*/ 
        0x4f, 0xcc, /*16*/ 
        0x50, 0xcc, /*17*/ 
        0x51, 0xcc, /*18*/ 
        0x52, 0xcc, /*19*/ 
        0x53, 0xcc, /*20*/ 
        0x54, 0x55, /*21*/ 
        0x55, 0x55, /*22*/ 
        0x56, 0xff, /*23*/ 
        0x57, 0xff, /*24*/ 
        0x58, 0xe7,
        0x59, 0x47,
        0x5a, 0x06,
        0x5b, 0x83,
        0x5c, 0x00,
        0x5d, 0x3e,
        0x5e, 0x00,
        0x5f, 0x00,
        0x63, 0x00,
        0x64, 0x00,
        0x65, 0x00,
        0x66, 0x00,
        0x67, 0x00,
        0x68, 0x00,
        0x83, 0x00,
        0x84, 0xa0,
        0x85, 0x10,
        0x86, 0xc5,
        0x87, 0x01,
        0x8f, 0x0b,
  
        /*Task A*/
        0x90, 0x01,
        0x91, 0x48,
        0x92, 0x40, /*invert field, 0x40 not invert*/
        0x93, 0x84,
        0x94, 0x02,
        0x95, 0x00,
        0x96, 0xd0,
        0x97, 0x02,
        0x98, 0x05,
        0x99, 0x00,
        0x9a, 0x0c,
        0x9b, 0x00,
        0x9c, 0xf7,
        0x9d, 0x05,
        0x9e, 0x0c,
        0x9f, 0x00,
        0xa0, 0x01,
        0xa1, 0x00,
        0xa2, 0x00,
        0xa4, 0x70,
        0xa5, 0x38,
        0xa6, 0x48,
        0xa8, 0xe2,
        0xa9, 0x01,
        0xaa, 0x00,
        0xac, 0xf1,
        0xad, 0x00,
        0xae, 0x00,
        0xb0, 0x00,
        0xb1, 0x04,
        0xb2, 0x00,
        0xb3, 0x04,
        0xb4, 0x00,
        0xb8, 0x00,
        0xb9, 0x00,
        0xba, 0x00,
        0xbb, 0x00,
        0xbc, 0x00,
        0xbd, 0x00,
        0xbe, 0x00,
        0xbf, 0x00,

        /*Task B*/
        0xc0, 0x00,
        0xc1, 0x08,
        0xc2, 0x40,
        0xc3, 0x80,
        0xc4, 0x00,
        0xc5, 0x00,
        0xc6, 0xD0,
        0xc7, 0x02,
        0xc8, 0x0f,
        0xc9, 0x00,
        0xca, 0xf8, 
        0xcb, 0x00,
        0xcc, 0xD0,
        0xcd, 0x02,
        0xce, 0xf6, 
        0xcf, 0x00,
        0xd0, 0x01,
        0xd1, 0x00,
        0xd2, 0x00,
        0xd4, 0x70,
        0xd5, 0x40,
        0xd6, 0x48,
        0xd8, 0x00,
        0xd9, 0x04,
        0xda, 0x00,
        0xdc, 0x00,
        0xdd, 0x02,
        0xde, 0x00,
        0xe0, 0x00,
        0xe1, 0x04,
        0xe2, 0x00,
        0xe3, 0x04,
        0xe4, 0x01,
        0xe8, 0x00,
        0xe9, 0x00,
        0xea, 0x00,
        0xeb, 0x00,
        0xec, 0x00,
        0xed, 0x00,
        0xee, 0x00,
        0xef, 0x00,
        0x88, 0xf0,
        0x80, 0x60,
        0xff, 0xff
    }
};
     
BYTE_ Phil7114_PAL[P7114_Count * 2]=
{
    0x88, 0xd0,
    0x01, 0x00,
    0x02, 0xc2,
    0x03, 0x10,
    0x04, 0x90,
    0x05, 0x90,
    0x06, 0xeb,
    0x07, 0xe0,
    0x08, 0xB8, /*0x68*/
    0x09, 0x40,
    0x0a, 0x7b,
    0x0b, 0x40,
    0x0c, 0x40,
    0x0d, 0x00,
    0x0e, 0x81,
    0x0f, 0x2a,
    0x10, 0x06,
    0x11, 0x00,
    0x12, 0x00,
    0x13, 0x00,
    0x14, 0x00,
    0x15, 0x11,
    0x16, 0xfe,
    0x17, 0x40,
    0x18, 0x40,
    0x19, 0x80,
    0x1a, 0x00,
    0x1b, 0x00,
    0x1c, 0x00,
    0x1d, 0x00,
    0x1e, 0x00,
    0x30, 0xbc,
    0x31, 0xdf,
    0x32, 0x02,
    0x34, 0xcd,
    0x35, 0xcc,
    0x36, 0x3a,
    0x38, 0x03,
    0x39, 0x20,
    0x3a, 0x00,
    0x40, 0x00,
    0x41, 0xff,
    0x42, 0xff,
    0x43, 0xff,
    0x44, 0xff,
    0x45, 0xff,
    0x46, 0xff,
    0x47, 0xff,
    0x48, 0xff,
    0x49, 0x77,
    0x4a, 0x77,
    0x4b, 0x77,
    0x4c, 0x77,
    0x4d, 0x77,
    0x4e, 0x77,
    0x4f, 0x77,
    0x50, 0x77,
    0x51, 0x77,
    0x52, 0x77,
    0x53, 0x77,
    0x54, 0x77,
    0x55, 0xff,
    0x56, 0xff,
    0x57, 0xff,
    0x58, 0x00,
    0x59, 0x47,
    0x5a, 0x06,
    0x5b, 0x03,
    0x5c, 0x00,
    0x5d, 0x00,
    0x5e, 0x00,
    0x5f, 0x00,
    0x63, 0x00,
    0x64, 0x00,
    0x65, 0x00,
    0x66, 0x00,
    0x67, 0x00,
    0x68, 0x00,
    0x80, 0x30,
    0x83, 0x01,
    0x84, 0xa0,
    0x85, 0x10,
    0x86, 0xc5,
    0x87, 0x00, /*For BOARD5300*/
    0x8f, 0x0b,
    0x90, 0x01, /*No noticeable difference between 0 and 1.  Made it 0 to 
                match address c0  -- csp*/
    0x91, 0x48,
    0x92, 0x40,
    0x93, 0x84,
    0x94, 0x01,
    0x95, 0x00,
    0x96, 0x00,
    0x97, 0x03,
    0x98, 0x01,
    0x99, 0x00,
#if 1 /*NTSC*/
    0x9a, 0x0e,
    0x9b, 0x00,
    0x9c, 0x00,
    0x9d, 0x06,
    0x9e, 0x0c,
    0x9f, 0x00,
#else /*PAL*/
    0x9a, 0x38,
    0x9b, 0x01,
    0x9c, 0xd0,
    0x9d, 0x02,
    0x9e, 0x36,
    0x9f, 0x01,
#endif
    0xa0, 0x01,
    0xa1, 0x00,
    0xa2, 0x00,
    0xa4, 0x80,
    0xa5, 0x40,
    0xa6, 0x40,
    0xa8, 0xe2,
    0xa9, 0x01,
    0xaa, 0x00,
    0xac, 0xf1,
    0xad, 0x00,
    0xae, 0x00,
    0xb0, 0x00,
    0xb1, 0x04,
    0xb2, 0x00,
    0xb3, 0x04,
    0xb4, 0x00,
    0xb8, 0x00,
    0xb9, 0x00,
    0xba, 0x00,
    0xbb, 0x00,
    0xbc, 0x00,
    0xbd, 0x00,
    0xbe, 0x00,
    0xbf, 0x00,
    0xc0, 0x00,
    0xc1, 0x08,
    0xc2, 0x40,
    0xc3, 0x80,
    0xc4, 0x00,
    0xc5, 0x00,
    0xc6, 0x00,
    0xc7, 0x03,
    0xc8, 0x11,
    0xc9, 0x00,
#if 1 /*NTSC*/
    0xca, 0x22,
    0xcb, 0x01,
    0xcc, 0x00,
    0xcd, 0x03,

⌨️ 快捷键说明

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