111 lines
2.3 KiB
C++
111 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
|