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

📄 osdmm.c

📁 ct952 source code use for Digital Frame Photo
💻 C
📖 第 1 页 / 共 5 页
字号:
#define OSDMM_MAIN_FILE_DECLARATION
#include "winav.h"#include "comdef.h"#include "OSDMM.h"#include "osdnd.h"#include "osd.h"#include "utl.h"#include "cc.h"#include "linear.h"// wyc0.50-909, make infofilter.h before Mmanager.h because of Mmanager.h need to reference some information defined in infofilter.h#include "infofilter.h"#include "mmanager.h"#include "InfoFilter.h"#include "gdi.h"#include "fontindex.h" //++CoCo2.37P#include "osdfont.h"#include "hal.h"#include "setup.h"
#include "notransl.h"
#include "disp.h"
#include "jpegdec.h"
#include "convchar.h"#define OSDMM_MAIN_FILE//#include "string.lan"#include "OSDString\\strextrn.h"//********************************************************************************************************//Declare Skin setting//********************************************************************************************************DWORD _dwOSDMMGeneralBackgroundColor[] = {OSDMM_PALETTE_COLOR_GENERAL_BACKGROUND_1, OSDMM_PALETTE_COLOR_GENERAL_BACKGROUND_2, OSDMM_PALETTE_COLOR_GENERAL_BACKGROUND_3, OSDMM_PALETTE_COLOR_GENERAL_BACKGROUND_4};DWORD _dwOSDMMTitleStringColor[] = {OSDMM_PALETTE_COLOR_TITLE_STRING_1, OSDMM_PALETTE_COLOR_TITLE_STRING_2, OSDMM_PALETTE_COLOR_TITLE_STRING_3, OSDMM_PALETTE_COLOR_TITLE_STRING_4};DWORD _dwOSDMMTimeStringColor[] = {OSDMM_PALETTE_COLOR_TIME_STRING_1, OSDMM_PALETTE_COLOR_TIME_STRING_2, OSDMM_PALETTE_COLOR_TIME_STRING_3, OSDMM_PALETTE_COLOR_TIME_STRING_4};DWORD _dwOSDMMBackgroundFrameColor[] = {OSDMM_PALETTE_COLOR_BACKGROUND_FRAME_1, OSDMM_PALETTE_COLOR_BACKGROUND_FRAME_2, OSDMM_PALETTE_COLOR_BACKGROUND_FRAME_3, OSDMM_PALETTE_COLOR_BACKGROUND_FRAME_4};DWORD _dwOSDMMHelpRegionBackgroundColor[] = {OSDMM_PALETTE_COLOR_HELP_REGION_BACKGROUND_1, OSDMM_PALETTE_COLOR_HELP_REGION_BACKGROUND_2, OSDMM_PALETTE_COLOR_HELP_REGION_BACKGROUND_3, OSDMM_PALETTE_COLOR_HELP_REGION_BACKGROUND_4};DWORD _dwOSDMMHButtonEnableColor[] = {OSDMM_PALETTE_COLOR_BUTTON_ENABLE_BACKGROUND_1, OSDMM_PALETTE_COLOR_BUTTON_ENABLE_BACKGROUND_2, OSDMM_PALETTE_COLOR_BUTTON_ENABLE_BACKGROUND_3, OSDMM_PALETTE_COLOR_BUTTON_ENABLE_BACKGROUND_4};DWORD _dwOSDMMHButtonEnableStringColor[] = {OSDMM_PALETTE_COLOR_ENABLE_BUTTON_STRING_1, OSDMM_PALETTE_COLOR_ENABLE_BUTTON_STRING_2, OSDMM_PALETTE_COLOR_ENABLE_BUTTON_STRING_3, OSDMM_PALETTE_COLOR_ENABLE_BUTTON_STRING_4};DWORD _dwOSDMMDlgTitleBarColor[] = {OSDMM_PALETTE_COLOR_DLG_TITLE_BAR_1, OSDMM_PALETTE_COLOR_DLG_TITLE_BAR_2, OSDMM_PALETTE_COLOR_DLG_TITLE_BAR_3, OSDMM_PALETTE_COLOR_DLG_TITLE_BAR_4};DWORD _dwOSDMMDlgOuterFrameColor[] = {OSDMM_PALETTE_COLOR_DLG_OUTER_FRAME_1, OSDMM_PALETTE_COLOR_DLG_OUTER_FRAME_2, OSDMM_PALETTE_COLOR_DLG_OUTER_FRAME_3, OSDMM_PALETTE_COLOR_DLG_OUTER_FRAME_4};DWORD _dwOSDMMDlgBackgroundColor[] = {OSDMM_PALETTE_COLOR_DLG_BACKGROUND_1, OSDMM_PALETTE_COLOR_DLG_BACKGROUND_2, OSDMM_PALETTE_COLOR_DLG_BACKGROUND_3, OSDMM_PALETTE_COLOR_DLG_BACKGROUND_4};//********************************************************************************************************//Declare global variables//********************************************************************************************************BYTE __bActiveDirChange;BYTE _bOSDMMStartDrawDir; //The starting item in the left file window.WORD __wOSDMMStartDrawItem;PARM_DRAW_STRING _OSDMMStringAttr;PARM_FRAME _OSDMMFrame;PARM_SCROLL_BAR _OSDMMScrollBar;PARM_RECT _OSDMMRect;PARM_BITMAP_COPY _OSDMMBitmapCopy;//PARM_DRAW_BITMAP _OSDMMDrawBitmap;WORD _wOSDMMTemp;DWORD _dwOSDMMTemp;BYTE _bOSDMMFileLength;BYTE _bOSDMMHaveUpDIR;BYTE _bOSDMMTemp, _bOSDMMTemp1, _bOSDMMTemp2;BYTE _bOSDMMIconType;BYTE _bOSDMMTitleType;BYTE _bOSDMMUpdate;BYTE _bOSDMMPlayingTitle;BYTE _bOSDMMHelpType;BYTE _bOSDMMShowTime;DWORD _dwOSDMMFlashTime, _dwOSDMMSpectrumTime;BYTE _bOSDMMFlash;WORD *__pOSDMMOutputString;BYTE _bOSDMMSortFile[] = {MM_SORT_BY_TYPE, MM_SORT_BY_NAME, MM_SORT_BY_TIME, MM_SORT_BY_ASCENDING, MM_SORT_BY_DESCENDING};SPECTRUM _bOSDMMSpectrum[] = {{OSDMM_AUDIO_SPECTRUM_LINE_0_RANGE, OSDMM_AUDIO_SPECTRUM_LINE_0_COLOR},                              {OSDMM_AUDIO_SPECTRUM_LINE_1_RANGE, OSDMM_AUDIO_SPECTRUM_LINE_1_COLOR},                              {OSDMM_AUDIO_SPECTRUM_LINE_2_RANGE, OSDMM_AUDIO_SPECTRUM_LINE_2_COLOR},                              {OSDMM_AUDIO_SPECTRUM_LINE_3_RANGE, OSDMM_AUDIO_SPECTRUM_LINE_3_COLOR},                              {OSDMM_AUDIO_SPECTRUM_LINE_4_RANGE, OSDMM_AUDIO_SPECTRUM_LINE_4_COLOR}};DWORD _dwOSDMMEQLow, _dwOSDMMEQHigh;DWORD _dwOSDMMNewEQLow, _dwOSDMMNewEQHigh;DWORD _dwOSDMMEQDropLow, _dwOSDMMEQDropHigh;BYTE _bOSDMMButtonState[][2] = {{OSDMM_BUTTON_ENABLE, OSDMM_BUTTON_ENABLE},                                {OSDMM_BUTTON_ENABLE, OSDMM_BUTTON_ENABLE},
                                {OSDMM_BUTTON_ENABLE, OSDMM_BUTTON_ENABLE},                                {OSDMM_BUTTON_ENABLE, OSDMM_BUTTON_ENABLE}};
DWORD _dwOSDMMAudioFreq, _dwOSDMMAudioBitRate, _dwOSDMMAudioTotalTime;

BYTE _bOSDMMUIMode;
BYTE _bOSDMMSaveFile = FALSE;

extern BYTE __bMMSaveProgress;

#ifdef SUPPORT_COPY_FILE_IN_MM_UI
HDIALOG _hOSDMMSaveFileDlg = DIALOG_HANDLE_INVALID;
WORD aOSDMMPercent[] = {1, CHAR_N_PERCENT};
#endif //SUPPORT_COPY_FILE_IN_MM_UI

#ifdef SUPPORT_COPY_FILE_IN_SLIDE_SHOW
HDIALOG _hOSDMMSaveDlg = DIALOG_HANDLE_INVALID;
HDIALOG _hOSDMMDeleteDlg = DIALOG_HANDLE_INVALID;
#endif //SUPPORT_COPY_FILE_IN_SLIDE_SHOW
//The following declaraction will refer to MManager. Will remove it.extern BYTE	__bMMPopMenuID;extern PDIRNAMEINFO __pMMDirNameList;extern BYTE    __bMMVolumeSet [1];extern DWORD   __dwFileTime;// wyc1.05-909, can't put in mmanager.h, so put here.extern PTREE_INFO  __pMMVolumeDirTree;extern BYTE __bMMrogressCnt;//********************************************************************************************************//  Function    :   //  Abstract    :   Update the Media Manager UI according to the message.//  Arguments   :   OSDMM_MSG_INITIAL: Initialize the Media Manager UI. When Media Manager UI is invoked at //                                     first time, Fmanager need to send this message to draw the UI.//              :   OSDMM_MSG_EXIT: Clear the Media Manager UI.//              :   OSDMM_MSG_UPDATE_HIGHLIGHT: This message is for updating the cursor. Fmanager can send //              :                               this message when the cursor is moving. OSDMM will draw the //              :                               cursor according to the cursor's information given by Fmanager.//              :   OSDMM_MSG_CLEAR_HIGHLIGHT: This message is for clearing the cursor.//              :   OSDMM_MSG_UPDATE_CHANGE_DIR: Change the directory when the cursor is at the DIR window.//              :   OSDMM_MSG_UPDATE_PROGRAM_ITEM: Draw the selected frame when the user presses KEY_ENTER to program the item.//              :   OSDMM_MSG_UPDATE_FILE_WINDOW_NEXT: Change to the next page when user presses KEY_NEXT to show the next page.//              :   OSDMM_MSG_UPDATE_FILE_WINDOW_PREVIOUS: Change to the previous page when user presses KEY_PREV to show the previous page.//              :   OSDMM_MSG_UPDATE_CHANGE_DIR_LEVEL: Change the DIR level.//              :   OSDMM_MSG_CHANGE_MODE: Send this message to change normal mode, Program mode and Program List.//              :   OSDMM_MSG_PLAYING: Update the title to the playing mode. It will show current playing file not the file of cursor's position. //              :   OSDMM_MSG_UPDATE_ACTIVE_PLAYING_FILE: Update the active playing file.//              :   OSDMM_MSG_CLEAR_ACTIVE_PLAYING_FILE: Clear the active playing file to normal state.//              :   OSDMM_MSG_STOP: Send this message to notify OSDMM when user presses KEY_STOP. //              :                   Then OSDMM will update the title and stop flashing the active playing file.//              :   OSDMM_MSG_SHOW_DLG: Send this message to show dialog.//              :   OSDMM_MSG_CLEAR_DLG: Send this message to clear dialog.//              :   OSDMM_MSG_UPDATE_DLG_ITEM: Send this message to update the item of the dialog.//              :   OSDMM_MSG_REMOVE_ACTIVE_VOLUME: Send this message when user removes the active volume. //              :                                   Then UI will enter File Manager's starting menu.  //              :   OSDMM_MSG_REMOVE_NOT_ACTIVE_VOLUME: Send this message when user removes the non-active //              :                                       volume and the non-active volume can be seen at the screen. //              :                                       Then only the left file window will be updated.//  Return		:   none.//  Side Effect :   none.//  Notes       :   //*********************************************************************************************************void OSDMM_Update(BYTE bMessage, BYTE bParam){
    switch (bMessage)    {    case OSDMM_MSG_INITIAL:
        _bOSDMMUIMode = bParam;
        _OSDMM_Initial(OSDMM_MODE_INITIAL_UI);        break;    case OSDMM_MSG_EXIT:        _OSDMM_Exit();        break;    case OSDMM_MSG_UPDATE_HIGHLIGHT:        _OSDMM_UpdateHighlight(OSDMM_UPDATE_DRAW);        break;    case OSDMM_MSG_CLEAR_HIGHLIGHT:        _OSDMM_UpdateHighlight(OSDMM_UPDATE_CLEAR);        break;    case OSDMM_MSG_UPDATE_CHANGE_DIR:        _OSDMM_ChangeDir();        break;    case OSDMM_MSG_UPDATE_PROGRAM_ITEM:        _OSDMM_UpdateProgramItem();        break;    case OSDMM_MSG_UPDATE_FILE_WINDOW_NEXT:        _OSDMM_ChangePage(OSDMM_CHANGE_PAGE_NEXT);        break;    case OSDMM_MSG_UPDATE_FILE_WINDOW_PREVIOUS:        _OSDMM_ChangePage(OSDMM_CHANGE_PAGE_PREVIOUS);        break;    case OSDMM_MSG_UPDATE_CHANGE_DIR_LEVEL:        _OSDMM_ChangeDirLevel();        break;    case OSDMM_MSG_CHANGE_MODE:        _OSDMM_ChangMode(bParam);        break;    case OSDMM_MSG_PLAYING: //This message is for audio only        _OSDMM_UpdatePlayingTitle();        _OSDMM_ResetAudioSpectrum();
        HAL_WriteAM(HAL_AM_EQ_AMPLITUDE_LEFT_SHIFT, OSDMM_AMPLITUDE_SHIFT_BITS);                //Let OSDMM_Trigger function to flash the playing icon, update time and draw the audio bar.        _bOSDMMShowTime = TRUE;        _dwOSDMMFlashTime = OS_GetSysTimer();        _bOSDMMFlash = FALSE;        _dwOSDMMSpectrumTime = OS_GetSysTimer();        if (__bMMMenuID == MM_MENU_NORMAL)        {            //_OSDMM_DrawInfoRegion(); //clear help region //--CoCo1.05        }        break;    case OSDMM_MSG_STOP:        _OSDMM_StopAudioPlayingFile();        break;    case OSDMM_MSG_SHOW_DLG:        if (__bMMPopMenuID == MM_POP_MENU_FILTER)        {            _OSDMM_ShowFileTypeDialogBox();        }        else if (__bMMPopMenuID == MM_POP_MENU_SORT)        {            _OSDMM_ShowSortFileDialogBox();        }        break;    case OSDMM_MSG_CLEAR_DLG:        //recover the left file window.        _OSDMM_ClearRegion(OSDMM_LEFT_FILE_WINDOW_REGION);        _OSDMM_DrawLeftFileWindow();        //clear the preview window        _OSDMM_ClearRegion(OSDMM_PREVIEW_REGION);        //draw vertical separate frame        _OSDMM_DrawSeparateFrame(OSDMM_VERTICAL_SEPARATE_FRAME);        //draw horizontal separate frame        _OSDMM_DrawSeparateFrame(OSDMM_HORIZONTAL_SEPARATE_FRAME);        //recover the right file window.        _OSDMM_ClearRegion(OSDMM_RIGHT_FILE_WINDOW_REGION);                _OSDMM_DrawRightFileWindow();           break;    case OSDMM_MSG_UPDATE_DLG_ITEM:        //For "file type" dialog, the position of check/uncheck the item must be the same as the cursor        if (__bMMPopMenuID == MM_POP_MENU_FILTER)        {            _OSDMM_DLG_DrawFileTypeItem((BYTE)__MMSelectCursor.wIndex, TRUE);        }        else if (__bMMPopMenuID == MM_POP_MENU_SORT)        {            if (__MMSelectCursor.wIndex < 3) //Method            {                _OSDMM_DLG_DrawAllMethodItemsInSortFile(TRUE);                            }            else //Sequence            {                _OSDMM_DLG_DrawAllSequenceItemsInSortFile(TRUE);                                            }        }        break;    case OSDMM_MSG_REMOVE_ACTIVE_VOLUME:        //Return to the Media Manager's starting menu.        _bOSDMMStartDrawDir = 0;        __wOSDMMStartDrawItem = 0;        _OSDMM_UpdateTitle();        _OSDMM_ClearRegion(OSDMM_LEFT_FILE_WINDOW_CONTENT_REGION);        _OSDMM_DrawLeftFileWindow();        _OSDMM_ClearRegion(OSDMM_RIGHT_FILE_WINDOW_CONTENT_REGION);        _OSDMM_DrawRightFileWindow();        _OSDMM_UpdateHelp(OSDMM_HELP_TYPE_NONE);        _OSDMM_DrawAllButtons();        break;    case OSDMM_MSG_REMOVE_NOT_ACTIVE_VOLUME:        //Draw the left file window.        _OSDMM_ClearRegion(OSDMM_LEFT_FILE_WINDOW_CONTENT_REGION);        _OSDMM_DrawLeftFileWindow();        break;    case OSDMM_MSG_UPDATE_HELP:        if (__bMMMenuID != MM_MENU_PROGLIST)        {
            if (__bAttrPlay & TYPE_CDROM_AUDIO)
            {
                // wyc2.38-909s, fix bitrate show incorrect problem.                _dwOSDMMAudioBitRate = __wHALAudioBitrate;                // LLY2.53, don't call function to get Audio Frequency again                // Since, the value is ready after DSP docoding audio stream done.                // And, we don't do audio pre-decode while stop -> resume                // So, if only call this API once time, the value maybe not ready.

⌨️ 快捷键说明

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