forked from teamnwah/openmw-tes3coop
commit
0e7d40de6a
@ -0,0 +1,38 @@
|
|||||||
|
#include <QDrag>
|
||||||
|
|
||||||
|
#include "../../model/world/tablemimedata.hpp"
|
||||||
|
#include "dragrecordtable.hpp"
|
||||||
|
|
||||||
|
void CSVWorld::DragRecordTable::startDrag (const CSVWorld::DragRecordTable& table)
|
||||||
|
{
|
||||||
|
CSMWorld::TableMimeData* mime = new CSMWorld::TableMimeData (table.getDraggedRecords(), mDocument);
|
||||||
|
|
||||||
|
if (mime)
|
||||||
|
{
|
||||||
|
QDrag* drag = new QDrag (this);
|
||||||
|
drag->setMimeData (mime);
|
||||||
|
drag->setPixmap (QString::fromUtf8 (mime->getIcon().c_str()));
|
||||||
|
drag->exec (Qt::CopyAction);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CSVWorld::DragRecordTable::DragRecordTable (CSMDoc::Document& document, QWidget* parent) :
|
||||||
|
mDocument(document),
|
||||||
|
QTableView(parent),
|
||||||
|
mEditLock(false)
|
||||||
|
{}
|
||||||
|
|
||||||
|
void CSVWorld::DragRecordTable::setEditLock (bool locked)
|
||||||
|
{
|
||||||
|
mEditLock = locked;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CSVWorld::DragRecordTable::dragEnterEvent(QDragEnterEvent *event)
|
||||||
|
{
|
||||||
|
event->acceptProposedAction();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CSVWorld::DragRecordTable::dragMoveEvent(QDragMoveEvent *event)
|
||||||
|
{
|
||||||
|
event->accept();
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
#ifndef CSV_WORLD_DRAGRECORDTABLE_H
|
||||||
|
#define CSV_WORLD_DRAGRECORDTABLE_H
|
||||||
|
|
||||||
|
#include <QTableView>
|
||||||
|
#include <QtGui/qevent.h>
|
||||||
|
|
||||||
|
class QWidget;
|
||||||
|
class QAction;
|
||||||
|
|
||||||
|
namespace CSMDoc
|
||||||
|
{
|
||||||
|
class Document;
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace CSMWorld
|
||||||
|
{
|
||||||
|
class UniversalId;
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace CSVWorld
|
||||||
|
{
|
||||||
|
class DragRecordTable : public QTableView
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
CSMDoc::Document& mDocument;
|
||||||
|
bool mEditLock;
|
||||||
|
|
||||||
|
public:
|
||||||
|
DragRecordTable(CSMDoc::Document& document, QWidget* parent = NULL);
|
||||||
|
|
||||||
|
virtual std::vector<CSMWorld::UniversalId> getDraggedRecords() const = 0;
|
||||||
|
|
||||||
|
void setEditLock(bool locked);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void startDrag(const DragRecordTable& table);
|
||||||
|
|
||||||
|
void dragEnterEvent(QDragEnterEvent *event);
|
||||||
|
|
||||||
|
void dragMoveEvent(QDragMoveEvent *event);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
@ -1,137 +0,0 @@
|
|||||||
#ifdef OPENMW_USE_AUDIERE
|
|
||||||
|
|
||||||
#include <stdexcept>
|
|
||||||
#include <iostream>
|
|
||||||
|
|
||||||
#include "audiere_decoder.hpp"
|
|
||||||
|
|
||||||
|
|
||||||
static void fail(const std::string &msg)
|
|
||||||
{ throw std::runtime_error("Audiere exception: "+msg); }
|
|
||||||
|
|
||||||
namespace MWSound
|
|
||||||
{
|
|
||||||
|
|
||||||
class OgreFile : public audiere::File
|
|
||||||
{
|
|
||||||
Ogre::DataStreamPtr mStream;
|
|
||||||
|
|
||||||
ADR_METHOD(int) read(void* buffer, int size)
|
|
||||||
{
|
|
||||||
return mStream->read(buffer, size);
|
|
||||||
}
|
|
||||||
|
|
||||||
ADR_METHOD(bool) seek(int position, SeekMode mode)
|
|
||||||
{
|
|
||||||
if(mode == CURRENT)
|
|
||||||
mStream->seek(mStream->tell()+position);
|
|
||||||
else if(mode == BEGIN)
|
|
||||||
mStream->seek(position);
|
|
||||||
else if(mode == END)
|
|
||||||
mStream->seek(mStream->size()+position);
|
|
||||||
else
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
ADR_METHOD(int) tell()
|
|
||||||
{
|
|
||||||
return mStream->tell();
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t refs;
|
|
||||||
ADR_METHOD(void) ref() { ++refs; }
|
|
||||||
ADR_METHOD(void) unref()
|
|
||||||
{
|
|
||||||
if(--refs == 0)
|
|
||||||
delete this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public:
|
|
||||||
OgreFile(const Ogre::DataStreamPtr &stream)
|
|
||||||
: mStream(stream), refs(1)
|
|
||||||
{ }
|
|
||||||
virtual ~OgreFile() { }
|
|
||||||
|
|
||||||
Ogre::String getName()
|
|
||||||
{ return mStream->getName(); }
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
void Audiere_Decoder::open(const std::string &fname)
|
|
||||||
{
|
|
||||||
close();
|
|
||||||
|
|
||||||
mSoundFile = audiere::FilePtr(new OgreFile(mResourceMgr.openResource(fname)));
|
|
||||||
mSoundSource = audiere::OpenSampleSource(mSoundFile);
|
|
||||||
mSoundFileName = fname;
|
|
||||||
|
|
||||||
int channels, srate;
|
|
||||||
audiere::SampleFormat format;
|
|
||||||
|
|
||||||
mSoundSource->getFormat(channels, srate, format);
|
|
||||||
if(format == audiere::SF_S16)
|
|
||||||
mSampleType = SampleType_Int16;
|
|
||||||
else if(format == audiere::SF_U8)
|
|
||||||
mSampleType = SampleType_UInt8;
|
|
||||||
else
|
|
||||||
fail("Unsupported sample type");
|
|
||||||
|
|
||||||
if(channels == 1)
|
|
||||||
mChannelConfig = ChannelConfig_Mono;
|
|
||||||
else if(channels == 2)
|
|
||||||
mChannelConfig = ChannelConfig_Stereo;
|
|
||||||
else
|
|
||||||
fail("Unsupported channel count");
|
|
||||||
|
|
||||||
mSampleRate = srate;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audiere_Decoder::close()
|
|
||||||
{
|
|
||||||
mSoundFile = NULL;
|
|
||||||
mSoundSource = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string Audiere_Decoder::getName()
|
|
||||||
{
|
|
||||||
return mSoundFileName;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audiere_Decoder::getInfo(int *samplerate, ChannelConfig *chans, SampleType *type)
|
|
||||||
{
|
|
||||||
*samplerate = mSampleRate;
|
|
||||||
*chans = mChannelConfig;
|
|
||||||
*type = mSampleType;
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t Audiere_Decoder::read(char *buffer, size_t bytes)
|
|
||||||
{
|
|
||||||
int size = bytesToFrames(bytes, mChannelConfig, mSampleType);
|
|
||||||
size = mSoundSource->read(size, buffer);
|
|
||||||
return framesToBytes(size, mChannelConfig, mSampleType);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Audiere_Decoder::rewind()
|
|
||||||
{
|
|
||||||
mSoundSource->reset();
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t Audiere_Decoder::getSampleOffset()
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
Audiere_Decoder::Audiere_Decoder()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
Audiere_Decoder::~Audiere_Decoder()
|
|
||||||
{
|
|
||||||
close();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,46 +0,0 @@
|
|||||||
#ifndef GAME_SOUND_AUDIERE_DECODER_H
|
|
||||||
#define GAME_SOUND_AUDIERE_DECODER_H
|
|
||||||
|
|
||||||
#include <OgreDataStream.h>
|
|
||||||
|
|
||||||
#include "audiere.h"
|
|
||||||
|
|
||||||
#include "sound_decoder.hpp"
|
|
||||||
|
|
||||||
|
|
||||||
namespace MWSound
|
|
||||||
{
|
|
||||||
class Audiere_Decoder : public Sound_Decoder
|
|
||||||
{
|
|
||||||
std::string mSoundFileName;
|
|
||||||
audiere::FilePtr mSoundFile;
|
|
||||||
audiere::SampleSourcePtr mSoundSource;
|
|
||||||
int mSampleRate;
|
|
||||||
SampleType mSampleType;
|
|
||||||
ChannelConfig mChannelConfig;
|
|
||||||
|
|
||||||
virtual void open(const std::string &fname);
|
|
||||||
virtual void close();
|
|
||||||
|
|
||||||
virtual std::string getName();
|
|
||||||
virtual void getInfo(int *samplerate, ChannelConfig *chans, SampleType *type);
|
|
||||||
|
|
||||||
virtual size_t read(char *buffer, size_t bytes);
|
|
||||||
virtual void rewind();
|
|
||||||
virtual size_t getSampleOffset();
|
|
||||||
|
|
||||||
Audiere_Decoder& operator=(const Audiere_Decoder &rhs);
|
|
||||||
Audiere_Decoder(const Audiere_Decoder &rhs);
|
|
||||||
|
|
||||||
Audiere_Decoder();
|
|
||||||
public:
|
|
||||||
virtual ~Audiere_Decoder();
|
|
||||||
|
|
||||||
friend class SoundManager;
|
|
||||||
};
|
|
||||||
#ifndef DEFAULT_DECODER
|
|
||||||
#define DEFAULT_DECODER (::MWSound::Audiere_Decoder)
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,247 +0,0 @@
|
|||||||
#ifdef OPENMW_USE_MPG123
|
|
||||||
|
|
||||||
#include <stdexcept>
|
|
||||||
#include <iostream>
|
|
||||||
|
|
||||||
#include "mpgsnd_decoder.hpp"
|
|
||||||
|
|
||||||
|
|
||||||
static void fail(const std::string &msg)
|
|
||||||
{ throw std::runtime_error("MpgSnd exception: "+msg); }
|
|
||||||
|
|
||||||
namespace MWSound
|
|
||||||
{
|
|
||||||
|
|
||||||
//
|
|
||||||
// libSndFile io callbacks
|
|
||||||
//
|
|
||||||
sf_count_t MpgSnd_Decoder::ogresf_get_filelen(void *user_data)
|
|
||||||
{
|
|
||||||
Ogre::DataStreamPtr stream = static_cast<MpgSnd_Decoder*>(user_data)->mDataStream;
|
|
||||||
return stream->size();
|
|
||||||
}
|
|
||||||
|
|
||||||
sf_count_t MpgSnd_Decoder::ogresf_seek(sf_count_t offset, int whence, void *user_data)
|
|
||||||
{
|
|
||||||
Ogre::DataStreamPtr stream = static_cast<MpgSnd_Decoder*>(user_data)->mDataStream;
|
|
||||||
|
|
||||||
if(whence == SEEK_CUR)
|
|
||||||
stream->seek(stream->tell()+offset);
|
|
||||||
else if(whence == SEEK_SET)
|
|
||||||
stream->seek(offset);
|
|
||||||
else if(whence == SEEK_END)
|
|
||||||
stream->seek(stream->size()+offset);
|
|
||||||
else
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
return stream->tell();
|
|
||||||
}
|
|
||||||
|
|
||||||
sf_count_t MpgSnd_Decoder::ogresf_read(void *ptr, sf_count_t count, void *user_data)
|
|
||||||
{
|
|
||||||
Ogre::DataStreamPtr stream = static_cast<MpgSnd_Decoder*>(user_data)->mDataStream;
|
|
||||||
return stream->read(ptr, count);
|
|
||||||
}
|
|
||||||
|
|
||||||
sf_count_t MpgSnd_Decoder::ogresf_write(const void*, sf_count_t, void*)
|
|
||||||
{ return -1; }
|
|
||||||
|
|
||||||
sf_count_t MpgSnd_Decoder::ogresf_tell(void *user_data)
|
|
||||||
{
|
|
||||||
Ogre::DataStreamPtr stream = static_cast<MpgSnd_Decoder*>(user_data)->mDataStream;
|
|
||||||
return stream->tell();
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// libmpg13 io callbacks
|
|
||||||
//
|
|
||||||
ssize_t MpgSnd_Decoder::ogrempg_read(void *user_data, void *ptr, size_t count)
|
|
||||||
{
|
|
||||||
Ogre::DataStreamPtr stream = static_cast<MpgSnd_Decoder*>(user_data)->mDataStream;
|
|
||||||
return stream->read(ptr, count);
|
|
||||||
}
|
|
||||||
|
|
||||||
off_t MpgSnd_Decoder::ogrempg_lseek(void *user_data, off_t offset, int whence)
|
|
||||||
{
|
|
||||||
Ogre::DataStreamPtr stream = static_cast<MpgSnd_Decoder*>(user_data)->mDataStream;
|
|
||||||
|
|
||||||
if(whence == SEEK_CUR)
|
|
||||||
stream->seek(stream->tell()+offset);
|
|
||||||
else if(whence == SEEK_SET)
|
|
||||||
stream->seek(offset);
|
|
||||||
else if(whence == SEEK_END)
|
|
||||||
stream->seek(stream->size()+offset);
|
|
||||||
else
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
return stream->tell();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void MpgSnd_Decoder::open(const std::string &fname)
|
|
||||||
{
|
|
||||||
close();
|
|
||||||
mDataStream = mResourceMgr.openResource(fname);
|
|
||||||
|
|
||||||
SF_VIRTUAL_IO streamIO = {
|
|
||||||
ogresf_get_filelen, ogresf_seek,
|
|
||||||
ogresf_read, ogresf_write, ogresf_tell
|
|
||||||
};
|
|
||||||
mSndFile = sf_open_virtual(&streamIO, SFM_READ, &mSndInfo, this);
|
|
||||||
if(mSndFile)
|
|
||||||
{
|
|
||||||
if(mSndInfo.channels == 1)
|
|
||||||
mChanConfig = ChannelConfig_Mono;
|
|
||||||
else if(mSndInfo.channels == 2)
|
|
||||||
mChanConfig = ChannelConfig_Stereo;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sf_close(mSndFile);
|
|
||||||
mSndFile = NULL;
|
|
||||||
fail("Unsupported channel count in "+fname);
|
|
||||||
}
|
|
||||||
mSampleRate = mSndInfo.samplerate;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
mDataStream->seek(0);
|
|
||||||
|
|
||||||
mMpgFile = mpg123_new(NULL, NULL);
|
|
||||||
if(mMpgFile && mpg123_replace_reader_handle(mMpgFile, ogrempg_read, ogrempg_lseek, NULL) == MPG123_OK &&
|
|
||||||
mpg123_open_handle(mMpgFile, this) == MPG123_OK)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
int encoding, channels;
|
|
||||||
long rate;
|
|
||||||
if(mpg123_getformat(mMpgFile, &rate, &channels, &encoding) != MPG123_OK)
|
|
||||||
fail("Failed to get audio format");
|
|
||||||
if(encoding != MPG123_ENC_SIGNED_16)
|
|
||||||
fail("Unsupported encoding in "+fname);
|
|
||||||
if(channels != 1 && channels != 2)
|
|
||||||
fail("Unsupported channel count in "+fname);
|
|
||||||
mChanConfig = ((channels==2)?ChannelConfig_Stereo:ChannelConfig_Mono);
|
|
||||||
mSampleRate = rate;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
catch(std::exception &e)
|
|
||||||
{
|
|
||||||
mpg123_close(mMpgFile);
|
|
||||||
mpg123_delete(mMpgFile);
|
|
||||||
mMpgFile = NULL;
|
|
||||||
throw;
|
|
||||||
}
|
|
||||||
mpg123_close(mMpgFile);
|
|
||||||
}
|
|
||||||
if(mMpgFile)
|
|
||||||
mpg123_delete(mMpgFile);
|
|
||||||
mMpgFile = NULL;
|
|
||||||
|
|
||||||
fail("Unsupported file type: "+fname);
|
|
||||||
}
|
|
||||||
|
|
||||||
void MpgSnd_Decoder::close()
|
|
||||||
{
|
|
||||||
if(mSndFile)
|
|
||||||
sf_close(mSndFile);
|
|
||||||
mSndFile = NULL;
|
|
||||||
|
|
||||||
if(mMpgFile)
|
|
||||||
{
|
|
||||||
mpg123_close(mMpgFile);
|
|
||||||
mpg123_delete(mMpgFile);
|
|
||||||
mMpgFile = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
mDataStream.setNull();
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string MpgSnd_Decoder::getName()
|
|
||||||
{
|
|
||||||
return mDataStream->getName();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MpgSnd_Decoder::getInfo(int *samplerate, ChannelConfig *chans, SampleType *type)
|
|
||||||
{
|
|
||||||
if(!mSndFile && !mMpgFile)
|
|
||||||
fail("No open file");
|
|
||||||
|
|
||||||
*samplerate = mSampleRate;
|
|
||||||
*chans = mChanConfig;
|
|
||||||
*type = SampleType_Int16;
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t MpgSnd_Decoder::read(char *buffer, size_t bytes)
|
|
||||||
{
|
|
||||||
size_t got = 0;
|
|
||||||
|
|
||||||
if(mSndFile)
|
|
||||||
{
|
|
||||||
got = sf_read_short(mSndFile, (short*)buffer, bytes/2)*2;
|
|
||||||
}
|
|
||||||
else if(mMpgFile)
|
|
||||||
{
|
|
||||||
int err;
|
|
||||||
err = mpg123_read(mMpgFile, (unsigned char*)buffer, bytes, &got);
|
|
||||||
if(err != MPG123_OK && err != MPG123_DONE)
|
|
||||||
fail("Failed to read from file");
|
|
||||||
}
|
|
||||||
return got;
|
|
||||||
}
|
|
||||||
|
|
||||||
void MpgSnd_Decoder::readAll(std::vector<char> &output)
|
|
||||||
{
|
|
||||||
if(mSndFile && mSndInfo.frames > 0)
|
|
||||||
{
|
|
||||||
size_t pos = output.size();
|
|
||||||
output.resize(pos + mSndInfo.frames*mSndInfo.channels*2);
|
|
||||||
sf_readf_short(mSndFile, (short*)(&output[0]+pos), mSndInfo.frames);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// Fallback in case we don't know the total already
|
|
||||||
Sound_Decoder::readAll(output);
|
|
||||||
}
|
|
||||||
|
|
||||||
void MpgSnd_Decoder::rewind()
|
|
||||||
{
|
|
||||||
if(!mSndFile && !mMpgFile)
|
|
||||||
fail("No open file");
|
|
||||||
|
|
||||||
if(mSndFile)
|
|
||||||
{
|
|
||||||
if(sf_seek(mSndFile, 0, SEEK_SET) == -1)
|
|
||||||
fail("seek failed");
|
|
||||||
}
|
|
||||||
else if(mMpgFile)
|
|
||||||
{
|
|
||||||
if(mpg123_seek(mMpgFile, 0, SEEK_SET) < 0)
|
|
||||||
fail("seek failed");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t MpgSnd_Decoder::getSampleOffset()
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
MpgSnd_Decoder::MpgSnd_Decoder()
|
|
||||||
: mSndInfo()
|
|
||||||
, mSndFile(NULL)
|
|
||||||
, mMpgFile(NULL)
|
|
||||||
, mDataStream()
|
|
||||||
, mChanConfig(ChannelConfig_Stereo)
|
|
||||||
, mSampleRate(0)
|
|
||||||
{
|
|
||||||
static bool initdone = false;
|
|
||||||
if(!initdone)
|
|
||||||
mpg123_init();
|
|
||||||
initdone = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
MpgSnd_Decoder::~MpgSnd_Decoder()
|
|
||||||
{
|
|
||||||
close();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,59 +0,0 @@
|
|||||||
#ifndef GAME_SOUND_MPGSND_DECODER_H
|
|
||||||
#define GAME_SOUND_MPGSND_DECODER_H
|
|
||||||
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
#include <OgreDataStream.h>
|
|
||||||
|
|
||||||
#include "mpg123.h"
|
|
||||||
#include "sndfile.h"
|
|
||||||
|
|
||||||
#include "sound_decoder.hpp"
|
|
||||||
|
|
||||||
|
|
||||||
namespace MWSound
|
|
||||||
{
|
|
||||||
class MpgSnd_Decoder : public Sound_Decoder
|
|
||||||
{
|
|
||||||
SF_INFO mSndInfo;
|
|
||||||
SNDFILE *mSndFile;
|
|
||||||
mpg123_handle *mMpgFile;
|
|
||||||
|
|
||||||
Ogre::DataStreamPtr mDataStream;
|
|
||||||
static sf_count_t ogresf_get_filelen(void *user_data);
|
|
||||||
static sf_count_t ogresf_seek(sf_count_t offset, int whence, void *user_data);
|
|
||||||
static sf_count_t ogresf_read(void *ptr, sf_count_t count, void *user_data);
|
|
||||||
static sf_count_t ogresf_write(const void*, sf_count_t, void*);
|
|
||||||
static sf_count_t ogresf_tell(void *user_data);
|
|
||||||
static ssize_t ogrempg_read(void*, void*, size_t);
|
|
||||||
static off_t ogrempg_lseek(void*, off_t, int);
|
|
||||||
|
|
||||||
ChannelConfig mChanConfig;
|
|
||||||
int mSampleRate;
|
|
||||||
|
|
||||||
virtual void open(const std::string &fname);
|
|
||||||
virtual void close();
|
|
||||||
|
|
||||||
virtual std::string getName();
|
|
||||||
virtual void getInfo(int *samplerate, ChannelConfig *chans, SampleType *type);
|
|
||||||
|
|
||||||
virtual size_t read(char *buffer, size_t bytes);
|
|
||||||
virtual void readAll(std::vector<char> &output);
|
|
||||||
virtual void rewind();
|
|
||||||
virtual size_t getSampleOffset();
|
|
||||||
|
|
||||||
MpgSnd_Decoder& operator=(const MpgSnd_Decoder &rhs);
|
|
||||||
MpgSnd_Decoder(const MpgSnd_Decoder &rhs);
|
|
||||||
|
|
||||||
MpgSnd_Decoder();
|
|
||||||
public:
|
|
||||||
virtual ~MpgSnd_Decoder();
|
|
||||||
|
|
||||||
friend class SoundManager;
|
|
||||||
};
|
|
||||||
#ifndef DEFAULT_DECODER
|
|
||||||
#define DEFAULT_DECODER (::MWSound::MpgSnd_Decoder)
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,60 +0,0 @@
|
|||||||
# Locate Audiere
|
|
||||||
# This module defines
|
|
||||||
# AUDIERE_LIBRARY
|
|
||||||
# AUDIERE_FOUND, if false, do not try to link to Audiere
|
|
||||||
# AUDIERE_INCLUDE_DIR, where to find the headers
|
|
||||||
#
|
|
||||||
# Created by Nicolay Korslund for OpenMW (http://openmw.com)
|
|
||||||
#
|
|
||||||
# More or less a direct ripoff of FindOpenAL.cmake by Eric Wing.
|
|
||||||
|
|
||||||
#=============================================================================
|
|
||||||
# Copyright 2005-2009 Kitware, Inc.
|
|
||||||
#
|
|
||||||
# Distributed under the OSI-approved BSD License (the "License");
|
|
||||||
# see accompanying file Copyright.txt for details.
|
|
||||||
#
|
|
||||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
|
||||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
||||||
# See the License for more information.
|
|
||||||
#=============================================================================
|
|
||||||
# (To distributed this file outside of CMake, substitute the full
|
|
||||||
# License text for the above reference.)
|
|
||||||
|
|
||||||
|
|
||||||
FIND_PATH(AUDIERE_INCLUDE_DIR audiere.h
|
|
||||||
HINTS
|
|
||||||
PATH_SUFFIXES include
|
|
||||||
PATHS
|
|
||||||
$ENV{AUDIERE_DIR}
|
|
||||||
~/Library/Frameworks
|
|
||||||
/Library/Frameworks
|
|
||||||
/usr/local
|
|
||||||
/usr
|
|
||||||
/sw # Fink
|
|
||||||
/opt/local # DarwinPorts
|
|
||||||
/opt/csw # Blastwave
|
|
||||||
/opt
|
|
||||||
)
|
|
||||||
|
|
||||||
FIND_LIBRARY(AUDIERE_LIBRARY
|
|
||||||
NAMES audiere
|
|
||||||
HINTS
|
|
||||||
PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64
|
|
||||||
PATHS
|
|
||||||
$ENV{AUDIERE_DIR}
|
|
||||||
~/Library/Frameworks
|
|
||||||
/Library/Frameworks
|
|
||||||
/usr/local
|
|
||||||
/usr
|
|
||||||
/sw
|
|
||||||
/opt/local
|
|
||||||
/opt/csw
|
|
||||||
/opt
|
|
||||||
)
|
|
||||||
|
|
||||||
SET(AUDIERE_FOUND "NO")
|
|
||||||
IF(AUDIERE_LIBRARY AND AUDIERE_INCLUDE_DIR)
|
|
||||||
SET(AUDIERE_FOUND "YES")
|
|
||||||
ENDIF(AUDIERE_LIBRARY AND AUDIERE_INCLUDE_DIR)
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
|||||||
# Locate MPG123
|
|
||||||
# This module defines
|
|
||||||
# MPG123_LIBRARY
|
|
||||||
# MPG123_FOUND, if false, do not try to link to Mpg123
|
|
||||||
# MPG123_INCLUDE_DIR, where to find the headers
|
|
||||||
#
|
|
||||||
# Created by Nicolay Korslund for OpenMW (http://openmw.com)
|
|
||||||
#
|
|
||||||
# Ripped off from other sources. In fact, this file is so generic (I
|
|
||||||
# just did a search and replace on another file) that I wonder why the
|
|
||||||
# CMake guys haven't wrapped this entire thing in a single
|
|
||||||
# function. Do we really need to repeat this stuff for every single
|
|
||||||
# library when they all work the same? </today's rant>
|
|
||||||
|
|
||||||
FIND_PATH(MPG123_INCLUDE_DIR mpg123.h
|
|
||||||
HINTS
|
|
||||||
PATHS
|
|
||||||
~/Library/Frameworks
|
|
||||||
/Library/Frameworks
|
|
||||||
/usr/local
|
|
||||||
/usr
|
|
||||||
/sw # Fink
|
|
||||||
/opt/local # DarwinPorts
|
|
||||||
/opt/csw # Blastwave
|
|
||||||
/opt
|
|
||||||
)
|
|
||||||
|
|
||||||
FIND_LIBRARY(MPG123_LIBRARY
|
|
||||||
NAMES mpg123
|
|
||||||
HINTS
|
|
||||||
PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64
|
|
||||||
PATHS
|
|
||||||
~/Library/Frameworks
|
|
||||||
/Library/Frameworks
|
|
||||||
/usr/local
|
|
||||||
/usr
|
|
||||||
/sw
|
|
||||||
/opt/local
|
|
||||||
/opt/csw
|
|
||||||
/opt
|
|
||||||
)
|
|
||||||
|
|
||||||
SET(MPG123_FOUND "NO")
|
|
||||||
IF(MPG123_LIBRARY AND MPG123_INCLUDE_DIR)
|
|
||||||
SET(MPG123_FOUND "YES")
|
|
||||||
ENDIF(MPG123_LIBRARY AND MPG123_INCLUDE_DIR)
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
|||||||
# Locate SNDFILE
|
|
||||||
# This module defines
|
|
||||||
# SNDFILE_LIBRARY
|
|
||||||
# SNDFILE_FOUND, if false, do not try to link to Sndfile
|
|
||||||
# SNDFILE_INCLUDE_DIR, where to find the headers
|
|
||||||
#
|
|
||||||
# Created by Nicolay Korslund for OpenMW (http://openmw.com)
|
|
||||||
|
|
||||||
FIND_PATH(SNDFILE_INCLUDE_DIR sndfile.h
|
|
||||||
HINTS
|
|
||||||
PATHS
|
|
||||||
~/Library/Frameworks
|
|
||||||
/Library/Frameworks
|
|
||||||
/usr/local
|
|
||||||
/usr
|
|
||||||
/sw # Fink
|
|
||||||
/opt/local # DarwinPorts
|
|
||||||
/opt/csw # Blastwave
|
|
||||||
/opt
|
|
||||||
)
|
|
||||||
|
|
||||||
FIND_LIBRARY(SNDFILE_LIBRARY
|
|
||||||
NAMES sndfile
|
|
||||||
HINTS
|
|
||||||
PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64
|
|
||||||
PATHS
|
|
||||||
~/Library/Frameworks
|
|
||||||
/Library/Frameworks
|
|
||||||
/usr/local
|
|
||||||
/usr
|
|
||||||
/sw
|
|
||||||
/opt/local
|
|
||||||
/opt/csw
|
|
||||||
/opt
|
|
||||||
)
|
|
||||||
|
|
||||||
SET(SNDFILE_FOUND "NO")
|
|
||||||
IF(SNDFILE_LIBRARY AND SNDFILE_INCLUDE_DIR)
|
|
||||||
SET(SNDFILE_FOUND "YES")
|
|
||||||
ENDIF(SNDFILE_LIBRARY AND SNDFILE_INCLUDE_DIR)
|
|
||||||
|
|
Loading…
Reference in New Issue