CBlend*	CKinematicsAnimated::IBlend_Create	()
{
	UpdateTracks	();
	_DBG_SINGLE_USE_MARKER;
	CBlend *I=blend_pool.begin(), *E=blend_pool.end();
	for (; I!=E; I++)
		if (I->blend == CBlend::eFREE_SLOT) return I;
	FATAL("Too many blended motions requisted");
	return 0;
}
sbError sbiTunesAgentProcessor::UpdateTrack(std::string const & aID,
                                            std::string const & aPath)
{
  if (mTrackBatch.size() >= mBatchSize) {
    sbError const & error = UpdateTracks(mTrackBatch);
    SB_ENSURE_ERRORHANDLER(error);

    mLastSource = "";
    mTrackBatch.clear();
  }
  mTrackBatch.push_back(Track(Track::TYPE_ITUNES, aID, aPath));
  return sbNoError;
}
sbError
sbiTunesAgentProcessor::ProcessPendingTrackBatch()
{
  std::string source(mLastSource);
  mLastSource.clear();
  mLastMethod.clear();
  
  if (mTrackBatch.empty()) {
    return sbNoError;
  }

  if (mTrackBatch.front().type == Track::TYPE_ITUNES) {
    // updates
    sbError const & error = UpdateTracks(mTrackBatch);
    SB_ENSURE_ERRORHANDLER(error);
  } else {
    sbError const & error = AddTracks(source, mTrackBatch);
    SB_ENSURE_ERRORHANDLER(error);
  }

  mTrackBatch.clear();
  return sbNoError;
}
Exemple #4
0
static void SplitTitleArtist(GtkWidget *widget,gpointer data)
{
  GripInfo *ginfo;
  int track;
  int mode;

  ginfo=(GripInfo *)data;
  mode=(int)gtk_object_get_user_data(GTK_OBJECT(widget));

  for(track=0;track<ginfo->disc.num_tracks;track++) {
    if(mode==0)
      SeparateFields(ginfo->ddata.data_track[track].track_name,
		     ginfo->ddata.data_track[track].track_name,
		     ginfo->ddata.data_track[track].track_artist,
		     ginfo->title_split_chars);
    else 
      SeparateFields(ginfo->ddata.data_track[track].track_name,
		     ginfo->ddata.data_track[track].track_artist,
		     ginfo->ddata.data_track[track].track_name,
		     ginfo->title_split_chars);
  }

  UpdateTracks(ginfo);
}
void CKinematicsAnimated::OnCalculateBones		()
{
	UpdateTracks	()	;
}