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

📄 files.cpp

📁 WINCE XAUDIO可播放各种音乐格式内附SOURCE CODE可以再不同CPU 平台编译测试
💻 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 + -