bool Pitch::operator==( const Pitch &orig ){ if( m_note == orig.getNoteName() && m_acc == orig.getAccidental() && m_oct == orig.getOctave() ) return true; else return false; }
bool Pitch::operator!=( const Pitch &orig ){ if( m_note != orig.getNoteName() ) return true; if( m_acc != orig.getAccidental() ) return true; if( m_oct != orig.getOctave() ) return true; else return false; }
void TrackParameterBox::updateWidgets2() { Track *track = getTrack(); if (!track) return; Instrument *instrument = m_doc->getStudio().getInstrumentFor(track); if (!instrument) return; // *** Track Label QString trackName = strtoqstr(track->getLabel()); if (trackName.isEmpty()) trackName = tr("<untitled>"); else trackName.truncate(20); const int trackNum = track->getPosition() + 1; m_trackLabel->setText(tr("[ Track %1 - %2 ]").arg(trackNum).arg(trackName)); // *** Playback parameters // Device updatePlaybackDevice(instrument->getDevice()->getId()); // Instrument updateInstrument(instrument); // Archive m_archive->setChecked(track->isArchived()); // If the current Instrument is an Audio Instrument... if (instrument->getInstrumentType() == Instrument::Audio) { // Hide irrelevant portions. m_recordingFiltersFrame->setVisible(false); m_staffExportOptionsFrame->setVisible(false); // In the Create segments with... frame, only the color combo is // useful for an Audio track. m_presetLabel->setVisible(false); m_preset->setVisible(false); m_load->setVisible(false); m_clefLabel->setVisible(false); m_clef->setVisible(false); m_transposeLabel->setVisible(false); m_transpose->setVisible(false); m_pitchLabel->setVisible(false); m_lowestLabel->setVisible(false); m_lowest->setVisible(false); m_highestLabel->setVisible(false); m_highest->setVisible(false); } else { // MIDI or soft synth // Show everything. m_recordingFiltersFrame->setVisible(true); m_staffExportOptionsFrame->setVisible(true); // Create segments with... frame m_presetLabel->setVisible(true); m_preset->setVisible(true); m_load->setVisible(true); m_clefLabel->setVisible(true); m_clef->setVisible(true); m_transposeLabel->setVisible(true); m_transpose->setVisible(true); m_pitchLabel->setVisible(true); m_lowestLabel->setVisible(true); m_lowest->setVisible(true); m_highestLabel->setVisible(true); m_highest->setVisible(true); } // *** Recording filters // Device updateRecordingDevice(track->getMidiInputDevice()); // Channel m_recordingChannel->setCurrentIndex((int)track->getMidiInputChannel() + 1); // Thru Routing m_thruRouting->setCurrentIndex((int)track->getThruRouting()); // *** Staff export options // Notation size m_notationSize->setCurrentIndex(track->getStaffSize()); // Bracket type m_bracketType->setCurrentIndex(track->getStaffBracket()); // *** Create segments with // Preset (Label) m_preset->setText(strtoqstr(track->getPresetLabel())); // Clef m_clef->setCurrentIndex(track->getClef()); // Transpose m_transpose->setCurrentIndex( m_transpose->findText(QString("%1").arg(track->getTranspose()))); // Pitch Lowest QSettings settings; settings.beginGroup(GeneralOptionsConfigGroup); const int octaveBase = settings.value("midipitchoctave", -2).toInt() ; settings.endGroup(); const bool includeOctave = false; const Pitch lowest(track->getLowestPlayable(), Accidentals::NoAccidental); // NOTE: this now uses a new, overloaded version of Pitch::getAsString() // that explicitly works with the key of C major, and does not allow the // calling code to specify how the accidentals should be written out. // // Separate the note letter from the octave to avoid undue burden on // translators having to retranslate the same thing but for a number // difference QString tmp = QObject::tr(lowest.getAsString(includeOctave, octaveBase).c_str(), "note name"); tmp += tr(" %1").arg(lowest.getOctave(octaveBase)); m_lowest->setText(tmp); // Pitch Highest const Pitch highest(track->getHighestPlayable(), Accidentals::NoAccidental); tmp = QObject::tr(highest.getAsString(includeOctave, octaveBase).c_str(), "note name"); tmp += tr(" %1").arg(highest.getOctave(octaveBase)); m_highest->setText(tmp); // Color // Note: We only update the combobox contents if there is an actual // change to the document's colors. See slotDocColoursChanged(). m_color->setCurrentIndex(track->getColor()); }