112 lines
2.3 KiB
C
112 lines
2.3 KiB
C
|
|
||
|
|
||
|
#ifndef TSOUND_IO_INCLUDED
|
||
|
#define TSOUND_IO_INCLUDED
|
||
|
|
||
|
#include <QStringList>
|
||
|
#include "tfilepath.h"
|
||
|
#include "tsound.h"
|
||
|
|
||
|
#undef DVAPI
|
||
|
#undef DVVAR
|
||
|
#ifdef TSOUND_EXPORTS
|
||
|
#define DVAPI DV_EXPORT_API
|
||
|
#define DVVAR DV_EXPORT_VAR
|
||
|
#else
|
||
|
#define DVAPI DV_IMPORT_API
|
||
|
#define DVVAR DV_IMPORT_VAR
|
||
|
#endif
|
||
|
|
||
|
//=========================================================
|
||
|
|
||
|
class TSoundTrackReader;
|
||
|
typedef TSoundTrackReader *TSoundTrackReaderCreateProc(const TFilePath &path);
|
||
|
|
||
|
//--------------------------------------------------------
|
||
|
//!\include sndReader_ex.cpp
|
||
|
|
||
|
/*!
|
||
|
Superclass for specialized reader of a specific type of audio file
|
||
|
*/
|
||
|
class DVAPI TSoundTrackReader : public TSmartObject
|
||
|
{
|
||
|
|
||
|
DECLARE_CLASS_CODE
|
||
|
|
||
|
protected:
|
||
|
TFilePath m_path;
|
||
|
|
||
|
public:
|
||
|
TSoundTrackReader(const TFilePath &fp);
|
||
|
~TSoundTrackReader();
|
||
|
|
||
|
virtual TSoundTrackP load() = 0;
|
||
|
|
||
|
// forse sarebbe il caso di aggiungere un metodo loadInfo()
|
||
|
// che restituisce una soundtrack con buffer vuoto
|
||
|
// per accedere alle informazioni sulla soundtrack
|
||
|
|
||
|
static bool load(const TFilePath &, TSoundTrackP &);
|
||
|
|
||
|
static void getSupportedFormats(QStringList &names);
|
||
|
static void define(
|
||
|
QString extension,
|
||
|
TSoundTrackReaderCreateProc *proc);
|
||
|
};
|
||
|
|
||
|
#ifdef WIN32
|
||
|
template class DVAPI TSmartPointerT<TSoundTrackReader>;
|
||
|
#endif
|
||
|
|
||
|
class DVAPI TSoundTrackReaderP : public TSmartPointerT<TSoundTrackReader>
|
||
|
{
|
||
|
public:
|
||
|
TSoundTrackReaderP(const TFilePath &fp);
|
||
|
};
|
||
|
|
||
|
//=========================================================
|
||
|
|
||
|
class TSoundTrackWriter;
|
||
|
typedef TSoundTrackWriter *TSoundTrackWriterCreateProc(const TFilePath &path);
|
||
|
|
||
|
//--------------------------------------------------------
|
||
|
//!\include sndWriter_ex.cpp
|
||
|
|
||
|
/*!
|
||
|
Superclass for specialized writer of a specific type of audio file
|
||
|
*/
|
||
|
class DVAPI TSoundTrackWriter : public TSmartObject
|
||
|
{
|
||
|
|
||
|
DECLARE_CLASS_CODE
|
||
|
|
||
|
protected:
|
||
|
TFilePath m_path;
|
||
|
|
||
|
public:
|
||
|
TSoundTrackWriter(const TFilePath &fp);
|
||
|
~TSoundTrackWriter();
|
||
|
|
||
|
virtual bool save(const TSoundTrackP &) = 0;
|
||
|
|
||
|
static bool save(const TFilePath &, const TSoundTrackP &);
|
||
|
|
||
|
static void getSupportedFormats(QStringList &names);
|
||
|
|
||
|
static void define(
|
||
|
QString extension,
|
||
|
TSoundTrackWriterCreateProc *proc);
|
||
|
};
|
||
|
|
||
|
#ifdef WIN32
|
||
|
template class DVAPI TSmartPointerT<TSoundTrackWriter>;
|
||
|
#endif
|
||
|
|
||
|
class DVAPI TSoundTrackWriterP : public TSmartPointerT<TSoundTrackWriter>
|
||
|
{
|
||
|
public:
|
||
|
TSoundTrackWriterP(const TFilePath &fp);
|
||
|
};
|
||
|
|
||
|
#endif
|