@@ -178,6 +178,7 @@ TrackSnapshot::TrackSnapshot(MediaTrack* tr, int mask)
178178 m_iFXEn = *((int *)GetSetMediaTrackInfo (tr, " I_FXEN" , NULL ));
179179 m_iVis = GetTrackVis (tr);
180180 m_iSel = *((int *)GetSetMediaTrackInfo (tr, " I_SELECTED" , NULL ));
181+ m_iRecArm = *((int *)GetSetMediaTrackInfo (tr, " I_RECARM" , NULL ));
181182 m_iPanMode = *((int *)GetSetMediaTrackInfo (tr, " I_PANMODE" , NULL ));
182183 m_dPanWidth = *((double *)GetSetMediaTrackInfo (tr, " D_WIDTH" , NULL ));
183184 m_dPanL = *((double *)GetSetMediaTrackInfo (tr, " D_DUALPANL" , NULL ));
@@ -247,6 +248,7 @@ TrackSnapshot::TrackSnapshot(TrackSnapshot& ts):m_sends(ts.m_sends)
247248 m_bPhase = ts.m_bPhase ;
248249 m_iPlayOffsetFlag = ts.m_iPlayOffsetFlag ;
249250 m_dPlayOffset = ts.m_dPlayOffset ;
251+ m_iRecArm = ts.m_iRecArm ;
250252}
251253
252254TrackSnapshot::TrackSnapshot (LineParser* lp)
@@ -268,6 +270,7 @@ TrackSnapshot::TrackSnapshot(LineParser* lp)
268270 m_bPhase = lp->gettoken_int (14 ) ? true : false ;
269271 m_iPlayOffsetFlag = lp->gettoken_int (15 );
270272 m_dPlayOffset = lp->gettoken_float (16 );
273+ m_iRecArm = lp->getnumtokens () < 18 ? 0 : lp->gettoken_int (17 );
271274
272275
273276 // Set the track name "early" for backward compat
@@ -329,10 +332,14 @@ bool TrackSnapshot::UpdateReaper(int mask, bool bSelOnly, int* fxErr, bool wantC
329332 GetSetMediaTrackInfo (tr, " I_SOLO" , &m_iSolo);
330333 if (mask & VIS_MASK)
331334 SetTrackVis (tr, m_iVis); // ignores master
332- if (mask & SEL_MASK)
333- GetSetMediaTrackInfo (tr, " I_SELECTED" , &m_iSel);
334- if (mask & FXATM_MASK) // DEPRECATED, keep for previously saved snapshots
335- {
335+ if (mask & SEL_MASK)
336+ GetSetMediaTrackInfo (tr, " I_SELECTED" , &m_iSel);
337+ if (mask & RECARM_MASK)
338+ {
339+ GetSetMediaTrackInfo (tr, " I_RECARM" , &m_iRecArm);
340+ }
341+ if (mask & FXATM_MASK) // DEPRECATED, keep for previously saved snapshots
342+ {
336343 GetSetMediaTrackInfo (tr, " I_FXEN" , &m_iFXEn);
337344 int numFX = TrackFX_GetCount (tr);
338345 if (numFX)
@@ -397,8 +404,8 @@ void TrackSnapshot::GetChunk(WDL_FastString* chunk)
397404{
398405 char guidStr[64 ];
399406 guidToString (&m_guid, guidStr);
400- chunk->AppendFormatted (SNM_MAX_CHUNK_LINE_LENGTH, " <TRACK %s %.14f %.14f %d %d %d %d %d %d %.14f %.14f %.14f %.14f %d %d %.14f\n " ,
401- guidStr, m_dVol, m_dPan, m_bMute ? 1 : 0 , m_iSolo, m_iFXEn, m_iVis ^ 2 , m_iSel, m_iPanMode, m_dPanWidth, m_dPanL, m_dPanR, m_dPanLaw, m_bPhase ? 1 : 0 , m_iPlayOffsetFlag, m_dPlayOffset);
407+ chunk->AppendFormatted (SNM_MAX_CHUNK_LINE_LENGTH, " <TRACK %s %.14f %.14f %d %d %d %d %d %d %.14f %.14f %.14f %.14f %d %d %.14f %d \n " ,
408+ guidStr, m_dVol, m_dPan, m_bMute ? 1 : 0 , m_iSolo, m_iFXEn, m_iVis ^ 2 , m_iSel, m_iPanMode, m_dPanWidth, m_dPanL, m_dPanR, m_dPanLaw, m_bPhase ? 1 : 0 , m_iPlayOffsetFlag, m_dPlayOffset, m_iRecArm );
402409 chunk->AppendFormatted (SNM_MAX_CHUNK_LINE_LENGTH, " NAME \" %s\" %d\n " , m_sName.Get (), m_iTrackNum);
403410
404411 m_sends.GetChunk (chunk);
@@ -529,6 +536,13 @@ void TrackSnapshot::GetDetails(WDL_FastString* details, int iMask)
529536 details->Append (m_iSolo ? __LOCALIZE (" on" ," sws_DLG_101" ) : __LOCALIZE (" off" ," sws_DLG_101" ));
530537 details->Append (" \r\n " );
531538 }
539+ if (iMask & RECARM_MASK)
540+ {
541+ details->Append (__LOCALIZE (" Record arm" ," sws_DLG_101" ));
542+ details->Append (" : " );
543+ details->Append (m_iRecArm ? __LOCALIZE (" on" ," sws_DLG_101" ) : __LOCALIZE (" off" ," sws_DLG_101" ));
544+ details->Append (" \r\n " );
545+ }
532546 if (iMask & SEL_MASK)
533547 {
534548 details->Append (__LOCALIZE (" Selected" ," sws_DLG_101" ));
@@ -994,6 +1008,10 @@ char* Snapshot::Tooltip(char* str, int maxLen)
9941008 n += snprintf (str + n, maxLen - n, " %s" , " , " );
9951009 n += snprintf (str + n, maxLen - n, " %s" , __LOCALIZE (" solo" ," sws_DLG_101" ));
9961010 }
1011+ if (m_iMask & RECARM_MASK && n < maxLen) {
1012+ n += snprintf (str + n, maxLen - n, " %s" , " , " );
1013+ n += snprintf (str + n, maxLen - n, " %s" , __LOCALIZE (" record arm" ," sws_DLG_101" ));
1014+ }
9971015 if (m_iMask & FXATM_MASK && n < maxLen) {
9981016 n += snprintf (str + n, maxLen - n, " %s" , " , " );
9991017 n += snprintf (str + n, maxLen - n, " %s" , __LOCALIZE (" fx (old style)" ," sws_DLG_101" ));
@@ -1044,8 +1062,9 @@ void Snapshot::SetName(const char* name)
10441062 case SEL_MASK: snprintf (newName, sizeof (newName), " %s %d" , __LOCALIZE (" Sel" ," sws_DLG_101" ), m_iSlot); break ;
10451063 case PHASE_MASK: snprintf (newName, sizeof (newName), " %s %d" , __LOCALIZE (" Phase" , " sws_DLG_101" ), m_iSlot); break ;
10461064 case PLAY_OFFSET_MASK: snprintf (newName, sizeof (newName), " %s %d" , __LOCALIZE (" Playback offset" , " sws_DLG_101" ), m_iSlot); break ;
1065+ case RECARM_MASK: snprintf (newName, sizeof (newName), " %s %d" , __LOCALIZE (" RecArm" , " sws_DLG_101" ), m_iSlot); break ;
10471066 default : snprintf (newName, sizeof (newName), " %s %d" , __LOCALIZE (" Mix" ," sws_DLG_101" ), m_iSlot); break ;
1048- }
1067+ }
10491068 m_cName = new char [strlen (newName)+1 ];
10501069 strcpy (m_cName, newName);
10511070 }
0 commit comments