本文整理汇总了C++中Pattern::get_name方法的典型用法代码示例。如果您正苦于以下问题:C++ Pattern::get_name方法的具体用法?C++ Pattern::get_name怎么用?C++ Pattern::get_name使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pattern
的用法示例。
在下文中一共展示了Pattern::get_name方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: load_from
Pattern* Pattern::load_from( XMLNode* node, InstrumentList* instruments )
{
Pattern* pattern = new Pattern(
node->read_string( "name", NULL, false, false ),
node->read_string( "info", "", false, false ),
node->read_string( "category", "unknown", false, false ),
node->read_int( "size", -1, false, false )
);
// FIXME support legacy xml element pattern_name, should once be removed
if ( pattern->get_name().isEmpty() ) {
pattern->set_name( node->read_string( "pattern_name", "unknown", false, false ) );
}
XMLNode note_list_node = node->firstChildElement( "noteList" );
if ( !note_list_node.isNull() ) {
XMLNode note_node = note_list_node.firstChildElement( "note" );
while ( !note_node.isNull() ) {
Note* note = Note::load_from( ¬e_node, instruments );
if( note ) {
pattern->insert_note( note );
}
note_node = note_node.nextSiblingElement( "note" );
}
}
return pattern;
}
示例2: newPatBtnClicked
///
/// Create a new pattern
///
void SongEditorPanel::newPatBtnClicked( Button* btn )
{
UNUSED( btn );
Hydrogen *pEngine = Hydrogen::get_instance();
Song *pSong = pEngine->getSong();
PatternList *pPatternList = pSong->get_pattern_list();
Pattern *pNewPattern = new Pattern( trUtf8("Pattern %1").arg(pPatternList->size()+1));
PatternPropertiesDialog *pDialog = new PatternPropertiesDialog( this, pNewPattern, 0, true );
if ( pDialog->exec() == QDialog::Accepted ) {
SE_addEmptyPatternAction*action =
new SE_addEmptyPatternAction( pNewPattern->get_name() , pNewPattern->get_info(), pNewPattern->get_category(), pEngine->getSelectedPatternNumber()+1);
HydrogenApp::get_instance()->m_undoStack->push( action );
}
delete pNewPattern;
delete pDialog;
}
示例3: action_file_export_pattern_as
void MainForm::action_file_export_pattern_as()
{
if ( ( Hydrogen::get_instance()->getState() == STATE_PLAYING ) )
{
Hydrogen::get_instance()->sequencer_stop();
}
Hydrogen *engine = Hydrogen::get_instance();
int selectedpattern = engine->getSelectedPatternNumber();
Song *song = engine->getSong();
Pattern *pat = song->get_pattern_list()->get ( selectedpattern );
Instrument *instr = song->get_instrument_list()->get ( 0 );
assert ( instr );
QDir dir = Preferences::get_instance()->__lastspatternDirectory;
QFileDialog fd(this);
fd.setFileMode ( QFileDialog::AnyFile );
fd.setFilter ( trUtf8 ( "Hydrogen Pattern (*.h2pattern)" ) );
fd.setAcceptMode ( QFileDialog::AcceptSave );
fd.setWindowTitle ( trUtf8 ( "Save Pattern as ..." ) );
fd.setDirectory ( dir );
fd.setSidebarUrls( fd.sidebarUrls() << QUrl::fromLocalFile( Filesystem::patterns_dir() ) );
QString defaultPatternname = QString ( pat->get_name() );
fd.selectFile ( defaultPatternname );
LocalFileMng fileMng;
QString filename;
if ( fd.exec() == QDialog::Accepted )
{
filename = fd.selectedFiles().first();
QString tmpfilename = filename;
QString toremove = tmpfilename.section( '/', -1 );
QString newdatapath = tmpfilename.replace( toremove, "" );
Preferences::get_instance()->__lastspatternDirectory = newdatapath;
}
if ( !filename.isEmpty() )
{
QString sNewFilename = filename;
if(sNewFilename.endsWith( ".h2pattern" ) ){
sNewFilename += "";
}
else{
sNewFilename += ".h2pattern";
}
QString patternname = sNewFilename;
QString realpatternname = filename;
QString realname = realpatternname.mid( realpatternname.lastIndexOf( "/" ) + 1 );
if ( realname.endsWith( ".h2pattern" ) )
realname.replace( ".h2pattern", "" );
pat->set_name(realname);
HydrogenApp::get_instance()->getSongEditorPanel()->updateAll();
int err = fileMng.savePattern ( song, engine->getCurrentDrumkitname(), selectedpattern, patternname, realname, 2 );
if ( err != 0 )
{
QMessageBox::warning( this, "Hydrogen", trUtf8("Could not export pattern.") );
_ERRORLOG ( "Error saving the pattern" );
}
}
h2app->setStatusBarMessage ( trUtf8 ( "Pattern saved." ), 10000 );
//update SoundlibraryPanel
HydrogenApp::get_instance()->getInstrumentRack()->getSoundLibraryPanel()->test_expandedItems();
HydrogenApp::get_instance()->getInstrumentRack()->getSoundLibraryPanel()->updateDrumkitList();
}
示例4: copyInstrumentLineToString
QString LocalFileMng::copyInstrumentLineToString(Song *song, int selectedPattern, int selectedInstrument)
{
Instrument *instr = song->get_instrument_list()->get( selectedInstrument );
assert( instr );
QDomDocument doc;
QDomProcessingInstruction header = doc.createProcessingInstruction( "xml", "version=\"1.0\" encoding=\"UTF-8\"");
doc.appendChild( header );
QDomNode rootNode = doc.createElement( "instrument_line" );
//LIB_ID just in work to get better usability
//writeXmlString( &rootNode, "LIB_ID", "in_work" );
writeXmlString( rootNode, "author", song->get_author() );
writeXmlString( rootNode, "license", song->get_license() );
QDomNode patternList = doc.createElement( "patternList" );
unsigned nPatterns = song->get_pattern_list()->size();
for ( unsigned i = 0; i < nPatterns; i++ )
{
if ((selectedPattern >= 0) && (selectedPattern != i))
continue;
// Export pattern
Pattern *pat = song->get_pattern_list()->get( i );
QDomNode patternNode = doc.createElement( "pattern" );
writeXmlString( patternNode, "pattern_name", pat->get_name() );
QString category;
if ( pat->get_category().isEmpty() )
category = "No category";
else
category = pat->get_category();
writeXmlString( patternNode, "info", pat->get_info() );
writeXmlString( patternNode, "category", category );
writeXmlString( patternNode, "size", QString("%1").arg( pat->get_length() ) );
QDomNode noteListNode = doc.createElement( "noteList" );
const Pattern::notes_t* notes = pat->get_notes();
FOREACH_NOTE_CST_IT_BEGIN_END(notes,it)
{
Note *pNote = it->second;
assert( pNote );
// Export only specified instrument
if (pNote->get_instrument() == instr)
{
QDomNode noteNode = doc.createElement( "note" );
writeXmlString( noteNode, "position", QString("%1").arg( pNote->get_position() ) );
writeXmlString( noteNode, "leadlag", QString("%1").arg( pNote->get_lead_lag() ) );
writeXmlString( noteNode, "velocity", QString("%1").arg( pNote->get_velocity() ) );
writeXmlString( noteNode, "pan_L", QString("%1").arg( pNote->get_pan_l() ) );
writeXmlString( noteNode, "pan_R", QString("%1").arg( pNote->get_pan_r() ) );
writeXmlString( noteNode, "pitch", QString("%1").arg( pNote->get_pitch() ) );
writeXmlString( noteNode, "key", pNote->key_to_string() );
writeXmlString( noteNode, "length", QString("%1").arg( pNote->get_length() ) );
noteListNode.appendChild( noteNode );
}
}
patternNode.appendChild( noteListNode );
patternList.appendChild( patternNode );
}
示例5: writeSong
// Returns 0 on success, passes the TinyXml error code otherwise.
int SongWriter::writeSong( Song *song, const QString& filename )
{
INFOLOG( "Saving song " + filename );
int rv = 0; // return value
// FIXME: has the file write-permssion?
// FIXME: verificare che il file non sia gia' esistente
// FIXME: effettuare copia di backup per il file gia' esistente
QDomDocument doc;
QDomProcessingInstruction header = doc.createProcessingInstruction( "xml", "version=\"1.0\" encoding=\"UTF-8\"");
doc.appendChild( header );
QDomNode songNode = doc.createElement( "song" );
LocalFileMng::writeXmlString( songNode, "version", QString( get_version().c_str() ) );
LocalFileMng::writeXmlString( songNode, "bpm", QString("%1").arg( song->__bpm ) );
LocalFileMng::writeXmlString( songNode, "volume", QString("%1").arg( song->get_volume() ) );
LocalFileMng::writeXmlString( songNode, "metronomeVolume", QString("%1").arg( song->get_metronome_volume() ) );
LocalFileMng::writeXmlString( songNode, "name", song->__name );
LocalFileMng::writeXmlString( songNode, "author", song->__author );
LocalFileMng::writeXmlString( songNode, "notes", song->get_notes() );
LocalFileMng::writeXmlString( songNode, "license", song->get_license() );
LocalFileMng::writeXmlBool( songNode, "loopEnabled", song->is_loop_enabled() );
LocalFileMng::writeXmlBool( songNode, "patternModeMode", Preferences::get_instance()->patternModePlaysSelected());
LocalFileMng::writeXmlString( songNode, "playbackTrackFilename", QString("%1").arg( song->get_playback_track_filename() ) );
LocalFileMng::writeXmlBool( songNode, "playbackTrackEnabled", song->get_playback_track_enabled() );
LocalFileMng::writeXmlString( songNode, "playbackTrackVolume", QString("%1").arg( song->get_playback_track_volume() ) );
if ( song->get_mode() == Song::SONG_MODE ) {
LocalFileMng::writeXmlString( songNode, "mode", QString( "song" ) );
} else {
LocalFileMng::writeXmlString( songNode, "mode", QString( "pattern" ) );
}
LocalFileMng::writeXmlString( songNode, "humanize_time", QString("%1").arg( song->get_humanize_time_value() ) );
LocalFileMng::writeXmlString( songNode, "humanize_velocity", QString("%1").arg( song->get_humanize_velocity_value() ) );
LocalFileMng::writeXmlString( songNode, "swing_factor", QString("%1").arg( song->get_swing_factor() ) );
// component List
QDomNode componentListNode = doc.createElement( "componentList" );
for (std::vector<DrumkitComponent*>::iterator it = song->get_components()->begin() ; it != song->get_components()->end(); ++it) {
DrumkitComponent* pCompo = *it;
QDomNode componentNode = doc.createElement( "drumkitComponent" );
LocalFileMng::writeXmlString( componentNode, "id", QString("%1").arg( pCompo->get_id() ) );
LocalFileMng::writeXmlString( componentNode, "name", pCompo->get_name() );
LocalFileMng::writeXmlString( componentNode, "volume", QString("%1").arg( pCompo->get_volume() ) );
componentListNode.appendChild( componentNode );
}
songNode.appendChild( componentListNode );
// instrument list
QDomNode instrumentListNode = doc.createElement( "instrumentList" );
unsigned nInstrument = song->get_instrument_list()->size();
// INSTRUMENT NODE
for ( unsigned i = 0; i < nInstrument; i++ ) {
Instrument *instr = song->get_instrument_list()->get( i );
assert( instr );
QDomNode instrumentNode = doc.createElement( "instrument" );
LocalFileMng::writeXmlString( instrumentNode, "id", QString("%1").arg( instr->get_id() ) );
LocalFileMng::writeXmlString( instrumentNode, "name", instr->get_name() );
LocalFileMng::writeXmlString( instrumentNode, "drumkit", instr->get_drumkit_name() );
LocalFileMng::writeXmlString( instrumentNode, "volume", QString("%1").arg( instr->get_volume() ) );
LocalFileMng::writeXmlBool( instrumentNode, "isMuted", instr->is_muted() );
LocalFileMng::writeXmlString( instrumentNode, "pan_L", QString("%1").arg( instr->get_pan_l() ) );
LocalFileMng::writeXmlString( instrumentNode, "pan_R", QString("%1").arg( instr->get_pan_r() ) );
LocalFileMng::writeXmlString( instrumentNode, "gain", QString("%1").arg( instr->get_gain() ) );
LocalFileMng::writeXmlBool( instrumentNode, "applyVelocity", instr->get_apply_velocity() );
LocalFileMng::writeXmlBool( instrumentNode, "filterActive", instr->is_filter_active() );
LocalFileMng::writeXmlString( instrumentNode, "filterCutoff", QString("%1").arg( instr->get_filter_cutoff() ) );
LocalFileMng::writeXmlString( instrumentNode, "filterResonance", QString("%1").arg( instr->get_filter_resonance() ) );
LocalFileMng::writeXmlString( instrumentNode, "FX1Level", QString("%1").arg( instr->get_fx_level( 0 ) ) );
LocalFileMng::writeXmlString( instrumentNode, "FX2Level", QString("%1").arg( instr->get_fx_level( 1 ) ) );
LocalFileMng::writeXmlString( instrumentNode, "FX3Level", QString("%1").arg( instr->get_fx_level( 2 ) ) );
LocalFileMng::writeXmlString( instrumentNode, "FX4Level", QString("%1").arg( instr->get_fx_level( 3 ) ) );
assert( instr->get_adsr() );
LocalFileMng::writeXmlString( instrumentNode, "Attack", QString("%1").arg( instr->get_adsr()->get_attack() ) );
LocalFileMng::writeXmlString( instrumentNode, "Decay", QString("%1").arg( instr->get_adsr()->get_decay() ) );
LocalFileMng::writeXmlString( instrumentNode, "Sustain", QString("%1").arg( instr->get_adsr()->get_sustain() ) );
LocalFileMng::writeXmlString( instrumentNode, "Release", QString("%1").arg( instr->get_adsr()->get_release() ) );
LocalFileMng::writeXmlString( instrumentNode, "randomPitchFactor", QString("%1").arg( instr->get_random_pitch_factor() ) );
LocalFileMng::writeXmlString( instrumentNode, "muteGroup", QString("%1").arg( instr->get_mute_group() ) );
LocalFileMng::writeXmlBool( instrumentNode, "isStopNote", instr->is_stop_notes() );
switch ( instr->sample_selection_alg() ) {
case Instrument::VELOCITY:
//.........这里部分代码省略.........