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

📄 fijpg.c

📁 台湾凌阳方案300万数码相机源代码
💻 C
字号:
/*++

Copyright (c) 2001 Sunplus Technology Co., Ltd.

Module Name:

        fijpg.c

Abstract:

        Module that related to jpeg file creating

Environment:

        Keil C51 Compiler

Revision History:

        09/07/2001      William Yeo    created

--*/

//=============================================================================
//Header file
//=============================================================================
#include "general.h"
#include "cardimpt.h"
#include "cardlink.h"

//patch3.2@ada@0401 For Multi-Frame Play Back
#include "dosusr.h"
//patch4.2@yichang@0517 for image quality
#include "uiflow.h"

//Joe@2003.3.3 19:52 add begin
#include "JoeToEvb.h"
//Joe@2003.3.3 19:52 add end
extern unsigned int AVG_LUM, AVG_LUM2;
extern void GetAvgLum(PUSHORT Avg);
extern  int Tidx;
extern   unsigned long Ylevel,Yreff,Ylayer,Kback;//patch4.4@jhyu@release_getavglum
extern xdata UCHAR G_FlashStatus;


//=============================================================================
//Symbol
//=============================================================================
//-----------------------------------------------------------------------------
//Constant
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
//Variable
//-----------------------------------------------------------------------------
     //patch3.2@ada@0401 For Multi-Frame Play Back
     ULONG G_USR_NewFileSizeInFdb;

//=============================================================================
//Program
//=============================================================================

//-----------------------------------------------------------------------------
//File_SnapJpg
//-----------------------------------------------------------------------------
/*++

Routine Description:

Arguments:
	none

Return Value:

        none

--*/
//cytsai@1218
//patch3.2@ada@0401 For Multi-Frame Play Back
//patch3.2@da@0401 For Date & Time Update
// version4.0@andrew@ 0513
//
BYTE File_SnapJpg(UCHAR *name) USING_0
{
        BYTE sts = TRUE;
        ULONG size;
        ULONG startAddr;
        USHORT freeCluster;
	BYTE dataType;
//	UCHAR i;
//	 UCHAR filecount[5];




	//patch 4.4-7@wyeo@remove debug message
        //M_Card_Printf("File_SnapJpg: enter\n");

	dataType = G_Image_SrcDataType;
	freeCluster = DOS_GetDiskSpace();
//Davis:patch3.11 add ------------------
		if (((ULONG) freeCluster * G_DOS_ClusterSize) < ((ULONG)600*450))
			freeCluster = 0;
//Davis:patch3.11 add------------------
	if ( freeCluster < ( (200L*1024L)/G_DOS_ClusterSize ) )//hx@2003.5.31 updata//170L*1024L
	{
        	//M_DOS_SetError(K_DOS_DiskFullErr); // WWW1

        	//Joe@2003.3.3 19:51 add begin
        	UI_ShowMemoryFull();
        	//Joe@2003.3.3 19:51 add end
		return FALSE;
	}

	#if 0 //AAA_OPTION					//turnkey 3.0 hx@add begin
		GetAvgLum(&AVG_LUM);
		if((Tidx<5) && (Ylayer<20) && (G_FlashStatus == K_FlashLightOff) )
		{
				  // UI_PrintOSDString(" Sorry Too Dark ", 0, FOSD_V_num/2, 1);	//hx@021111 because overlap
				   UI_PrintOSDString(TOO_DARK[G_Language], 3, 3, UI_MENU_BG_COLOR_ON | UI_MENU_BG_HALFTONE_ON | UI_MENU_TITLE_TEXT_COLOR);

	    	DELAY_1s();//DELAY_1s();
		    UI_PrintOSDString("                    ", 0, 3, UI_MENU_TITLE_TEXT_COLOR);
		   return FALSE;
		}

	#endif
	//patch4.2@yichang@0517 for image quality
        if(G_CameraOptions.ImageQty == K_UIOPTION_IMGQTY_HIGH)
                G_Image_QTableIndex = K_Q95;
        else
                G_Image_QTableIndex = K_Qxx;

        L2_WriteQTable(K_QWriteTable, G_Image_QTableIndex, NULL);

        //capture JPEG image to SDRAM

        //change mode disable by andrew 0513, if in idle mode ae information will not correct
       // SETMODE_ChangeCameraMode(K_MODE_IDLE);

        size = File_ExifStillImage(&startAddr);
       // CardNumber= freeCluster ;                               //wendy;
        //         	for (i = 0; i < 4; i++)
       // {
	//filecount[(3 - i)] = (UCHAR)(CardNumber % 10) + '0';
       //CardNumber/=10;
	//filecount[4] = '\0';
	//}

	//UI_PrintOSDString(filecount, 0, 2, UI_MENU_DEHIGHLIGHT_COLOR);           //wendy


        //Joe@2003.3.3 19:52 add begin
        if (freeCluster < (size / G_DOS_ClusterSize))
        {
               UI_ShowMemoryFull();
               return FALSE;
        }
        //Joe@2003.3.3 19:52 add end

        //ada@0401 For Multi-Frame Play Back
        G_USR_NewFileSizeInFdb = size;
	//WENDY 2003/12/9 FOR free room for picture//
	CardNumber=freeCluster/(size / G_DOS_ClusterSize );
	//WENDY 2003/12/9 FOR free room for picture//

        //ada@0401 For Date & Time Update
        USR_UpdateRtcTime();

        //write JPEG file to card
        sts = File_Make(K_File_SrcDataDram2Card, startAddr, name, size);

	 //change mode  disable by andrew 0513, if in idle mode ae information will not correct
       // SETMODE_ChangeCameraMode(K_MODE_IDLE);

       	//patch 4.4-7@wyeo@remove debug message, begin
        //M_Card_Printf("File_SnapJpg: save JPEG done. JpegSize = %lx\n", size);
        //M_Card_Printf("File_SnapJpg: exit\n");
	//end

        return sts;
}

⌨️ 快捷键说明

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