Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ public class ApplicationDefaults {
public final Image abletonLogoImage = new Image(getClass().getResourceAsStream("/icons/ableton-white-16.png"));
public final Image reaperLogoImage = new Image(getClass().getResourceAsStream("/icons/reaper-white-16.png"));

public final Image studioOneLogoImage = new Image(getClass().getResourceAsStream("/icons/studioone-white-16.png"));

public final Image errorIconImage = new Image(
getClass().getResourceAsStream("/icons/error-red-16.png"));

Expand Down Expand Up @@ -169,7 +171,7 @@ public Image getDAWApplicationIcon(DawApplication application) {
return switch (application) {
case ABLETON -> abletonLogoImage;
case REAPER -> reaperLogoImage;
case STUDIO_ONE -> pluginComponentImage; // Using generic plugin icon as placeholder
case STUDIO_ONE -> studioOneLogoImage;
};
}

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.owlplug.project.taks.discovery;
package com.owlplug.plugin.tasks.discovery;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
Expand All @@ -11,8 +11,6 @@

import com.owlplug.plugin.model.Plugin;
import com.owlplug.plugin.model.Symlink;
import com.owlplug.plugin.tasks.discovery.DifferentialScanEntityCollector;
import com.owlplug.plugin.tasks.discovery.PluginScanTaskParameters;
import com.owlplug.plugin.tasks.discovery.fileformats.PluginFile;
import java.util.List;
import java.util.Set;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
* along with OwlPlug. If not, see <https://www.gnu.org/licenses/>.
*/

package com.owlplug.project.taks.discovery;
package com.owlplug.project.tasks.discovery;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.allOf;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
/* OwlPlug
* Copyright (C) 2021 Arthur <dropsnorz@gmail.com>
*
* This file is part of OwlPlug.
*
* OwlPlug is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3
* as published by the Free Software Foundation.
*
* OwlPlug is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with OwlPlug. If not, see <https://www.gnu.org/licenses/>.
*/

package com.owlplug.project.tasks.discovery;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.allOf;
import static org.hamcrest.Matchers.containsInAnyOrder;
import static org.hamcrest.Matchers.hasProperty;
import static org.hamcrest.Matchers.is;
import static org.junit.jupiter.api.Assertions.assertEquals;

import com.owlplug.plugin.model.PluginFormat;
import com.owlplug.project.model.DawApplication;
import com.owlplug.project.model.DawProject;
import com.owlplug.project.tasks.discovery.studioone.StudioOneProjectExplorer;
import java.io.File;
import org.junit.jupiter.api.Test;

public class StudioOneProjectExplorerTest {

@Test
public void studioone7schema8VstValidProject() throws ProjectExplorerException {
StudioOneProjectExplorer explorer = new StudioOneProjectExplorer();

File file = new File(this.getClass().getClassLoader()
.getResource("projects/studioone/studioone7schema8.song").getFile());

DawProject project = explorer.explore(file);
assertEquals("OwlPlug", project.getName());
assertEquals(DawApplication.STUDIO_ONE, project.getApplication());
assertEquals("Studio One/7.2.3.108761", project.getAppFullName());
assertEquals("8", project.getFormatVersion());
assertEquals(3, project.getPlugins().size());

assertThat(project.getPlugins(), containsInAnyOrder(
allOf(
hasProperty("name", is("Wobbleizer")),
hasProperty("format", is(PluginFormat.VST2))
),
allOf(
hasProperty("name", is("iZotope Ozone 5")),
hasProperty("format", is(PluginFormat.VST2))
),
allOf(
hasProperty("name", is("Sylenth1")),
hasProperty("format", is(PluginFormat.VST2))
)
));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/* OwlPlug
* Copyright (C) 2021 Arthur <dropsnorz@gmail.com>
*
* This file is part of OwlPlug.
*
* OwlPlug is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3
* as published by the Free Software Foundation.
*
* OwlPlug is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with OwlPlug. If not, see <https://www.gnu.org/licenses/>.
*/

package com.owlplug.project.tasks.discovery.studioone;

import com.owlplug.project.model.DawPlugin;
import java.io.File;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.junit.jupiter.api.Test;
import org.w3c.dom.Document;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;

public class StudioOneAudioMixerPluginCollectorTest {

@Test
public void testCollectPlugins() throws Exception {
File testFile = new File(this.getClass().getClassLoader()
.getResource("projects/studioone/files/audiomixer.xml").getFile());
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(testFile);

StudioOneAudioMixerPluginCollector collector = new StudioOneAudioMixerPluginCollector(document);
List<DawPlugin> plugins = collector.collectPlugins();

assertNotNull(plugins);
assertEquals(3, plugins.size());

DawPlugin firstPlugin = plugins.get(0);
assertEquals("Reverb", firstPlugin.getName());
assertEquals("VST2", firstPlugin.getFormat().name());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
/* OwlPlug
* Copyright (C) 2021 Arthur <dropsnorz@gmail.com>
*
* This file is part of OwlPlug.
*
* OwlPlug is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3
* as published by the Free Software Foundation.
*
* OwlPlug is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with OwlPlug. If not, see <https://www.gnu.org/licenses/>.
*/

package com.owlplug.project.tasks.discovery.studioone;

import com.owlplug.project.model.DawPlugin;
import java.io.File;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.junit.jupiter.api.Test;
import org.w3c.dom.Document;

import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertEquals;

public class StudioOneSynthPluginCollectorTest {

@Test
public void testCollectPlugins() throws Exception {
File testFile = new File(this.getClass().getClassLoader()
.getResource("projects/studioone/files/audiosynthfolder.xml").getFile());
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(testFile);

StudioOneSynthPluginCollector collector = new StudioOneSynthPluginCollector(document);
List<DawPlugin> plugins = collector.collectPlugins();

assertNotNull(plugins);
assertEquals(2, plugins.size());

DawPlugin firstPlugin = plugins.get(0);
assertEquals("Sylenth1", firstPlugin.getName());
assertEquals("VST2", firstPlugin.getFormat().name());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<AudioMixer>
<Attributes name="FX Reverb" speakerFormat="Stereo">
<Attributes x:id="deviceData" name="Reverb" />
<Attributes x:id="ghostData">
<Attributes x:id="classInfo" name="Reverb" subCategory="VST2" category="AudioEffect" />
</Attributes>
</Attributes>
<Attributes name="FX Delay" speakerFormat="Stereo">
<Attributes x:id="deviceData" name="Delay" />
<Attributes x:id="ghostData">
<Attributes x:id="classInfo" name="Delay" subCategory="VST2" category="AudioEffect" />
</Attributes>
</Attributes>
<Attributes name="FX Compressor" speakerFormat="Stereo">
<Attributes x:id="deviceData" name="Compressor" />
<Attributes x:id="ghostData">
<Attributes x:id="classInfo" name="Compressor" subCategory="VST2" category="AudioEffect" />
</Attributes>
</Attributes>
</AudioMixer>
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<SynthFolder>
<Attributes name="Sylenth1" speakerFormat="Stereo">
<Attributes x:id="deviceData" name="Sylenth1" />
<Attributes x:id="ghostData">
<Attributes x:id="classInfo" name="Sylenth1" subCategory="VST2" category="AudioSynth" />
</Attributes>
</Attributes>
<Attributes name="Massive" speakerFormat="Stereo">
<Attributes x:id="deviceData" name="Massive" />
<Attributes x:id="ghostData">
<Attributes x:id="classInfo" name="Massive" subCategory="VST2" category="AudioSynth" />
</Attributes>
</Attributes>
</SynthFolder>
Binary file not shown.