本文整理汇总了C++中MidiDevice::getName方法的典型用法代码示例。如果您正苦于以下问题:C++ MidiDevice::getName方法的具体用法?C++ MidiDevice::getName怎么用?C++ MidiDevice::getName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MidiDevice
的用法示例。
在下文中一共展示了MidiDevice::getName方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Device
MidiDevice::MidiDevice(DeviceId id,
InstrumentId ibase,
const MidiDevice &dev) :
Device(id, dev.getName(), Device::Midi),
m_programList(dev.m_programList),
m_bankList(dev.m_bankList),
m_controlList(0),
m_keyMappingList(dev.m_keyMappingList),
m_metronome(0),
m_direction(dev.getDirection()),
m_variationType(dev.getVariationType()),
m_librarian(dev.getLibrarian()),
m_allocator(new AllocateChannels(ChannelSetup::MIDI))
{
createInstruments(ibase);
// Populate device and Instrument with Controllers.
ControlList::const_iterator cIt = dev.m_controlList.begin();
for(; cIt != dev.m_controlList.end(); ++cIt) {
addControlParameter(*cIt, true);
}
// Create and assign a metronome if required
//
if (dev.getMetronome()) {
m_metronome = new MidiMetronome(*dev.getMetronome());
}
generatePresentationList();
}
示例2: string
std::string
Studio::getSegmentName(InstrumentId id)
{
MidiDevice *midiDevice;
std::vector<Device*>::iterator it;
Rosegarden::InstrumentList::iterator iit;
Rosegarden::InstrumentList instList;
for (it = m_devices.begin(); it != m_devices.end(); ++it)
{
midiDevice = dynamic_cast<MidiDevice*>(*it);
if (midiDevice)
{
instList = (*it)->getAllInstruments();
for (iit = instList.begin(); iit != instList.end(); ++iit)
{
if ((*iit)->getId() == id)
{
if ((*iit)->sendsProgramChange())
{
return (*iit)->getProgramName();
}
else
{
return midiDevice->getName() + " " + (*iit)->getName();
}
}
}
}
}
return std::string("");
}
示例3: QDialog
SplitByRecordingSrcDialog::SplitByRecordingSrcDialog(QWidget *parent, RosegardenDocument *doc) :
QDialog(parent)
{
setModal(true);
setWindowTitle(tr("Split by Recording Source"));
QGridLayout *metagrid = new QGridLayout;
setLayout(metagrid);
QWidget *vBox = new QWidget(this);
QVBoxLayout *vBoxLayout = new QVBoxLayout;
metagrid->addWidget(vBox, 0, 0);
QGroupBox *groupBox = new QGroupBox( tr("Recording Source"), vBox );
groupBox->setContentsMargins(10, 10, 10, 10);
QGridLayout *layout = new QGridLayout(groupBox);
layout->setSpacing(5);
vBoxLayout->addWidget(groupBox);
vBox->setLayout(vBoxLayout);
layout->addWidget(new QLabel( tr("Channel:"), groupBox ), 0, 0);
m_channel = new QComboBox( groupBox );
m_channel->setMaxVisibleItems( 17 );
layout->addWidget(m_channel, 0, 1);
QSpacerItem *spacer = new QSpacerItem( 1, 1, QSizePolicy::Expanding, QSizePolicy::Minimum );
layout->addItem( spacer, 0, 2 );
m_channel->addItem(tr("any"));
for (int i = 1; i < 17; ++i) {
m_channel->addItem(QString::number(i));
}
layout->addWidget(new QLabel( tr("Device:"), groupBox ), 1, 0);
m_device = new QComboBox( groupBox );
layout->addWidget( m_device, 1, 1, 0+1, 2 - 1+1);
m_deviceIds.clear();
m_deviceIds.push_back( -1);
m_device->addItem(tr("any"));
DeviceList *devices = doc->getStudio().getDevices();
DeviceListConstIterator it;
for (it = devices->begin(); it != devices->end(); it++) {
MidiDevice *dev =
dynamic_cast<MidiDevice*>(*it);
if (dev && dev->getDirection() == MidiDevice::Record) {
QString label = QString::number(dev->getId());
label += ": ";
label += strtoqstr(dev->getName());
QString connection = RosegardenSequencer::getInstance()->getConnection
(dev->getId());
label += " - ";
if (connection == "")
label += tr("No connection");
else
label += connection;
m_device->addItem(label);
m_deviceIds.push_back(dev->getId());
}
}
m_channel->setCurrentIndex(0);
m_device->setCurrentIndex(0);
groupBox->setLayout(layout);
QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel );
metagrid->addWidget(buttonBox, 1, 0);
metagrid->setRowStretch(0, 10);
connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
}
示例4: Rotary
void
MidiMixerWindow::setupTabs()
{
DeviceListConstIterator it;
MidiDevice *dev = 0;
InstrumentList instruments;
InstrumentList::const_iterator iIt;
int faderCount = 0, deviceCount = 1;
if (m_tabFrame)
delete m_tabFrame;
// Setup m_tabFrame
//
QWidget *blackWidget = new QWidget(this);
setCentralWidget(blackWidget);
QVBoxLayout *centralLayout = new QVBoxLayout;
blackWidget->setLayout(centralLayout);
m_tabWidget = new QTabWidget;
centralLayout->addWidget(m_tabWidget);
connect(m_tabWidget, SIGNAL(currentChanged(QWidget *)),
this, SLOT(slotCurrentTabChanged(QWidget *)));
m_tabWidget->setTabPosition(QTabWidget::South);
setWindowTitle(tr("MIDI Mixer"));
setWindowIcon(IconLoader().loadPixmap("window-midimixer"));
for (it = m_studio->begin(); it != m_studio->end(); ++it) {
dev = dynamic_cast<MidiDevice*>(*it);
if (dev) {
// Get the control parameters that are on the IPB (and hence can
// be shown here too).
//
ControlList controls = getIPBForMidiMixer(dev);
instruments = dev->getPresentationInstruments();
// Don't add a frame for empty devices
//
if (!instruments.size())
continue;
m_tabFrame = new QFrame(m_tabWidget);
m_tabFrame->setContentsMargins(10, 10, 10, 10);
// m_tabFrame->setContentsMargins(5, 5, 5, 5); ???
QGridLayout *mainLayout = new QGridLayout(m_tabFrame);
// MIDI Mixer label
QLabel *label = new QLabel("", m_tabFrame);
mainLayout->addWidget(label, 0, 0, 0, 16, Qt::AlignCenter);
// control labels
for (size_t i = 0; i < controls.size(); ++i) {
label = new QLabel(QObject::tr(controls[i].getName().c_str()), m_tabFrame);
mainLayout->addWidget(label, i + 1, 0, Qt::AlignCenter);
}
// meter label
// (obsolete abandoned code deleted here)
// volume label
label = new QLabel(tr("Volume"), m_tabFrame);
mainLayout->addWidget(label, controls.size() + 2, 0,
Qt::AlignCenter);
// instrument label
label = new QLabel(tr("Instrument"), m_tabFrame);
label->setFixedWidth(80); //!!! this should come from metrics
mainLayout->addWidget(label, controls.size() + 3, 0,
Qt::AlignLeft);
int posCount = 1;
int firstInstrument = -1;
for (iIt = instruments.begin(); iIt != instruments.end(); ++iIt) {
// Add new fader struct
//
m_faders.push_back(new FaderStruct());
// Store the first ID
//
if (firstInstrument == -1)
firstInstrument = (*iIt)->getId();
// Add the controls
//
for (size_t i = 0; i < controls.size(); ++i) {
QColor knobColour = QColor(Qt::white);
if (controls[i].getColourIndex() > 0) {
Colour c =
m_document->getComposition().getGeneralColourMap().
getColourByIndex(controls[i].getColourIndex());
//.........这里部分代码省略.........
示例5:
void
ModifyDeviceCommand::execute()
{
Device *device = m_studio->getDevice(m_device);
if (!device) {
std::cerr << "ERROR: ModifyDeviceCommand::execute(): no such device as " << m_device << std::endl;
return;
}
MidiDevice *midiDevice = dynamic_cast<MidiDevice *>(device);
if (!midiDevice) {
std::cerr << "ERROR: ModifyDeviceCommand::execute(): device " << m_device << " is not a MIDI device" << std::endl;
return;
}
// Save Original Values for Undo
// ??? Really wish we could just m_oldDevice = *(midiDevice). See below.
m_oldName = midiDevice->getName();
m_oldBankList = midiDevice->getBanks();
m_oldProgramList = midiDevice->getPrograms();
m_oldControlList = midiDevice->getControlParameters();
m_oldKeyMappingList = midiDevice->getKeyMappings();
m_oldLibrarianName = midiDevice->getLibrarianName();
m_oldLibrarianEmail = midiDevice->getLibrarianEmail();
m_oldVariationType = midiDevice->getVariationType();
InstrumentList instruments = midiDevice->getAllInstruments();
for (size_t i = 0; i < instruments.size(); ++i) {
// ??? Preserving just the programs isn't enough. We need
// to preserve the rest of the Instrument as well. However,
// the auto/fixed channel feature has made it impossible
// to safely make copies of Instrument objects. Also, Instrument
// has an ID. How should that be handled for undo? ISTM
// that we either need to introduce some sort of copyForUndo()
// hack to each object, or develop a set of standards for coding
// objects that are undo-safe. Sounds like a pretty big project.
m_oldInstrumentPrograms.push_back(instruments[i]->getProgram());
}
// Make the Changes
if (m_changeVariation)
midiDevice->setVariationType(m_variationType);
if (m_overwrite) {
if (m_clearBankAndProgramList) {
midiDevice->clearBankList();
midiDevice->clearProgramList();
midiDevice->clearKeyMappingList();
} else {
if (m_changeBanks)
midiDevice->replaceBankList(m_bankList);
if (m_changePrograms)
midiDevice->replaceProgramList(m_programList);
if (m_changeBanks || m_changePrograms) {
// Make sure the instruments make sense.
for (size_t i = 0; i < instruments.size(); ++i) {
instruments[i]->pickFirstProgram(
midiDevice->isPercussionNumber(i));
}
}
}
if (m_changeKeyMappings) {
midiDevice->replaceKeyMappingList(m_keyMappingList);
}
if (m_rename)
midiDevice->setName(m_name);
midiDevice->setLibrarian(m_librarianName, m_librarianEmail);
} else {
if (m_clearBankAndProgramList) {
midiDevice->clearBankList();
midiDevice->clearProgramList();
} else {
if (m_changeBanks)
midiDevice->mergeBankList(m_bankList);
if (m_changePrograms)
midiDevice->mergeProgramList(m_programList);
}
if (m_changeKeyMappings) {
midiDevice->mergeKeyMappingList(m_keyMappingList);
}
if (m_rename) {
std::string mergeName = midiDevice->getName() +
std::string("/") + m_name;
midiDevice->setName(mergeName);
}
}
//!!! merge option?
if (m_changeControls) {
midiDevice->replaceControlParameters(m_controlList);
}
// ??? Instead of this kludge, we should be calling a Studio::hasChanged()
// which would then notify all observers (e.g. MIPP) who, in turn,
// would update themselves.
//.........这里部分代码省略.........
示例6: deviceName
ControlEditorDialog::ControlEditorDialog
(
QWidget *parent,
RosegardenDocument *doc,
DeviceId device
):
QMainWindow(parent),
m_studio(&doc->getStudio()),
m_doc(doc),
m_device(device),
m_modified(false)
{
RG_DEBUG << "ControlEditorDialog::ControlEditorDialog: device is " << m_device << endl;
QWidget *mainFrame = new QWidget(this);
QVBoxLayout *mainFrameLayout = new QVBoxLayout;
setCentralWidget(mainFrame);
setAttribute(Qt::WA_DeleteOnClose);
// everything else failed, so screw it, let's just set the fscking minimum
// width the brute force way
setMinimumWidth(935);
setWindowTitle(tr("Manage Controllers"));
QString deviceName(tr("<no device>"));
MidiDevice *md =
dynamic_cast<MidiDevice *>(m_studio->getDevice(m_device));
if (md)
deviceName = strtoqstr(md->getName());
// spacing hack!
new QLabel("", mainFrame);
new QLabel(tr(" Controllers for %1 (device %2)")
.arg(deviceName)
.arg(device), mainFrame);
new QLabel("", mainFrame);
QStringList sl;
sl << tr("Name ")
<< tr("Type ")
<< tr("Number ")
<< tr("Description ")
<< tr("Min. value ")
<< tr("Max. value ")
<< tr("Default value ")
<< tr("Color ")
<< tr("Position on instrument panel");
m_treeWidget = new QTreeWidget(mainFrame);
m_treeWidget->setHeaderLabels(sl);
m_treeWidget->setSortingEnabled(true);
mainFrameLayout->addWidget(m_treeWidget);
QFrame *btnBox = new QFrame(mainFrame);
mainFrameLayout->addWidget(btnBox);
mainFrame->setLayout(mainFrameLayout);
btnBox->setSizePolicy(
QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed));
// QT3: I don't think it's necessary to replace the following ",4, 10" with
// anything to explicitly set the dimensions of the HBox, but there might be
// some compatibility trickery I'm not remembering, etc. Leaving as a
// reminder in case the layout turns out broken:
QHBoxLayout* layout = new QHBoxLayout(btnBox /*, 4, 10 */);
m_addButton = new QPushButton(tr("Add"), btnBox);
m_deleteButton = new QPushButton(tr("Delete"), btnBox);
m_closeButton = new QPushButton(tr("Close"), btnBox);
m_addButton->setToolTip(tr("Add a Control Parameter to the Studio"));
m_deleteButton->setToolTip(tr("Delete a Control Parameter from the Studio"));
m_closeButton->setToolTip(tr("Close the Control Parameter editor"));
layout->addStretch(10);
layout->addWidget(m_addButton);
layout->addWidget(m_deleteButton);
layout->addSpacing(30);
layout->addWidget(m_closeButton);
layout->addSpacing(5);
connect(m_addButton, SIGNAL(released()),
SLOT(slotAdd()));
connect(m_deleteButton, SIGNAL(released()),
SLOT(slotDelete()));
setupActions();
connect(CommandHistory::getInstance(), SIGNAL(commandExecuted()),
this, SLOT(slotUpdate()));
connect(m_treeWidget, SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)),
SLOT(slotEdit(QTreeWidgetItem *, int)));
//.........这里部分代码省略.........