📄 files.cpp
字号:
/*****************************************************************
|
| Xaudio Player for Windows CE
| File Routines
|
| (c) 1996-1998 MpegTV, LLC
| Author: Gilles Boccon-Gibod (gilles@mpegtv.com)
|
****************************************************************/
/*----------------------------------------------------------------------
| includes
+---------------------------------------------------------------------*/
#ifndef STRICT
#define STRICT
#endif
#include <windows.h>
#include <commdlg.h>
#include <tchar.h>
#include <winnls.h>
#include "xaplayer.h"
#include "control.h"
#include "files.h"
#include "ceutils.h"
/*----------------------------------------------------------------------
| ChooseOpenFile
+---------------------------------------------------------------------*/
const TCHAR FileChooserMpegFiler[] =
TEXT("MP3 Files (*.mp3)\0*.mp3\0MP2 Files (*.mp2)\0*.mp2\0MP1 Files (*.mp1)\0*.mp1\0All (*.*)\0*.*\0\0");
const TCHAR FileChooserMpegDefExt[] = TEXT("mp3");
const TCHAR FileChooserPlayListFilter[] =
TEXT("PlayLists (*.pls)\0*.pls\0All (*.*)\0*.*\0\0");
const TCHAR FileChooserPlayListDefExt[] = TEXT("pls");
/*----------------------------------------------------------------------
| ChooseOpenFile
+---------------------------------------------------------------------*/
int
ChooseOpenFile(HWND parent, char *buffer, unsigned int size,
FileChooserType type)
{
BOOL result;
TCHAR file[MAX_PATH] = TEXT("\0");
OPENFILENAME ofn;
memset(&(ofn), 0, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = parent;
ofn.lpstrFile = file;
ofn.nMaxFile = MAX_PATH;
ofn.lpstrTitle = TEXT("Open File");
ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST;
switch (type) {
case FILE_CHOOSER_TYPE_MPEG_AUDIO:
ofn.lpstrFilter = FileChooserMpegFiler;
ofn.lpstrDefExt = FileChooserMpegDefExt;
break;
case FILE_CHOOSER_TYPE_PLAYLIST:
ofn.lpstrFilter = FileChooserPlayListFilter;
ofn.lpstrDefExt = FileChooserPlayListDefExt;
break;
}
result = GetOpenFileName(&ofn);
if (result) {
WideCharToMultiByte(CP_ACP, 0, ofn.lpstrFile, -1, buffer, size, NULL, NULL);
return 1;
} else {
return 0;
}
}
/*----------------------------------------------------------------------
| ChooseSaveFile
+---------------------------------------------------------------------*/
int
ChooseSaveFile(HWND parent, char *buffer, unsigned int size,
FileChooserType type)
{
BOOL result;
TCHAR file[MAX_PATH] = TEXT("\0");
OPENFILENAME ofn;
memset(&(ofn), 0, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = parent;
ofn.lpstrFile = file;
ofn.nMaxFile = MAX_PATH;
ofn.lpstrTitle = TEXT("Save File");
ofn.Flags = OFN_EXPLORER;
switch (type) {
case FILE_CHOOSER_TYPE_MPEG_AUDIO:
ofn.lpstrFilter = FileChooserMpegFiler;
ofn.lpstrDefExt = FileChooserMpegDefExt;
break;
case FILE_CHOOSER_TYPE_PLAYLIST:
ofn.lpstrFilter = FileChooserPlayListFilter;
ofn.lpstrDefExt = FileChooserPlayListDefExt;
break;
}
result = GetSaveFileName(&ofn);
if (result) {
WideCharToMultiByte(CP_ACP, 0, ofn.lpstrFile, -1, buffer, size, NULL, NULL);
if (buffer[0] = '\\' && buffer[1] == '\\') {
char *copy = buffer;
while (copy[0]) {
copy[0] = copy[1];
copy++;
}
}
{
unsigned int l = strlen(buffer);
if (l>1 && buffer[l-1] == '.' && l < size-4) {
buffer[l] = 'p';
buffer[l+1] = 'l';
buffer[l+2] = 's';
buffer[l+3] = '\0';
}
}
return 1;
} else {
return 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -