kopia lustrzana https://github.com/jameshball/osci-render
Allow for custom syphon/spout server names
rodzic
64e7208fee
commit
24d5997ed0
|
@ -43,8 +43,8 @@ CommonPluginEditor::CommonPluginEditor(CommonAudioProcessor& p, juce::String app
|
|||
visualiserSettings.setColour(juce::ResizableWindow::backgroundColourId, Colours::dark);
|
||||
|
||||
recordingSettings.setLookAndFeel(&getLookAndFeel());
|
||||
recordingSettings.setSize(300, 200);
|
||||
recordingSettingsWindow.centreWithSize(300, 230);
|
||||
recordingSettings.setSize(350, 230);
|
||||
recordingSettingsWindow.centreWithSize(350, 260);
|
||||
#if JUCE_WINDOWS
|
||||
// if not standalone, use native title bar for compatibility with DAWs
|
||||
recordingSettingsWindow.setUsingNativeTitleBar(processor.wrapperType == juce::AudioProcessor::WrapperType::wrapperType_Standalone);
|
||||
|
|
|
@ -11,6 +11,8 @@ RecordingSettings::RecordingSettings(RecordingParameters& ps) : parameters(ps) {
|
|||
addAndMakeVisible(recordVideo);
|
||||
addAndMakeVisible(compressionPreset);
|
||||
addAndMakeVisible(compressionPresetLabel);
|
||||
addAndMakeVisible(customSharedTextureOutputLabel);
|
||||
addAndMakeVisible(customSharedTextureOutputEditor);
|
||||
|
||||
quality.setSliderOnValueChange();
|
||||
quality.setRangeEnabled(false);
|
||||
|
@ -34,6 +36,12 @@ RecordingSettings::RecordingSettings(RecordingParameters& ps) : parameters(ps) {
|
|||
compressionPreset.addItemList(parameters.compressionPresets, 1);
|
||||
compressionPreset.setSelectedId(parameters.compressionPresets.indexOf(parameters.compressionPreset) + 1);
|
||||
compressionPresetLabel.setTooltip("The compression preset to use when recording video. Slower presets will produce smaller files at the expense of encoding time.");
|
||||
|
||||
customSharedTextureOutputLabel.setTooltip("Custom name for when creating a new Syphon/Spout server. WARNING: You should not use the same name when running multiple servers at once!.");
|
||||
customSharedTextureOutputEditor.setText(parameters.customSharedTextureServerName);
|
||||
customSharedTextureOutputEditor.onTextChange = [this] {
|
||||
parameters.customSharedTextureServerName = customSharedTextureOutputEditor.getText();
|
||||
};
|
||||
#else
|
||||
addAndMakeVisible(recordVideoWarning);
|
||||
addAndMakeVisible(sosciLink);
|
||||
|
@ -61,8 +69,13 @@ void RecordingSettings::resized() {
|
|||
recordAudio.setBounds(area.removeFromTop(rowHeight));
|
||||
recordVideo.setBounds(area.removeFromTop(rowHeight));
|
||||
auto row = area.removeFromTop(rowHeight);
|
||||
compressionPresetLabel.setBounds(row.removeFromLeft(140));
|
||||
compressionPreset.setBounds(row.removeFromRight(80));
|
||||
compressionPresetLabel.setBounds(row.removeFromLeft(170));
|
||||
compressionPreset.setBounds(row.removeFromRight(100));
|
||||
|
||||
area.removeFromTop(5);
|
||||
row = area.removeFromTop(rowHeight);
|
||||
customSharedTextureOutputLabel.setBounds(row.removeFromLeft(170));
|
||||
customSharedTextureOutputEditor.setBounds(row.removeFromRight(100));
|
||||
#else
|
||||
recordVideoWarning.setBounds(area.removeFromTop(2 * rowHeight));
|
||||
area.removeFromTop(rowHeight / 2);
|
||||
|
|
|
@ -45,6 +45,7 @@ public:
|
|||
recordAudio.save(settingsXml->createNewChildElement("recordAudio"));
|
||||
recordVideo.save(settingsXml->createNewChildElement("recordVideo"));
|
||||
settingsXml->setAttribute("compressionPreset", compressionPreset);
|
||||
settingsXml->setAttribute("customSharedTextureServerName", customSharedTextureServerName);
|
||||
|
||||
auto qualityXml = settingsXml->createNewChildElement("quality");
|
||||
qualityEffect.save(qualityXml);
|
||||
|
@ -65,6 +66,9 @@ public:
|
|||
if (settingsXml->hasAttribute("compressionPreset")) {
|
||||
compressionPreset = settingsXml->getStringAttribute("compressionPreset");
|
||||
}
|
||||
if (settingsXml->hasAttribute("customSharedTextureServerName")) {
|
||||
customSharedTextureServerName = settingsXml->getStringAttribute("customSharedTextureServerName");
|
||||
}
|
||||
if (auto* qualityXml = settingsXml->getChildByName("quality")) {
|
||||
qualityEffect.load(qualityXml);
|
||||
}
|
||||
|
@ -72,6 +76,7 @@ public:
|
|||
}
|
||||
|
||||
juce::StringArray compressionPresets = { "ultrafast", "superfast", "veryfast", "faster", "fast", "medium", "slow", "slower", "veryslow" };
|
||||
juce::String customSharedTextureServerName = "";
|
||||
};
|
||||
|
||||
class RecordingSettings : public juce::Component {
|
||||
|
@ -102,6 +107,13 @@ public:
|
|||
juce::String getCompressionPreset() {
|
||||
return parameters.compressionPreset;
|
||||
}
|
||||
|
||||
juce::String getCustomSharedTextureServerName() {
|
||||
if (parameters.customSharedTextureServerName.isEmpty()) {
|
||||
return "osci-render - " + juce::String(juce::Time::getCurrentTime().toMilliseconds());
|
||||
}
|
||||
return parameters.customSharedTextureServerName;
|
||||
}
|
||||
|
||||
RecordingParameters& parameters;
|
||||
|
||||
|
@ -119,6 +131,9 @@ private:
|
|||
|
||||
juce::Label compressionPresetLabel{"Compression Speed", "Compression Speed"};
|
||||
juce::ComboBox compressionPreset;
|
||||
|
||||
juce::Label customSharedTextureOutputLabel{"Custom Syphon/Spout Name", "Custom Syphon/Spout Name"};
|
||||
juce::TextEditor customSharedTextureOutputEditor{"customSharedTextureOutputEditor"};
|
||||
|
||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(RecordingSettings)
|
||||
};
|
||||
|
|
|
@ -598,7 +598,7 @@ void VisualiserComponent::childUpdated() {
|
|||
|
||||
#if SOSCI_FEATURES
|
||||
void VisualiserComponent::initialiseSharedTexture() {
|
||||
sharedTextureSender = sharedTextureManager.addSender("osci-render - " + juce::String(juce::Time::getCurrentTime().toMilliseconds()), renderTexture.width, renderTexture.height);
|
||||
sharedTextureSender = sharedTextureManager.addSender(recordingSettings.getCustomSharedTextureServerName(), renderTexture.width, renderTexture.height);
|
||||
sharedTextureSender->initGL();
|
||||
sharedTextureSender->setSharedTextureId(renderTexture.id);
|
||||
sharedTextureSender->setDrawFunction([this] {
|
||||
|
|
Ładowanie…
Reference in New Issue