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

📄 playback.c

📁 dz3000_51.0.0.4.rar
💻 C
📖 第 1 页 / 共 5 页
字号:

     if (G_USR_FileCount > 0)
     {
          G_SelCell = (UCHAR)((G_USR_FileCount - 1) % 9);
          G_PlayBackPageCount = (G_USR_FileCount - 1) / 9;
     }
     else
     {
          G_SelCell = 0;
          G_PlayBackPageCount = 0;
     }

     //printf("G_SelCell = %bd\n",G_SelCell);
     //printf("G_PlayBackPageCount = %d\n",G_PlayBackPageCount);

     G_ChangePage = 0;
     G_DPOF_Qty = 0;
     G_Old_DPOF_Qty = 0;

     //Joe@2003.3.4 16:13 add begin
     G_USR_FileOrder = G_USR_FileCount;
     //Joe@2003.3.4 16:13 add end

     if(G_Playback_Mode == K_PLAYBACK_MODE_NINE)
     {
          PlaybackNine(K_PageInitialize);
     }
     else if (G_Playback_Mode == K_PLAYBACK_MODE_ONE)
     {
          	    //patch4.2@yichang@0516 for yes/no playing selection
                    // UI_ClearFOSD(25,8,0x00); //XiaoAo mask
                    G_OptionYesNo = 0;
                    PlaybackOne(K_PageInitialize);
      }

     //patch4.4@ada@FOSD begin
     //Joe@2003.2.27 10:21 modify begin
     /*if(G_DisplayType <= 7) //TV
     {
          FOSD_H_num = (K_DISPLAY_StnLcdWidth/16)+5;
          FOSD_V_num = (K_DISPLAY_StnLcdHeight/32);
     }
     else
     {
          FOSD_H_num = (G_DSPHsize/16);
          FOSD_V_num = (G_DSPVsize/32);
     }
     */
     UI_GetFOSDSize(&FOSD_H_num, &FOSD_V_num);
     //Joe@2003.2.27 10:21 modify end

	//Joe@2003.3.4 19:28 mask begin
	/*
     DpofDir1Name[8] = '\0';

     //Joe@2003.3.4 17:40 modify begin
     //UI_PrintOSDString(DpofDir1Name, FOSD_H_num-8, 0,UI_MENU_DEHIGHLIGHT_COLOR);
     UI_PrintOSDString(DpofDir1Name, FOSD_H_num-7, 0,UI_MENU_DEHIGHLIGHT_COLOR);
     //Joe@2003.3.4 17:40 modify end
	*/
	//Joe@2003.3.4 19:28 mask end
	// L2_SetGPIOBit(15,1);	 //LCD_BACKLIGHT//wendy@2004/9/8
	 //PlaybackFlag=0;

     UI_PlaybackStatusOSD();
     //patch4.4@ada@FOSD end
}


//=============================================================================
//Playback_InitialAfterDeleteAll
//=============================================================================
//version4.0@ada@0513 for Play Back
void Playback_InitialAfterDeleteAll(void) USING_0
{
     UCHAR i;

     //version4.0@ada@0513 for Multi-Directory
     #if (SINGLE_DIRECTORY == 0)
     USHORT TempCountIndex;
     USHORT TempCount;
     UCHAR tmp1,tmp2;
     USHORT startCluster;
     UCHAR sts;
     #endif

     //patch4.4@ada@FOSD begin
     UCHAR FOSD_V_num, FOSD_H_num;
     //patch4.4@ada@FOSD end


     XBYTE[0x20D0]  = XBYTE[0x20D0] & 0xDF;// ylee@0320 : Turn off VD falling interrupt

     ClearScreen();

     G_SelCell = 0;
     G_PlayBackPageCount = 0;
     G_NowPlayFileIndex = 0;
     G_ChangePage = 0;
     G_DPOF_Qty = 0;
     G_Old_DPOF_Qty = 0;

     for (i = 0; i < 9; i++)
     {
          //Play9_PreFileIndexBuf[i] = 0;
          Play9_NowFileIndexBuf[i] = 0;
          //Play9_NextFileIndexBuf[i] = 0;
     }

     //version4.0@ada@0513 for Multi-Directory
     #if (SINGLE_DIRECTORY == 0)
     //If this directory has no file, then change directory until find one
     if ((G_USR_FileCount == 0) && (G_USR_TotalDirectory > 1))
     {
          //patch4.4@ada@DirectoryIndexOrder begin
       	//TempCountIndex = G_USR_Dir1CountIndex;
       	TempCountIndex = G_USR_Dir1Count;

          //If all directory has no file,then switch back to the default directory.
          TempCount = G_USR_TotalDirectory + 1;

          //Find a directory with file exists
          while (TempCount > 0)
          {
               ////printf("Switch forward directory Once\n");
               L2_DRAMSetStartAddr((K_SDRAM_DcfDirBufAddr + (((ULONG)TempCountIndex) - 100) * 8 + 7),K_SDRAM_Prefetch);
               L2_DRAMReadWord(&tmp1,&tmp2);
               TempCountIndex = (USHORT)tmp1 | (((USHORT)tmp2) << 8);

               //if (TempCountIndex < G_USR_TotalDirectory)
               //{
               //     TempCountIndex++;
               //}
               //else
               //{
               //     TempCountIndex = 1;
               //}

               //L2_DRAMSetStartAddr((K_SDRAM_DcfDirBufAddr + ((ULONG)TempCountIndex - 1) * 7),K_SDRAM_Prefetch);
               L2_DRAMSetStartAddr((K_SDRAM_DcfDirBufAddr + ((ULONG)TempCountIndex - 100) * 8),K_SDRAM_Prefetch);
               //L2_DRAMReadWord(&tmp1,&tmp2);
               //G_USR_Dir1Count = ((USHORT)tmp2 << 8) | (USHORT)tmp1;
               L2_DRAMReadWord(&tmp1,&tmp2);
               startCluster = ((USHORT)tmp2) << 8 | (USHORT)tmp1;

               G_USR_Dir1Cluster = startCluster;

               G_USR_Dir1Count = TempCountIndex;

               DOS_SetCurrDir(startCluster);

               sts = USR_FileInitialize();

               G_USR_FileIndex++;  //next file index

               //Find directory with file in it
               if ((sts) && (G_USR_FileCount > 0))
               {
                    //printf("G_USR_FileCount = %d\n",G_USR_FileCount);
                    //printf("Changing directory %d\n",G_USR_Dir1Count);
                    //G_USR_Dir1CountIndex = TempCountIndex;

                    //version4.0@ada@0513 for DPOF
                    DPOF_DirInitialize();

                    break;
               }

               TempCount--;
          }
     }
     //patch4.4@ada@DirectoryIndexOrder end
     #endif

     //If file exists in this directory
     if (G_USR_FileCount)
     {
          G_USR_SearchNowFileIndex = G_USR_FirstFileIndex;

          for (i = 0; i < 9; i++)
          {
               Play9_NowFileIndexBuf[i] = G_USR_SearchNowFileIndex;
               Playback_GetMediaInfo(G_USR_SearchNowFileIndex);

               ////printf("G_USR_SearchNextFileIndex = %d\n",G_USR_SearchNextFileIndex);
               if (G_USR_SearchNextFileIndex)
               {
                    G_USR_SearchNowFileIndex = G_USR_SearchNextFileIndex;
               }
               else //Image stops here
               {
                    ////printf("Image stops here\n");
                    break;
               }
          }

          //Joe@2003.3.4 16:14 add begin
          G_USR_FileOrder = 1;
          //Joe@2003.3.4 16:14 add end
     }

     G_SelCell = 0;
     G_PlayBackPageCount = 0;
     G_ChangePage = 0;
     G_DPOF_Qty = 0;
     G_Old_DPOF_Qty = 0;

     //patch4.4@ada@FOSD begin
     //Joe@2003.2.27 10:21 modify begin
     /*if(G_DisplayType <= 7) //TV
     {
          FOSD_H_num = (K_DISPLAY_StnLcdWidth/16)+5;
          FOSD_V_num = (K_DISPLAY_StnLcdHeight/32);
     }
     else
     {
          FOSD_H_num = (G_DSPHsize/16);
          FOSD_V_num = (G_DSPVsize/32);
     }
     */
     UI_GetFOSDSize(&FOSD_H_num, &FOSD_V_num);
     //Joe@2003.2.27 10:21 modify end

     UI_ClearFOSD(25,8,0x00);

     //Joe@2003.3.4 19:28 mask begin
     /*
     DpofDir1Name[8] = '\0';

     //Joe@2003.3.4 17:41 modify begin
     //UI_PrintOSDString(DpofDir1Name, FOSD_H_num-8, 0,UI_MENU_DEHIGHLIGHT_COLOR);
     UI_PrintOSDString(DpofDir1Name, FOSD_H_num-7, 0,UI_MENU_DEHIGHLIGHT_COLOR);
     //Joe@2003.3.4 17:41 modify end
	*/
	//Joe@2003.3.4 19:28 mask end

     UI_PlaybackStatusOSD();
     //patch4.4@ada@FOSD end
}

//=============================================================================
//Playback_InitialAfterChangePage
//=============================================================================
//version4.0@ada@0513 for Play Back
void Playback_InitialAfterChangePage(void) USING_0
{
     UCHAR i;

     XBYTE[0x20D0]  = XBYTE[0x20D0] & 0xDF;// ylee@0320 : Turn off VD falling interrupt

     ClearScreen();

     G_SelCell = 0;
     G_PlayBackPageCount = 0;
     G_NowPlayFileIndex = 0;
     G_ChangePage = 0;
     G_DPOF_Qty = 0;
     G_Old_DPOF_Qty = 0;

     for (i = 0; i < 9; i++)
     {
          //Play9_PreFileIndexBuf[i] = 0;
          Play9_NowFileIndexBuf[i] = 0;
          //Play9_NextFileIndexBuf[i] = 0;
     }

     //If file exists in this directory
     if (G_USR_FileCount)
     {
          G_USR_SearchNowFileIndex = G_USR_FirstFileIndex;

          //printf("G_USR_FirstFileIndex = %d\n",G_USR_FirstFileIndex);

          for (i = 0; i < 9; i++)
          {
               Play9_NowFileIndexBuf[i] = G_USR_SearchNowFileIndex;
               //printf("Play9_NowFileIndexBuf[%bd] = %d\n",i,Play9_NowFileIndexBuf[i]);
               Playback_GetMediaInfo(G_USR_SearchNowFileIndex);

               ////printf("G_USR_SearchNextFileIndex = %d\n",G_USR_SearchNextFileIndex);
               if (G_USR_SearchNextFileIndex)
               {
                    G_USR_SearchNowFileIndex = G_USR_SearchNextFileIndex;
               }
               else //Image stops here
               {
                    //printf("Image stops here\n");
                    break;
               }
          }
     }
}

//=============================================================================
//Playback_GetMediaInfo
//=============================================================================
//version4.0@ada@0513 for Play Back
UCHAR Playback_GetMediaInfo(USHORT FileIndex) USING_0
{
     USHORT startCluster;
     UCHAR fileExist;
     UCHAR mediaType;

     fileExist = 0;

	//patch4.5@ada@Record DCF file name begin
     startCluster = USR_ReadDramFdbParameter(K_SDRAM_JPG_FdbParameterBufAddr + ((ULONG)FileIndex - 1) * 10,&mediaType);
     //startCluster = USR_ReadDramFdbParameter(K_SDRAM_JPG_FdbParameterBufAddr + ((ULONG)FileIndex - 1) * 8,&mediaType);
	//patch4.5@ada@Record DCF file name end

     if ((startCluster > 0) && (G_DOS_FileSize > 0))
     {
          fileExist = 1;
          //printf("mediaType = K_PLAYBACK_TYPE_JPG\n");
     }
     else
     {
		//patch4.5@ada@Record DCF file name begin
          startCluster = USR_ReadDramFdbParameter(K_SDRAM_AVI_FdbParameterBufAddr + ((ULONG)FileIndex - 1) * 10,&mediaType);
          //startCluster = USR_ReadDramFdbParameter(K_SDRAM_AVI_FdbParameterBufAddr + ((ULONG)FileIndex - 1) * 8,&mediaType);
		//patch4.5@ada@Record DCF file name end

          if ((startCluster > 0) && (G_DOS_FileSize > 0))
          {
               fileExist = 1;
               //printf("mediaType = K_PLAYBACK_TYPE_AVI\n");
          }
          else
          {
               //#if ( Audio == 1 )
			//patch4.5@ada@Record DCF file name begin
               startCluster = USR_ReadDramFdbParameter(K_SDRAM_WAV_FdbParameterBufAddr + ((ULONG)FileIndex - 1) * 10,&mediaType);
               //startCluster = USR_ReadDramFdbParameter(K_SDRAM_WAV_FdbParameterBufAddr + ((ULONG)FileIndex - 1) * 8,&mediaType);
			//patch4.5@ada@Record DCF file name end

               if ((startCluster > 0) && (G_DOS_FileSize > 0))
               {
                    fileExist = 1;
                    //printf("mediaType = K_PLAYBACK_TYPE_WAV\n");
               }

⌨️ 快捷键说明

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