Skip to content
This repository was archived by the owner on Sep 3, 2025. It is now read-only.

Commit be933b8

Browse files
committed
Updated to V2.8.1
1 parent a243b1f commit be933b8

File tree

10 files changed

+91
-36
lines changed

10 files changed

+91
-36
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ For more information about the d&b Soundscape system, go to www.dbaudio.com and
5959

6060
* On MacOS systems, simply double-clicking the **pkg** file will install the Plug-in into the correct location. The default installation paths are as follows:
6161
* **VST3:** /Library/Audio/Plug-Ins/VST3
62-
* **AU:** /Library/Audio/Plug-Ins/Component
62+
* **AU:** /Library/Audio/Plug-Ins/Components
6363
* **AAX:** /Library/Application Support/Avid/Audio/Plug-Ins
6464

6565
* On Avid VENUE S6L consoles, please install the Plug-in as follows:

RELEASE_NOTES.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,17 @@
33
Copyright (C) 2017-2020, d&b audiotechnik GmbH & Co. KG
44

55

6+
## V2.8.1
7+
8+
### Features
9+
* When opening the multi-source surface, the selected mapping is now automatically set to the active Plug-In's mapping.
10+
11+
### Bugfixes
12+
* The user's current IP address is no longer overwritten when loading showfiles or snapshots (Avid VENUE S6L) or recalling presets (DAW).
13+
* Avid VENUE S6L: The user's preferred Plug-In window size no longer gets reset when switching channels.
14+
15+
---
16+
617
## V2.8.0
718

819
### Features

SoundscapePlugin/SoundscapePlugin.jucer

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22

3-
<JUCERPROJECT id="MFvkL5" name="SoundscapePlugin" projectType="audioplug" version="2.8.0"
3+
<JUCERPROJECT id="MFvkL5" name="SoundscapePlugin" projectType="audioplug" version="2.8.1"
44
bundleIdentifier="com.dbaudio.SoundscapePlugin" pluginName="d&amp;b Soundscape"
55
pluginDesc="Soundscape Plug-in for d&amp;b DS100 control" pluginManufacturer="d&amp;b audiotechnik GmbH &amp; Co. KG"
66
pluginManufacturerCode="dbAu" pluginCode="sVst" pluginChannelConfigs="{2, 2}, {1, 1}"

SoundscapePlugin/Source/Controller.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ CController::~CController()
137137
*/
138138
CController* CController::GetInstance()
139139
{
140-
if (m_singleton == 0)
140+
if (m_singleton == nullptr)
141141
{
142142
m_singleton = new CController();
143143
}
@@ -578,7 +578,7 @@ void CController::timerCallback()
578578
((m_heartBeatsTx * m_oscMsgRate) > KEEPALIVE_INTERVAL));
579579

580580
int i;
581-
CPlugin* pro = 0;
581+
CPlugin* pro = nullptr;
582582
ComsMode mode;
583583
String messageString;
584584

SoundscapePlugin/Source/Overview.cpp

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ static constexpr int GUI_UPDATE_RATE_SLOW = 120;
6363
/**
6464
* The one and only instance of COverviewManager.
6565
*/
66-
COverviewManager* COverviewManager::m_singleton = 0;
66+
COverviewManager* COverviewManager::m_singleton = nullptr;
6767

6868
/**
6969
* Class constructor.
@@ -74,7 +74,7 @@ COverviewManager::COverviewManager()
7474
m_singleton = this;
7575

7676
//Default overview window properties.
77-
m_overview = 0;
77+
m_overview = nullptr;
7878
m_overviewBounds = Rectangle<int>(50, 50, 500, 500);
7979
}
8080

@@ -83,9 +83,9 @@ COverviewManager::COverviewManager()
8383
*/
8484
COverviewManager::~COverviewManager()
8585
{
86-
jassert(m_overview == 0);
86+
jassert(m_overview == nullptr);
8787

88-
m_singleton = 0;
88+
m_singleton = nullptr;
8989
}
9090

9191
/**
@@ -95,7 +95,7 @@ COverviewManager::~COverviewManager()
9595
*/
9696
COverviewManager* COverviewManager::GetInstance()
9797
{
98-
if (m_singleton == 0)
98+
if (m_singleton == nullptr)
9999
{
100100
m_singleton = new COverviewManager();
101101
}
@@ -108,7 +108,7 @@ COverviewManager* COverviewManager::GetInstance()
108108
void COverviewManager::OpenOverview()
109109
{
110110
// Overview window is not currently open -> create it.
111-
if (m_overview == 0)
111+
if (m_overview == nullptr)
112112
{
113113
m_overview = new COverview();
114114
m_overview->setBounds(m_overviewBounds);
@@ -131,13 +131,13 @@ void COverviewManager::OpenOverview()
131131
*/
132132
void COverviewManager::CloseOverview(bool destroy)
133133
{
134-
if (m_overview != 0)
134+
if (m_overview != nullptr)
135135
{
136136
SaveLastOverviewBounds(GetOverviewBounds());
137137

138138
// Close the overview window.
139139
delete m_overview;
140-
m_overview = 0;
140+
m_overview = nullptr;
141141
}
142142

143143
// Closed overview, so manager no longer needed.
@@ -870,21 +870,25 @@ void COverviewMultiSurface::resized()
870870
*/
871871
void COverviewMultiSurface::UpdateGui(bool init)
872872
{
873+
// Will be set to true if any changes relevant to the multi-slider are found.
874+
bool update = init;
875+
873876
// Update the selected mapping area.
874877
int selectedMapping = 0;
875878
COverviewManager* ovrMgr = COverviewManager::GetInstance();
876879
if (ovrMgr)
877880
{
878881
selectedMapping = ovrMgr->GetSelectedMapping();
879-
m_areaSelector->setSelectedId(selectedMapping);
882+
if (selectedMapping != m_areaSelector->getSelectedId())
883+
{
884+
m_areaSelector->setSelectedId(selectedMapping, dontSendNotification);
885+
update = true;
886+
}
880887
}
881888

882889
CController* ctrl = CController::GetInstance();
883890
if (ctrl && m_multiSlider)
884891
{
885-
// Will be set to true if any changes relevant to the multi-slider are found.
886-
bool update = init;
887-
888892
if (ctrl->PopParameterChanged(DCS_Overview, DCT_NumPlugins))
889893
update = true;
890894

@@ -1269,7 +1273,7 @@ Component* CTableModelComponent::refreshComponentForCell(int rowNumber, int colu
12691273
{
12701274
ignoreUnused(isRowSelected);
12711275

1272-
Component* ret = 0;
1276+
Component* ret = nullptr;
12731277

12741278
switch (columnId)
12751279
{
@@ -1279,7 +1283,7 @@ Component* CTableModelComponent::refreshComponentForCell(int rowNumber, int colu
12791283

12801284
// If an existing component is being passed-in for updating, we'll re-use it, but
12811285
// if not, we'll have to create one.
1282-
if (label == 0)
1286+
if (label == nullptr)
12831287
label = new CEditableLabelContainer(*this);
12841288

12851289
// Ensure that the component knows which row number it is located at.
@@ -1296,7 +1300,7 @@ Component* CTableModelComponent::refreshComponentForCell(int rowNumber, int colu
12961300

12971301
// If an existing component is being passed-in for updating, we'll re-use it, but
12981302
// if not, we'll have to create one.
1299-
if (comboBox == 0)
1303+
if (comboBox == nullptr)
13001304
comboBox = new CComboBoxContainer(*this);
13011305

13021306
// Ensure that the comboBox knows which row number it is located at.
@@ -1312,7 +1316,7 @@ Component* CTableModelComponent::refreshComponentForCell(int rowNumber, int colu
13121316

13131317
// If an existing component is being passed-in for updating, we'll re-use it, but
13141318
// if not, we'll have to create one.
1315-
if (textEdit == 0)
1319+
if (textEdit == nullptr)
13161320
textEdit = new CTextEditorContainer(*this);
13171321

13181322
// Ensure that the component knows which row number it is located at.
@@ -1329,7 +1333,7 @@ Component* CTableModelComponent::refreshComponentForCell(int rowNumber, int colu
13291333

13301334
// If an existing component is being passed-in for updating, we'll re-use it, but
13311335
// if not, we'll have to create one.
1332-
if (radioButton == 0)
1336+
if (radioButton == nullptr)
13331337
radioButton = new CRadioButtonContainer(*this);
13341338

13351339
// Ensure that the component knows which row number it is located at.
@@ -1341,7 +1345,7 @@ Component* CTableModelComponent::refreshComponentForCell(int rowNumber, int colu
13411345
break;
13421346

13431347
default:
1344-
jassert(existingComponentToUpdate == 0);
1348+
jassert(existingComponentToUpdate == nullptr);
13451349
break;
13461350
}
13471351

SoundscapePlugin/Source/Overview.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ class COverviewManager
100100
/**
101101
* Remember the last active tab.
102102
*/
103-
int m_selectedTab = 0;// CTabbedComponent::OTI_Table;
103+
int m_selectedTab = 0;
104104

105105
/**
106106
* Remember the last selected coordinate mapping for the multi-slider

SoundscapePlugin/Source/PluginEditor.cpp

Lines changed: 37 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,15 @@ static constexpr int GUI_UPDATE_RATE_SLOW = 120;
5959
*/
6060
static constexpr int GUI_UPDATE_DELAY_TICKS = 15;
6161

62+
/*
63+
* Default Plug-In window size.
64+
*/
65+
static constexpr Point<int> GUI_DEFAULT_PLUGIN_WINDOW_SIZE(488, 380);
66+
67+
/*
68+
* Initialize user's Plug-In window size with default values.
69+
*/
70+
Point<int> CPluginEditor::m_pluginWindowSize = GUI_DEFAULT_PLUGIN_WINDOW_SIZE;
6271

6372
/*
6473
===============================================================================
@@ -229,7 +238,7 @@ CPluginEditor::CPluginEditor(CPlugin& parent)
229238
addAndMakeVisible(m_overviewButton.get());
230239

231240
// No overlay (Overview or About) to start with.
232-
m_overlay = 0;
241+
m_overlay = nullptr;
233242

234243
// Label for Plugin' display name.
235244
m_displayNameLabel = std::make_unique<CLabel>("DisplayName");
@@ -264,10 +273,19 @@ CPluginEditor::CPluginEditor(CPlugin& parent)
264273
addAndMakeVisible(m_overviewMultiSliderButton.get());
265274

266275
// Larger GUI for consoles.
267-
setResizeLimits(684, 544, 1920, 1080);
276+
if (m_pluginWindowSize == GUI_DEFAULT_PLUGIN_WINDOW_SIZE)
277+
{
278+
m_pluginWindowSize = Point<int>(684, 544);
279+
}
268280
}
269-
else
270-
setResizeLimits(488, 380, 1920, 1080);
281+
282+
// Backup user's window size, since setResizeLimits() calls resized(), which overwrites it.
283+
Point<int> tmpSize(m_pluginWindowSize);
284+
setResizeLimits(488, 380, 1920, 1080);
285+
m_pluginWindowSize = tmpSize;
286+
287+
// Resize the new plugin's window to the same as the last.
288+
setSize(m_pluginWindowSize.getX(), m_pluginWindowSize.getY());
271289

272290
// Allow resizing of plugin window.
273291
setResizable(true, true);
@@ -303,7 +321,7 @@ CAudioParameterFloat* CPluginEditor::GetParameterForSlider(CSlider* slider)
303321

304322
// Should not make it this far.
305323
jassertfalse;
306-
return 0;
324+
return nullptr;
307325
}
308326

309327
/**
@@ -433,7 +451,7 @@ void CPluginEditor::buttonClicked(Button *button)
433451
if (pro)
434452
{
435453
// Rx / Tx Buttons
436-
if (((button == m_oscModeSend.get()) || (button == m_oscModeReceive.get())) && (m_oscModeSend != 0) && (m_oscModeReceive != 0))
454+
if (((button == m_oscModeSend.get()) || (button == m_oscModeReceive.get())) && (m_oscModeSend != nullptr) && (m_oscModeReceive != nullptr))
437455
{
438456
ComsMode oldMode = pro->GetComsMode();
439457
ComsMode newFlag = (button == m_oscModeSend.get()) ? CM_Tx : CM_Rx;
@@ -470,6 +488,11 @@ void CPluginEditor::buttonClicked(Button *button)
470488
{
471489
// Show / hide the Overview Multi-slider overlay.
472490
ToggleOverlay(AOverlay::OT_MultiSlide);
491+
492+
// Set the selected coordinate mapping on the Overview slider to this Plug-in's setting.
493+
COverviewManager* ovrMgr = COverviewManager::GetInstance();
494+
if (ovrMgr)
495+
ovrMgr->SetSelectedMapping(pro->GetMappingId());
473496
}
474497
}
475498

@@ -509,12 +532,12 @@ void CPluginEditor::ToggleOverlay(AOverlay::OverlayType type)
509532
AOverlay::OverlayType previousType = AOverlay::OT_Unknown;
510533

511534
// Overview already exists, remove and delete it.
512-
if (m_overlay != 0)
535+
if (m_overlay != nullptr)
513536
{
514537
previousType = m_overlay->GetOverlayType();
515538

516539
// Toggle off the existing overlay's button, if is still turned on.
517-
CButton* tmpButton = 0;
540+
CButton* tmpButton = nullptr;
518541
switch (previousType)
519542
{
520543
case AOverlay::OT_Overview:
@@ -530,12 +553,12 @@ void CPluginEditor::ToggleOverlay(AOverlay::OverlayType type)
530553
jassertfalse;
531554
break;
532555
}
533-
if ((tmpButton != 0) && (tmpButton->getToggleState() == true))
556+
if ((tmpButton != nullptr) && (tmpButton->getToggleState() == true))
534557
tmpButton->setToggleState(false, dontSendNotification);
535558

536559
// Remove and delete old overlay.
537560
removeChildComponent(m_overlay.get());
538-
m_overlay.reset(0); // Set scoped pointer to 0
561+
m_overlay.reset(nullptr); // Set scoped pointer to 0
539562
}
540563

541564
// Create the new specified overlay.
@@ -718,6 +741,9 @@ void CPluginEditor::resized()
718741
#ifdef JUCE_DEBUG
719742
m_debugTextEdit->setBounds(125 + 20, vStartPos + 65, 160 + xOffset, 160 + yOffset);
720743
#endif
744+
745+
// Remember the user's preferred Plug-In window size.
746+
m_pluginWindowSize.setXY(w, h);
721747
}
722748

723749
/**
@@ -855,7 +881,7 @@ void CPluginEditor::UpdateGui(bool init)
855881

856882
// Whenever the Multi-slider overlay is active, switch to fast refresh for smoother movements
857883
// even if nothing changes in this plugin (there may be position changes in other plugins).
858-
if ((m_overlay != 0) &&
884+
if ((m_overlay != nullptr) &&
859885
(m_overlay->GetOverlayType() == AOverlay::OT_MultiSlide))
860886
somethingChanged = true;
861887

SoundscapePlugin/Source/PluginEditor.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,11 @@ class CPluginEditor :
233233
*/
234234
int m_ticksSinceLastChange = 0;
235235

236+
/**
237+
* Keep track of the user's preferred Plug-In window size, and use it when opening a fresh window.
238+
*/
239+
static Point<int> m_pluginWindowSize;
240+
236241
#ifdef JUCE_DEBUG
237242
/**
238243
* Special textfield used for displaying debugging messages.

SoundscapePlugin/Source/PluginProcessor.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,12 @@ void CPlugin::OnOverviewButtonClicked()
340340
{
341341
COverviewManager* ovrMgr = COverviewManager::GetInstance();
342342
if (ovrMgr)
343+
{
343344
ovrMgr->OpenOverview();
345+
346+
// Set the selected coordinate mapping on the Overview slider to this Plug-in's setting.
347+
ovrMgr->SetSelectedMapping(GetMappingId());
348+
}
344349
}
345350

346351
/**
@@ -642,7 +647,11 @@ void CPlugin::InitializeSettings(int sourceId, int mappingId, String ipAddress,
642647
SetMappingId(DCS_Host, mappingId);
643648
SetComsMode(DCS_Host, newMode);
644649

645-
ctrl->InitGlobalSettings(DCS_Host, ipAddress, oscMsgRate);
650+
// Only overwite the current IP settings if they haven't been changed from the defaults.
651+
if (GetIpAddress() == ctrl->GetDefaultIpAddress())
652+
{
653+
ctrl->InitGlobalSettings(DCS_Host, ipAddress, oscMsgRate);
654+
}
646655
}
647656
}
648657

SoundscapePlugin/Source/SurfaceSlider.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ class CSurfaceSlider : public Component
6262
/**
6363
* AudioProcessor object to act as parent to this component.
6464
*/
65-
AudioProcessor* m_parent = 0;
65+
AudioProcessor* m_parent = nullptr;
6666

6767
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CSurfaceSlider)
6868
};

0 commit comments

Comments
 (0)