// -------------------------------------------------------------------------------- // void guMediaRecordCtrl::SetTrackName( const wxString &artistname, const wxString &trackname ) { bool NeedSplit = false; // If its the first file Set it so the tags are saved if( m_PrevFileName.IsEmpty() ) { m_PrevFileName = m_FileName; m_PrevTrack = m_TrackInfo; } if( m_TrackInfo.m_ArtistName != artistname ) { m_TrackInfo.m_ArtistName = artistname; NeedSplit = true; } if( m_TrackInfo.m_SongName != trackname ) { m_TrackInfo.m_SongName = trackname; NeedSplit = true; } if( NeedSplit ) { SplitTrack(); } }
// -------------------------------------------------------------------------------- // void guMediaRecordCtrl::SetStation( const wxString &station ) { guLogMessage( wxT( "guMediaRecordCtrl::SetStation" ) ); if( m_TrackInfo.m_AlbumName != station ) { m_TrackInfo.m_AlbumName = station; SplitTrack(); } }
void generateRaceLine(tTrack *pTrack, const double lSideDistExt, const double lSideDistInt) { SideDistExt = lSideDistExt; SideDistInt = lSideDistInt; SplitTrack(pTrack); for (int Step = 128; (Step /= 2) > 0;) { for (int i = 100 * int(sqrt((double)Step)); --i >= 0;) { Smooth(Step); } Interpolate(Step); } }
static STATUS_T CmdSplitTrack( wAction_t action, coOrd pos ) { track_p trk0, trk1; EPINX_T ep0; int oldTrackCount; int inx, mode, quad; ANGLE_T angle; switch (action) { case C_START: InfoMessage( _("Select track to split") ); case C_DOWN: case C_MOVE: return C_CONTINUE; break; case C_UP: onTrackInSplit = TRUE; trk0 = OnTrack( &pos, TRUE, TRUE ); if ( trk0 != NULL) { if (!CheckTrackLayer( trk0 ) ) { onTrackInSplit = FALSE; return C_TERMINATE; } ep0 = PickEndPoint( pos, trk0 ); onTrackInSplit = FALSE; if (ep0 < 0) { return C_CONTINUE; } UndoStart( _("Split Track"), "SplitTrack( T%d[%d] )", GetTrkIndex(trk0), ep0 ); oldTrackCount = trackCount; SplitTrack( trk0, pos, ep0, &trk1, FALSE ); UndoEnd(); return C_TERMINATE; } onTrackInSplit = FALSE; return C_TERMINATE; break; case C_CMDMENU: splitTrkTrk[0] = OnTrack( &pos, TRUE, TRUE ); if ( splitTrkTrk[0] == NULL ) return C_CONTINUE; if ( splitPopupM[0] == NULL ) { splitPopupM[0] = MenuRegister( "End Point Mode R-L" ); splitPopupMI[0][0] = wMenuToggleCreate( splitPopupM[0], "", _("None"), 0, TRUE, ChangeSplitEPMode, (void*)0 ); splitPopupMI[0][1] = wMenuToggleCreate( splitPopupM[0], "", _("Left"), 0, FALSE, ChangeSplitEPMode, (void*)1 ); splitPopupMI[0][2] = wMenuToggleCreate( splitPopupM[0], "", _("Right"), 0, FALSE, ChangeSplitEPMode, (void*)2 ); splitPopupMI[0][3] = wMenuToggleCreate( splitPopupM[0], "", _("Both"), 0, FALSE, ChangeSplitEPMode, (void*)3 ); splitPopupM[1] = MenuRegister( "End Point Mode T-B" ); splitPopupMI[1][0] = wMenuToggleCreate( splitPopupM[1], "", _("None"), 0, TRUE, ChangeSplitEPMode, (void*)0 ); splitPopupMI[1][1] = wMenuToggleCreate( splitPopupM[1], "", _("Top"), 0, FALSE, ChangeSplitEPMode, (void*)1 ); splitPopupMI[1][2] = wMenuToggleCreate( splitPopupM[1], "", _("Bottom"), 0, FALSE, ChangeSplitEPMode, (void*)2 ); splitPopupMI[1][3] = wMenuToggleCreate( splitPopupM[1], "", _("Both"), 0, FALSE, ChangeSplitEPMode, (void*)3 ); } splitTrkEP[0] = PickEndPoint( pos, splitTrkTrk[0] ); angle = NormalizeAngle(GetTrkEndAngle( splitTrkTrk[0], splitTrkEP[0] )); if ( angle <= 45.0 ) quad = 0; else if ( angle <= 135.0 ) quad = 1; else if ( angle <= 225.0 ) quad = 2; else if ( angle <= 315.0 ) quad = 3; else quad = 0; splitTrkFlip = (quad<2); if ( (splitTrkTrk[1] = GetTrkEndTrk( splitTrkTrk[0], splitTrkEP[0] ) ) == NULL ) { ErrorMessage( MSG_BAD_BLOCKGAP ); return C_CONTINUE; } splitTrkEP[1] = GetEndPtConnectedToMe( splitTrkTrk[1], splitTrkTrk[0] ); mode = 0; if ( GetTrkEndOption( splitTrkTrk[1-splitTrkFlip], splitTrkEP[1-splitTrkFlip] ) & EPOPT_GAPPED ) mode |= 2; if ( GetTrkEndOption( splitTrkTrk[splitTrkFlip], splitTrkEP[splitTrkFlip] ) & EPOPT_GAPPED ) mode |= 1; for ( inx=0; inx<4; inx++ ) wMenuToggleSet( splitPopupMI[quad&1][inx], mode == inx ); wMenuPopupShow( splitPopupM[quad&1] ); break; } return C_CONTINUE; }
// -------------------------------------------------------------------------------- // void guMediaRecordCtrl::SetTrack( const guTrack &track ) { guLogMessage( wxT( "guMediaRecordCtrl::SetTrack" ) ); m_TrackInfo = track; SplitTrack(); }