wxWidgets/utils/wxMMedia/mmfile.h

90 lines
1.8 KiB
C
Raw Normal View History

// /////////////////////////////////////////////////////////////////////////////
// Name: mmfile.h
// Purpose: wxMMedia
// Author: Guilhem Lavaux
// Created: 1997
// Updated: 1998
// Copyright: (C) 1997, 1998, Guilhem Lavaux
// License: wxWindows license
// /////////////////////////////////////////////////////////////////////////////
#ifndef __MMD_file_H__
#define __MMD_file_H__
#ifdef __GNUG__
#pragma interface
#endif
#include "wx/string.h"
#include "wx/stream.h"
#include "mmtype.h"
///
typedef enum {
wxMMFILE_NOERROR,
wxMMFILE_INVALID,
wxMMFILE_EOF
} ///
wxMMFileError;
typedef struct {
wxInt8 hours;
wxUint8 minutes, seconds;
} wxMMtime;
/// Common base class for multimedia file.
class wxMMediaFile {
public:
wxMMediaFile();
///
wxMMediaFile(wxInputStream& is, bool preload, bool seekable);
///
wxMMediaFile(wxOutputStream& is, bool seekable);
///
wxMMediaFile(const wxString& fname);
///
virtual ~wxMMediaFile();
///
wxInputStream *GetIRawData();
wxOutputStream *GetORawData();
///
wxString GetCurrentFile();
///
virtual void SetFile(wxInputStream& is,
bool preload = FALSE, bool seekable = FALSE);
///
virtual void SetFile(wxOutputStream& is, bool seekable = FALSE);
///
void SetFile(const wxString& fname);
///
wxMMFileError GetFileError() const { return m_mmerror; }
///
virtual wxMMtime GetLength();
///
virtual wxMMtime GetPosition();
///
virtual bool StartPlay() = 0;
///
virtual void StopPlay() = 0;
protected:
///
wxMMFileError m_mmerror;
///
wxInputStream *m_istream, *m_i_temp;
///
wxOutputStream *m_ostream, *m_o_temp;
///
wxString m_tmpfname, m_mfname;
///
bool m_seekable;
///
void CacheIO();
///
void CleanUpPrevious();
};
#endif