当前位置: 首页>>代码示例>>C++>>正文


C++ TrackList::push_back方法代码示例

本文整理汇总了C++中TrackList::push_back方法的典型用法代码示例。如果您正苦于以下问题:C++ TrackList::push_back方法的具体用法?C++ TrackList::push_back怎么用?C++ TrackList::push_back使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在TrackList的用法示例。


在下文中一共展示了TrackList::push_back方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: siftPositionTracksToDrawers

void siftPositionTracksToDrawers(const TrackList<SiftPosition>& feature_tracks,
                                 TrackList<DrawerPointer>& drawer_tracks) {
  drawer_tracks.clear();
  TrackList<SiftPosition>::const_iterator feature_track;
  for (feature_track = feature_tracks.begin();
       feature_track != feature_tracks.end();
       ++feature_track) {
    Track<DrawerPointer> drawer_track;
    siftPositionTrackToDrawers(*feature_track, drawer_track);

    drawer_tracks.push_back(Track<DrawerPointer>());
    drawer_tracks.back().swap(drawer_track);
  }
}
开发者ID:jvlmdr,项目名称:non-rigid-tracking,代码行数:14,代码来源:visualize_tracks.cpp

示例2: translationTracksToDrawers

void translationTracksToDrawers(const TrackList<cv::Point2d>& feature_tracks,
                                TrackList<DrawerPointer>& drawer_tracks,
                                int radius) {
  drawer_tracks.clear();
  TrackList<cv::Point2d>::const_iterator feature_track;
  for (feature_track = feature_tracks.begin();
       feature_track != feature_tracks.end();
       ++feature_track) {
    Track<DrawerPointer> drawer_track;
    translationTrackToDrawers(*feature_track, drawer_track, radius);

    drawer_tracks.push_back(Track<DrawerPointer>());
    drawer_tracks.back().swap(drawer_track);
  }
}
开发者ID:jvlmdr,项目名称:non-rigid-tracking,代码行数:15,代码来源:visualize_tracks.cpp

示例3: processNextBuffer

void Song::processNextBuffer()
{
	// if not playing, nothing to do
	if( m_playing == false )
	{
		return;
	}

	TrackList trackList;
	int tcoNum = -1; // track content object number

	// determine the list of tracks to play and the track content object
	// (TCO) number
	switch( m_playMode )
	{
		case Mode_PlaySong:
			trackList = tracks();
			// at song-start we have to reset the LFOs
			if( m_playPos[Mode_PlaySong] == 0 )
			{
				EnvelopeAndLfoParameters::instances()->reset();
			}
			break;

		case Mode_PlayBB:
			if( Engine::getBBTrackContainer()->numOfBBs() > 0 )
			{
				tcoNum = Engine::getBBTrackContainer()->
								currentBB();
				trackList.push_back( BBTrack::findBBTrack(
								tcoNum ) );
			}
			break;

		case Mode_PlayPattern:
			if( m_patternToPlay != NULL )
			{
				tcoNum = m_patternToPlay->getTrack()->
						getTCONum( m_patternToPlay );
				trackList.push_back(
						m_patternToPlay->getTrack() );
			}
			break;

		default:
			return;

	}

	// if we have no tracks to play, nothing to do
	if( trackList.empty() == true )
	{
		return;
	}

	// check for looping-mode and act if necessary
	TimeLineWidget * tl = m_playPos[m_playMode].m_timeLine;
	bool checkLoop =
		tl != NULL && m_exporting == false && tl->loopPointsEnabled();

	if( checkLoop )
	{
		// if looping-mode is enabled and we are outside of the looping
		// range, go to the beginning of the range
		if( m_playPos[m_playMode] < tl->loopBegin() ||
					m_playPos[m_playMode] >= tl->loopEnd() )
		{
			setToTime(tl->loopBegin());
			m_playPos[m_playMode].setTicks(
						tl->loopBegin().getTicks() );
			emit updateSampleTracks();
		}
	}

	f_cnt_t framesPlayed = 0;
	const float framesPerTick = Engine::framesPerTick();

	while( framesPlayed < Engine::mixer()->framesPerPeriod() )
	{
		m_vstSyncController.update();

		float currentFrame = m_playPos[m_playMode].currentFrame();
		// did we play a tick?
		if( currentFrame >= framesPerTick )
		{
			int ticks = m_playPos[m_playMode].getTicks() +
				( int )( currentFrame / framesPerTick );

			m_vstSyncController.setAbsolutePosition( ticks );

			// did we play a whole tact?
			if( ticks >= MidiTime::ticksPerTact() )
			{
				// per default we just continue playing even if
				// there's no more stuff to play
				// (song-play-mode)
				int maxTact = m_playPos[m_playMode].getTact()
									+ 2;

				// then decide whether to go over to next tact
//.........这里部分代码省略.........
开发者ID:RebeccaDeField,项目名称:lmms,代码行数:101,代码来源:Song.cpp


注:本文中的TrackList::push_back方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。