* Added wxMMedia in the repository so people interrested in it can work on it
* WARNING! It is quite unstable on Windows and it doesn't work on Linux for the moment because I didn't finish fixing the CODEC stream. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@975 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
92
utils/wxMMedia/mmsolve.h
Normal file
92
utils/wxMMedia/mmsolve.h
Normal file
@@ -0,0 +1,92 @@
|
||||
// /////////////////////////////////////////////////////////////////////////////
|
||||
// Name: mmsolve.h
|
||||
// Purpose: wxMMedia
|
||||
// Author: Guilhem Lavaux
|
||||
// Created: 1997
|
||||
// Updated: 1998
|
||||
// Copyright: (C) 1997, 1998, Guilhem Lavaux
|
||||
// License: wxWindows license
|
||||
// /////////////////////////////////////////////////////////////////////////////
|
||||
#ifndef __MMD_solve_H__
|
||||
#define __MMD_solve_H__
|
||||
#ifdef __GNUG__
|
||||
#pragma interface
|
||||
#endif
|
||||
|
||||
#ifdef WX_PRECOMP
|
||||
#include "wx/wxprec.h"
|
||||
#else
|
||||
#include "wx/wx.h"
|
||||
#endif
|
||||
#include "mmfile.h"
|
||||
|
||||
/** @name Solver classes */
|
||||
//@{
|
||||
|
||||
typedef wxMMediaFile *(*wxMediaFileCreator)();
|
||||
|
||||
/** wxMediaFileSolve is a class to do name resolution on multimedia files
|
||||
* @memo Multimedia file solver
|
||||
* @author Guilhem Lavaux
|
||||
*/
|
||||
class WXDLLEXPORT wxMediaFileSolve : public wxObject {
|
||||
protected:
|
||||
typedef struct wxMFileList {
|
||||
wxMediaFileCreator creator;
|
||||
wxString mime_type, name, ext;
|
||||
wxMFileList *next;
|
||||
} wxMFileList;
|
||||
|
||||
static wxMFileList *m_first;
|
||||
static wxUint8 m_devnum;
|
||||
|
||||
friend class wxMMDfileRegister;
|
||||
public:
|
||||
wxMediaFileSolve() : wxObject() {}
|
||||
~wxMediaFileSolve() {}
|
||||
|
||||
/** It resolves using the extension of the specified filename
|
||||
* @memo
|
||||
* @return the multimedia codec
|
||||
* @param filename
|
||||
*/
|
||||
static wxMMediaFile *ByExtension(const wxString& filename);
|
||||
|
||||
/** It resolves using the real name of a codec
|
||||
* @memo
|
||||
* @return the multimedia codec
|
||||
* @param devname
|
||||
*/
|
||||
static wxMMediaFile *ByName(const wxString& devname);
|
||||
|
||||
/** It resolves using a mime type
|
||||
* @memo
|
||||
* @return the multimedia codec
|
||||
* @param mimetype
|
||||
*/
|
||||
static wxMMediaFile *ByType(const wxString& mimetype);
|
||||
|
||||
/** It lists all codecs currently registered in "names". "names" is allocated
|
||||
* by it and devices returns the number of codecs the list contains
|
||||
* @memo
|
||||
* @return nothing
|
||||
* @param names an array
|
||||
* @param devices
|
||||
*/
|
||||
static void ListMDevice(wxString*& names, wxUint8& devices);
|
||||
};
|
||||
|
||||
///
|
||||
class wxMMDfileRegister {
|
||||
public:
|
||||
///
|
||||
wxMMDfileRegister(wxMediaFileCreator cbk, char *mtype, char *ext, char *name);
|
||||
};
|
||||
|
||||
#define MMD_REGISTER_FILE(mtype, name, class, ext) \
|
||||
static wxMMediaFile *wxMediaFileConstructor_##class() { return new class(); } \
|
||||
wxMMDfileRegister mmd_##class(wxMediaFileConstructor_##class, mtype, ext, name);
|
||||
|
||||
//@}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user