You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
rosegarden/src/sound/MappedInstrument.cpp

152 lines
3.9 KiB

/*
Rosegarden
A sequencer and musical notation editor.
This program is Copyright 2000-2008
Guillaume Laurent <glaurent@telegraph-road.org>,
Chris Cannam <cannam@all-day-breakfast.com>,
Richard Bown <bownie@bownie.com>
The moral right of the authors to claim authorship of this work
has been asserted.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version. See the file
COPYING included with this distribution for more information.
*/
#include "MappedInstrument.h"
namespace Rosegarden
{
MappedInstrument::MappedInstrument():
m_type(Instrument::Midi),
m_channel(0),
m_id(0),
m_name(std::string("")),
m_audioChannels(0)
{}
MappedInstrument::MappedInstrument(Instrument::InstrumentType type,
MidiByte channel,
InstrumentId id):
m_type(type),
m_channel(channel),
m_id(id),
m_name(std::string("")),
m_audioChannels(0)
{}
MappedInstrument::MappedInstrument(Instrument::InstrumentType type,
MidiByte channel,
InstrumentId id,
const std::string &name,
DeviceId device):
m_type(type),
m_channel(channel),
m_id(id),
m_name(name),
m_device(device),
m_audioChannels(0)
{}
MappedInstrument::MappedInstrument(const Instrument &instr):
m_type(instr.getType()),
m_channel(instr.getMidiChannel()),
m_id(instr.getId()),
m_name(instr.getName()),
m_device((instr.getDevice())->getId()),
m_audioChannels(instr.getAudioChannels())
{}
MappedInstrument::MappedInstrument(Instrument *instr):
m_type(instr->getType()),
m_channel(instr->getMidiChannel()),
m_id(instr->getId()),
m_name(instr->getName()),
m_device(instr->getDevice()->getId()),
m_audioChannels(instr->getAudioChannels())
{}
TQDataStream&
operator>>(TQDataStream &dS, MappedInstrument *mI)
{
unsigned int type, channel, id, device, audioChannels;
TQString name;
dS >> type;
dS >> channel;
dS >> id;
dS >> name;
dS >> device;
dS >> audioChannels;
mI->setType(Instrument::InstrumentType(type));
mI->setChannel(MidiByte(channel));
mI->setId(InstrumentId(id));
mI->setName(std::string(name.ascii()));
mI->setDevice(DeviceId(device));
mI->setAudioChannels(audioChannels);
return dS;
}
TQDataStream&
operator>>(TQDataStream &dS, MappedInstrument &mI)
{
unsigned int type, channel, id, device, audioChannels;
TQString name;
dS >> type;
dS >> channel;
dS >> id;
dS >> name;
dS >> device;
dS >> audioChannels;
mI.setType(Instrument::InstrumentType(type));
mI.setChannel(MidiByte(channel));
mI.setId(InstrumentId(id));
mI.setName(std::string(name.ascii()));
mI.setDevice(DeviceId(device));
mI.setAudioChannels(audioChannels);
return dS;
}
TQDataStream&
operator<<(TQDataStream &dS, MappedInstrument *mI)
{
dS << (unsigned int)mI->getType();
dS << (unsigned int)mI->getChannel();
dS << (unsigned int)mI->getId();
;
dS << TQString(mI->getName().c_str());
dS << (unsigned int)mI->getDevice();
dS << (unsigned int)mI->getAudioChannels();
return dS;
}
TQDataStream&
operator<<(TQDataStream &dS, const MappedInstrument &mI)
{
dS << (unsigned int)mI.getType();
dS << (unsigned int)mI.getChannel();
dS << (unsigned int)mI.getId();
;
dS << TQString(mI.getName().c_str());
dS << (unsigned int)mI.getDevice();
dS << (unsigned int)mI.getAudioChannels();
return dS;
}
}