diff options
Diffstat (limited to 'attic/muse2-oom/muse2/muse/event.cpp')
-rw-r--r-- | attic/muse2-oom/muse2/muse/event.cpp | 328 |
1 files changed, 0 insertions, 328 deletions
diff --git a/attic/muse2-oom/muse2/muse/event.cpp b/attic/muse2-oom/muse2/muse/event.cpp deleted file mode 100644 index 5d16fde9..00000000 --- a/attic/muse2-oom/muse2/muse/event.cpp +++ /dev/null @@ -1,328 +0,0 @@ -//========================================================= -// MusE -// Linux Music Editor -// $Id: event.cpp,v 1.8.2.5 2009/12/20 05:00:35 terminator356 Exp $ -// -// (C) Copyright 2000-2003 Werner Schweer (ws@seh.de) -//========================================================= - -#include <stdio.h> -// #include <memory.h> -//#include "audioconvert.h" -#include "event.h" -#include "eventbase.h" -#include "waveevent.h" -#include "midievent.h" -//#include "globals.h" - -// Added by Tim. p3.3.20 -//#define USE_SAMPLERATE - -//--------------------------------------------------------- -// Event -//--------------------------------------------------------- - -EventBase::EventBase(EventType t) - { - _type = t; - Pos::setType(_type == Wave ? FRAMES : TICKS); - refCount = 0; - _selected = false; - } - -EventBase::EventBase(const EventBase& ev) - : PosLen(ev) - { - refCount = 0; - _selected = ev._selected; - _type = ev._type; - } - -//--------------------------------------------------------- -// move -//--------------------------------------------------------- - -void EventBase::move(int tickOffset) - { - setTick(tick() + tickOffset); - } - -//--------------------------------------------------------- -// dump -//--------------------------------------------------------- - -void EventBase::dump(int n) const - { - for (int i = 0; i < n; ++i) - putchar(' '); - printf("Event %p refs:%d ", this, refCount); - PosLen::dump(n+2); - } - -//--------------------------------------------------------- -// clone -//--------------------------------------------------------- - -Event Event::clone() - { - // p3.3.31 - //printf("Event::clone() this:%p\n", this); - - // p3.3.31 - //return Event(ev->clone()); - #ifdef USE_SAMPLERATE - return Event(ev->clone(), _audConv); - #else - return Event(ev->clone()); - #endif - } - -Event::Event() -{ - ev = 0; - //_sfCurFrame = 0; - //_audConv = 0; -} - -Event::Event(EventType t) { - //_sfCurFrame = 0; - //_audConv = 0; - - if (t == Wave) - ev = new WaveEventBase(t); - else - ev = new MidiEventBase(t); - ++(ev->refCount); - } -Event::Event(const Event& e) { - //_sfCurFrame = 0; - //_audConv = 0; - - ev = e.ev; - if(ev) - ++(ev->refCount); - - #ifdef USE_SAMPLERATE - //_audConv = AudioConverter::getAudioConverter(e._audConv); - if(e._audConv) - _audConv = e._audConv->reference(); - #endif - } -Event::Event(EventBase* eb) { - //_sfCurFrame = 0; - //_audConv = 0; - - ev = eb; - ++(ev->refCount); - - #ifdef USE_SAMPLERATE - if(!ev->sndFile().isNull()) - //_audConv = AudioConverter::getAudioConverter(eb, SRC_SINC_MEDIUM_QUALITY); - //_audConv = new AudioConverter(ev->sndFile().channels(), SRC_SINC_MEDIUM_QUALITY); - _audConv = new SRCAudioConverter(ev->sndFile().channels(), SRC_SINC_MEDIUM_QUALITY); - #endif - } -#ifdef USE_SAMPLERATE -Event::Event(EventBase* eb, AudioConverter* cv) { - _sfCurFrame = 0; - _audConv = 0; - - ev = eb; - ++(ev->refCount); - - if(cv) - _audConv = cv->reference(); - } -#endif - -Event::~Event() { - if (ev && --(ev->refCount) == 0) { - delete ev; - ev=0; - } - - #ifdef USE_SAMPLERATE - AudioConverter::release(_audConv); - #endif - } - -bool Event::empty() const { return ev == 0; } -EventType Event::type() const { return ev ? ev->type() : Note; } - -void Event::setType(EventType t) { - if (ev && --(ev->refCount) == 0) { - delete ev; - ev = 0; - } - if (t == Wave) - ev = new WaveEventBase(t); - else - ev = new MidiEventBase(t); - ++(ev->refCount); - } - -Event& Event::operator=(const Event& e) { - /* - if (ev == e.ev) - return *this; - if (ev && --(ev->refCount) == 0) { - delete ev; - ev = 0; - } - ev = e.ev; - if (ev) - ++(ev->refCount); - return *this; - */ - - if (ev != e.ev) - { - if (ev && --(ev->refCount) == 0) { - delete ev; - ev = 0; - } - ev = e.ev; - if (ev) - ++(ev->refCount); - } - - #ifdef USE_SAMPLERATE - if (_audConv != e._audConv) - { - if(_audConv) - AudioConverter::release(_audConv); - //_audConv = AudioConverter::getAudioConverter(e._audConv); - _audConv = e._audConv->reference(); - } - #endif - return *this; - } - -bool Event::operator==(const Event& e) const { - return ev == e.ev; - } - -int Event::getRefCount() const { return ev->getRefCount(); } -bool Event::selected() const { return ev->_selected; } -void Event::setSelected(bool val) { ev->_selected = val; } -void Event::move(int offset) { ev->move(offset); } - -//void Event::read(Xml& xml) { ev->read(xml); } -void Event::read(Xml& xml) -{ - ev->read(xml); - - #ifdef USE_SAMPLERATE - if(!ev->sndFile().isNull()) - { - if(_audConv) - { - _audConv->setChannels(ev->sndFile().channels()); - } - else - { - //int srcerr; - //if(debugMsg) - // printf("Event::read Creating samplerate converter with %d channels\n", ev->sndFile().channels()); - //_src_state = src_new(SRC_SINC_MEDIUM_QUALITY, ev->sndFile().channels(), &srcerr); -// _audConv = new AudioConverter(ev->sndFile().channels(), SRC_SINC_MEDIUM_QUALITY); - _audConv = new SRCAudioConverter(ev->sndFile().channels(), SRC_SINC_MEDIUM_QUALITY); - //if(!_src_state) - //if(!_audConv) - // printf("Event::read Creation of samplerate converter with %d channels failed:%s\n", ev->sndFile().channels(), src_strerror(srcerr)); - } - } - #endif -} - - -//void Event::write(int a, Xml& xml, const Pos& o) const { ev->write(a, xml, o); } -void Event::write(int a, Xml& xml, const Pos& o, bool forceWavePaths) const { ev->write(a, xml, o, forceWavePaths); } -void Event::dump(int n) const { ev->dump(n); } -Event Event::mid(unsigned a, unsigned b) { return Event(ev->mid(a, b)); } - -bool Event::isNote() const { return ev->isNote(); } -bool Event::isNoteOff() const { return ev->isNoteOff(); } -bool Event::isNoteOff(const Event& e) const { return ev->isNoteOff(e); } -int Event::dataA() const { return ev->dataA(); } -int Event::pitch() const { return ev->dataA(); } -void Event::setA(int val) { ev->setA(val); } -void Event::setPitch(int val) { ev->setA(val); } -int Event::dataB() const { return ev->dataB(); } -int Event::velo() const { return ev->dataB(); } -void Event::setB(int val) { ev->setB(val); } -void Event::setVelo(int val) { ev->setB(val); } -int Event::dataC() const { return ev->dataC(); } -int Event::veloOff() const { return ev->dataC(); } -void Event::setC(int val) { ev->setC(val); } -void Event::setVeloOff(int val) { ev->setC(val); } - -const unsigned char* Event::data() const { return ev->data(); } -int Event::dataLen() const { return ev->dataLen(); } -void Event::setData(const unsigned char* data, int len) { ev->setData(data, len); } -const EvData Event::eventData() const { return ev->eventData(); } - -const QString Event::name() const { return ev->name(); } -void Event::setName(const QString& s) { ev->setName(s); } -int Event::spos() const { return ev->spos(); } -void Event::setSpos(int s) { ev->setSpos(s); } -SndFileR Event::sndFile() const { return ev->sndFile(); } - -//void Event::setSndFile(SndFileR& sf) { ev->setSndFile(sf); } -void Event::setSndFile(SndFileR& sf) -{ - ev->setSndFile(sf); - - #ifdef USE_SAMPLERATE - //if(_audConv) -// if(_audConv && !sf.isNull()) -// { - //_audConv->setSndFile(sf); - //if(sf.isNull()) - // AudioConverter::release(_audConv); - //else -// _audConv->setChannels(sf.channels()); -// } - - if(_audConv) - { - // Do we release? Or keep the converter around, while gaining speed since no rapid creation/destruction. - //if(sf.isNull()) - // _audConv = AudioConverter::release(_audConv); - //else - // _audConv->setChannels(sf.channels()); - if(!sf.isNull()) - _audConv->setChannels(sf.channels()); - } - else - { - if(!sf.isNull()) - _audConv = new SRCAudioConverter(ev->sndFile().channels(), SRC_SINC_MEDIUM_QUALITY); - } - #endif -} - -//void Event::read(unsigned offset, float** bpp, int channels, int nn, bool overwrite) -//void Event::readAudio(unsigned offset, float** bpp, int channels, int nn, bool doSeek, bool overwrite) -// p3.3.33 -void Event::readAudio(WavePart* part, unsigned offset, float** bpp, int channels, int nn, bool doSeek, bool overwrite) - { - //ev->read(offset, bpp, channels, nn, overwrite); - //ev->readAudio(offset, bpp, channels, nn, doSeek, overwrite); - //_sfCurFrame = ev->readAudio(_src_state, _sfCurFrame, offset, bpp, channels, nn, doSeek, overwrite); - // p3.3.33 - ev->readAudio(part, offset, bpp, channels, nn, doSeek, overwrite); - } -void Event::setTick(unsigned val) { ev->setTick(val); } -unsigned Event::tick() const { return ev->tick(); } -unsigned Event::frame() const { return ev->frame(); } -void Event::setFrame(unsigned val) { ev->setFrame(val); } -void Event::setLenTick(unsigned val) { ev->setLenTick(val); } -void Event::setLenFrame(unsigned val) { ev->setLenFrame(val); } -unsigned Event::lenTick() const { return ev->lenTick(); } -unsigned Event::lenFrame() const { return ev->lenFrame(); } -Pos Event::end() const { return ev->end(); } -unsigned Event::endTick() const { return ev->end().tick(); } -unsigned Event::endFrame() const { return ev->end().frame(); } -void Event::setPos(const Pos& p) { ev->setPos(p); } - |