Skip to content

Commit a825eaf

Browse files
authored
Merge 58171af into 9daba63
2 parents 9daba63 + 58171af commit a825eaf

File tree

4 files changed

+39
-15
lines changed

4 files changed

+39
-15
lines changed

Snapshots/SnapshotClass.cpp

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

252254
TrackSnapshot::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
}

Snapshots/SnapshotClass.h

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ class TrackSnapshot
7474
int m_iFXEn;
7575
int m_iVis;
7676
int m_iSel;
77+
int m_iRecArm;
7778
bool m_bPhase;
7879
// track playback offset, REAPER v6.0+
7980
int m_iPlayOffsetFlag;
@@ -113,13 +114,14 @@ class TrackSnapshot
113114
#define FXCHAIN_MASK 0x200
114115
#define PHASE_MASK 0x400
115116
#define PLAY_OFFSET_MASK 0x800 // track playback offset, REAPER v6.0+
116-
#define ALL_MASK 0xFEF // large enough for forward compat, leave out FXATM
117-
#define MIX_MASK (VOL_MASK | PAN_MASK | MUTE_MASK | SOLO_MASK | FXCHAIN_MASK | SENDS_MASK | PHASE_MASK | PLAY_OFFSET_MASK)
117+
#define RECARM_MASK 0x1000
118+
#define ALL_MASK 0x1FEF // large enough for forward compat, leave out FXATM
119+
#define MIX_MASK (VOL_MASK | PAN_MASK | MUTE_MASK | SOLO_MASK | FXCHAIN_MASK | SENDS_MASK | PHASE_MASK | PLAY_OFFSET_MASK | RECARM_MASK)
118120

119121
// Map controls to mask elements
120-
const int cSSMasks[] = { VOL_MASK, PAN_MASK, MUTE_MASK, SOLO_MASK, SENDS_MASK, VIS_MASK, SEL_MASK, FXCHAIN_MASK, PHASE_MASK, PLAY_OFFSET_MASK };
121-
const int cSSCtrls[] = { IDC_VOL, IDC_PAN, IDC_MUTE, IDC_SOLO, IDC_SENDS, IDC_VISIBILITY, IDC_SELECTION, IDC_FXCHAIN, IDC_PHASE, IDC_PLAY_OFFSET };
122-
#define MASK_CTRLS 10
122+
const int cSSMasks[] = { VOL_MASK, PAN_MASK, MUTE_MASK, SOLO_MASK, RECARM_MASK, SENDS_MASK, VIS_MASK, SEL_MASK, FXCHAIN_MASK, PHASE_MASK, PLAY_OFFSET_MASK };
123+
const int cSSCtrls[] = { IDC_VOL, IDC_PAN, IDC_MUTE, IDC_SOLO, IDC_RECARM, IDC_SENDS, IDC_VISIBILITY, IDC_SELECTION, IDC_FXCHAIN, IDC_PHASE, IDC_PLAY_OFFSET };
124+
#define MASK_CTRLS 11
123125

124126
class Snapshot
125127
{

resource.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,7 @@
240240
#define IDC_SNAME 1139
241241
#define IDC_TRACK 1140
242242
#define IDC_TEXT 1141
243+
#define IDC_RECARM 1142
243244
#define IDC_COLOR 1147
244245
#define IDC_PADRELFO_SYNCFREQUENCY 1148
245246
#define IDC_PADRELFO_FREQUENCY 1149

sws_extension.rc

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,13 +114,13 @@ BEGIN
114114
LTEXT "Desc",IDC_DESC,7,26,168,143
115115
END
116116

117-
IDD_SNAPS DIALOGEX 0, 0, 229, 277
117+
IDD_SNAPS DIALOGEX 0, 0, 229, 289
118118
STYLE DS_SETFONT | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
119119
CAPTION "SWS Snapshots"
120120
FONT 8, "MS Shell Dlg", 400, 0, 0x1
121121
BEGIN
122122
#define X_FILTERCHB_2ND_ROW 176
123-
#define Y_OFFS_CHB 12
123+
#define Y_OFFS_CHB 24
124124
#define Y_OFFS_PUSHBTN 17
125125
CONTROL "",IDC_LIST,"SysListView32",LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,5,3,125,270
126126
PUSHBUTTON "&New",IDC_SAVE,136,3,27,13
@@ -143,6 +143,7 @@ BEGIN
143143
CONTROL "Selection",IDC_SELECTION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,X_FILTERCHB_2ND_ROW,103,45,10
144144
CONTROL "Phase", IDC_PHASE,"Button", BS_AUTOCHECKBOX | WS_TABSTOP, 140, 115, 32, 10
145145
CONTROL "Offset",IDC_PLAY_OFFSET,"Button", BS_AUTOCHECKBOX | WS_TABSTOP, X_FILTERCHB_2ND_ROW, 115, 45, 10
146+
CONTROL "Record Arm",IDC_RECARM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,140,127,55,10
146147
CONTROL "Filter on Recall",IDC_APPLYRECALL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,140,122+Y_OFFS_CHB,63,10
147148
CONTROL "Save Sel Tracks Only",IDC_SELECTEDONLY_SAVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,140,135+Y_OFFS_CHB,81,10
148149
CONTROL "Recall Sel Tracks Only",IDC_SELECTEDONLY_RECALL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,140,148+Y_OFFS_CHB,81,10
@@ -231,7 +232,7 @@ CAPTION "SWS Snapshot Paste"
231232
FONT 8, "MS Shell Dlg", 400, 0, 0x1
232233
BEGIN
233234
#define X_FILTERCHB_2ND_ROW 367
234-
#define Y_OFFS_CHB 12
235+
#define Y_OFFS_CHB 24
235236
CONTROL "",IDC_LIST,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,5,3,311,150
236237
DEFPUSHBUTTON "&OK",IDOK,362,156,50,14
237238
PUSHBUTTON "&Cancel",IDCANCEL,310,156,50,14
@@ -247,6 +248,7 @@ BEGIN
247248
CONTROL "Selection",IDC_SELECTION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, X_FILTERCHB_2ND_ROW,51,45,10
248249
CONTROL "Phase",IDC_PHASE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,330,63,32,10
249250
CONTROL "Offset",IDC_PLAY_OFFSET,"Button",BS_AUTOCHECKBOX | WS_TABSTOP, X_FILTERCHB_2ND_ROW, 63, 45, 10
251+
CONTROL "Record Arm",IDC_RECARM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,330,75,55,10
250252
GROUPBOX "Filter",IDC_FILTERGROUP,322,3,90,66+Y_OFFS_CHB
251253
CONTROL "Save changes",IDC_SAVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,324,96,62,10
252254
EDITTEXT IDC_NAME,350,96+Y_OFFS_CHB,60,14,ES_AUTOHSCROLL

0 commit comments

Comments
 (0)