本文整理汇总了C++中Hydrogen::setSelectedPatternNumber方法的典型用法代码示例。如果您正苦于以下问题:C++ Hydrogen::setSelectedPatternNumber方法的具体用法?C++ Hydrogen::setSelectedPatternNumber怎么用?C++ Hydrogen::setSelectedPatternNumber使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Hydrogen
的用法示例。
在下文中一共展示了Hydrogen::setSelectedPatternNumber方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: action_file_new
void MainForm::action_file_new()
{
Hydrogen * pEngine = Hydrogen::get_instance();
if ( (pEngine->getState() == STATE_PLAYING) ) {
pEngine->sequencer_stop();
}
bool proceed = handleUnsavedChanges();
if(!proceed) {
return;
}
h2app->m_undoStack->clear();
pEngine->getTimeline()->m_timelinevector.clear();
Song * pSong = Song::get_empty_song();
pSong->set_filename( "" );
h2app->setSong(pSong);
pEngine->setSelectedPatternNumber( 0 );
h2app->getInstrumentRack()->getSoundLibraryPanel()->update_background_color();
h2app->getSongEditorPanel()->updatePositionRuler();
pEngine->getTimeline()->m_timelinetagvector.clear();
// update director tags
EventQueue::get_instance()->push_event( EVENT_METRONOME, 2 );
// update director songname
EventQueue::get_instance()->push_event( EVENT_METRONOME, 3 );
}
示例2: on_songLoadAction
void SoundLibraryPanel::on_songLoadAction()
{
QString songName = __sound_library_tree->currentItem()->text( 0 );
QString sDirectory = Preferences::get_instance()->getDataDirectory() + "songs";
QString sFilename = sDirectory + "/" + songName + ".h2song";
Hydrogen *engine = Hydrogen::get_instance();
if ( engine->getState() == STATE_PLAYING ) {
engine->sequencer_stop();
}
Song *pSong = Song::load( sFilename );
if ( pSong == NULL ) {
QMessageBox::information( this, "Hydrogen", trUtf8("Error loading song.") );
return;
}
// add the new loaded song in the "last used song" vector
Preferences *pPref = Preferences::get_instance();
std::vector<QString> recentFiles = pPref->getRecentFiles();
recentFiles.insert( recentFiles.begin(), sFilename );
pPref->setRecentFiles( recentFiles );
HydrogenApp* h2app = HydrogenApp::get_instance();
h2app->setSong( pSong );
//updateRecentUsedSongList();
engine->setSelectedPatternNumber( 0 );
}
示例3: revertaddEmptyPattern
void SongEditorPanel::revertaddEmptyPattern( int idx )
{
Hydrogen *pEngine = Hydrogen::get_instance();
Song *pSong = pEngine->getSong();
PatternList *pPatternList = pSong->get_pattern_list();
H2Core::Pattern *pPattern = pPatternList->get( idx );
if( idx == pEngine->getSelectedPatternNumber() ) pEngine->setSelectedPatternNumber( idx -1 );
pPatternList->del( pPattern );
delete pPattern;
pSong->set_is_modified( true );
updateAll();
}
示例4: nodePlayBTN
void PlaylistDialog::nodePlayBTN( Button* ref )
{
Hydrogen *pEngine = Hydrogen::get_instance();
HydrogenApp *pH2App = HydrogenApp::get_instance();
if (ref->isPressed()) {
QTreeWidgetItem* m_pPlaylistItem = m_pPlaylistTree->currentItem();
if ( m_pPlaylistItem == NULL ){
QMessageBox::information ( this, "Hydrogen", trUtf8 ( "No valid song selected!" ) );
m_pPlayBtn->setPressed(false);
return;
}
QString selected = "";
selected = m_pPlaylistItem->text ( 0 );
if( selected == pEngine->getSong()->get_filename()){
pEngine->sequencer_play();
return;
}
if ( pEngine->getState() == STATE_PLAYING ){
pEngine->sequencer_stop();
}
Song *pSong = Song::load ( selected );
if ( pSong == NULL ){
QMessageBox::information ( this, "Hydrogen", trUtf8 ( "Error loading song." ) );
m_pPlayBtn->setPressed(false);
return;
}
QTreeWidget* m_pPlaylist = m_pPlaylistTree;
int index = m_pPlaylist->indexOfTopLevelItem ( m_pPlaylistItem );
Playlist::get_instance()->setActiveSongNumber( index );
pH2App->setSong ( pSong );
pEngine->setSelectedPatternNumber ( 0 );
pEngine->sequencer_play();
}else
{
pEngine->sequencer_stop();
pH2App->setStatusBarMessage(trUtf8("Pause."), 5000);
}
}
示例5: handleAction
/**
* The handleAction method is the heard of the MidiActionManager class.
* It executes the operations that are needed to carry the desired action.
*/
bool MidiActionManager::handleAction( MidiAction * pAction ){
Hydrogen *pEngine = Hydrogen::get_instance();
/*
return false if action is null
(for example if no Action exists for an event)
*/
if( pAction == NULL ) return false;
QString sActionString = pAction->getType();
if( sActionString == "PLAY" )
{
int nState = pEngine->getState();
if ( nState == STATE_READY ){
pEngine->sequencer_play();
}
return true;
}
if( sActionString == "PLAY/STOP_TOGGLE" || sActionString == "PLAY/PAUSE_TOGGLE" )
{
int nState = pEngine->getState();
switch ( nState )
{
case STATE_READY:
pEngine->sequencer_play();
break;
case STATE_PLAYING:
if( sActionString == "PLAY/STOP_TOGGLE" ) pEngine->setPatternPos( 0 );
pEngine->sequencer_stop();
pEngine->setTimelineBpm();
break;
default:
ERRORLOG( "[Hydrogen::ActionManager(PLAY): Unhandled case" );
}
return true;
}
if( sActionString == "PAUSE" )
{
pEngine->sequencer_stop();
return true;
}
if( sActionString == "STOP" )
{
pEngine->sequencer_stop();
pEngine->setPatternPos( 0 );
pEngine->setTimelineBpm();
return true;
}
if( sActionString == "MUTE" ){
//mutes the master, not a single strip
pEngine->getSong()->__is_muted = true;
return true;
}
if( sActionString == "UNMUTE" ){
pEngine->getSong()->__is_muted = false;
return true;
}
if( sActionString == "MUTE_TOGGLE" ){
pEngine->getSong()->__is_muted = !Hydrogen::get_instance()->getSong()->__is_muted;
return true;
}
if( sActionString == "BEATCOUNTER" ){
pEngine->handleBeatCounter();
return true;
}
if( sActionString == "TAP_TEMPO" ){
pEngine->onTapTempoAccelEvent();
return true;
}
if( sActionString == "SELECT_NEXT_PATTERN" ){
bool ok;
int row = pAction->getParameter1().toInt(&ok,10);
if( row> pEngine->getSong()->get_pattern_list()->size() -1 )
return false;
if(Preferences::get_instance()->patternModePlaysSelected())
pEngine->setSelectedPatternNumber( row );
else
pEngine->sequencer_setNextPattern( row, false, true );
return true;
}
//.........这里部分代码省略.........
示例6: on_m_pPlaylistTree_itemDoubleClicked
void PlaylistDialog::on_m_pPlaylistTree_itemDoubleClicked ()
{
QTreeWidgetItem* m_pPlaylistItem = m_pPlaylistTree->currentItem();
if ( m_pPlaylistItem == NULL ){
QMessageBox::information ( this, "Hydrogen", trUtf8 ( "No Song selected!" ) );
return;
}
QString selected;
selected = m_pPlaylistItem->text ( 0 );
QTreeWidget* m_pPlaylist = m_pPlaylistTree;
int index = m_pPlaylist->indexOfTopLevelItem ( m_pPlaylistItem );
Playlist::get_instance()->setSelectedSongNr( index );
Playlist::get_instance()->setActiveSongNumber( index );
HydrogenApp *pH2App = HydrogenApp::get_instance();
Hydrogen *pEngine = Hydrogen::get_instance();
if ( pEngine->getState() == STATE_PLAYING ){
pEngine->sequencer_stop();
}
m_pPlayBtn->setPressed(false);
Timeline* pTimeline = pEngine->getTimeline();
pTimeline->m_timelinetagvector.clear();
Song *pSong = Song::load ( selected );
if ( pSong == NULL ){
QMessageBox::information ( this, "Hydrogen", trUtf8 ( "Error loading song." ) );
return;
}
pH2App->setSong ( pSong );
pEngine->setSelectedPatternNumber ( 0 );
HydrogenApp::get_instance()->getSongEditorPanel()->updatePositionRuler();
pH2App->setStatusBarMessage( trUtf8( "Playlist: set song no. %1" ).arg( index +1 ), 5000 );
HydrogenApp::get_instance()->getInstrumentRack()->getSoundLibraryPanel()->update_background_color();
EventQueue::get_instance()->push_event( EVENT_METRONOME, 3 );
///exec script
///this is very very simple and only an experiment
#ifdef WIN32
//I know nothing about windows scripts -wolke-
return;
#else
QString execscript;
selected = m_pPlaylistItem->text ( 1 );
bool execcheckbox = m_pPlaylistItem->checkState ( 2 );
if( execcheckbox == false){
//QMessageBox::information ( this, "Hydrogen", trUtf8 ( "No Script selected!" ));
return;
}
if( execscript == "Script not used"){
//QMessageBox::information ( this, "Hydrogen", trUtf8 ( "Script not in use!" ));
return;
}
char *file;
file = new char[ selected.length() + 1 ];
strcpy( file , selected.toAscii() );
int ret = std::system( file );
delete [] file;
return;
#endif
}