📄 fijpg.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 + -