Skip to content

Commit dbd12a8

Browse files
committed
Add possibility to set gstreamer commands in preferences.
If there is a need to add more arguments to gstreamer default commands user has to add them to every new created project in proper wizard window. It improves user experience by creating a possiblity to set additional gstreamer commands in preferences window as they are common for all project and user doesn't need to repeat them every time during creating new project Signed-off-by: Emilia Dominiak <emilia.dominiak@intel.com>
1 parent f9986c8 commit dbd12a8

File tree

4 files changed

+130
-2
lines changed

4 files changed

+130
-2
lines changed

org.sofproject.gst.topo/plugin.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,11 @@
4040
class="org.sofproject.gst.topo.ops.GstOpsProvider">
4141
</provider>
4242
</extension>
43+
<extension
44+
point="org.eclipse.ui.preferencePages">
45+
<page id="org.sofproject.gst.topo.ui.preferences.gstcommandspreferences"
46+
class="org.sofproject.gst.topo.ui.preferences.GstCommandsPreferences"
47+
name="GStreamer commands">
48+
</page>
49+
</extension>
4350
</plugin>
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
/*
2+
* Copyright (c) 2019, Intel Corporation
3+
* All rights reserved.
4+
*
5+
* Redistribution and use in source and binary forms, with or without
6+
* modification, are permitted provided that the following conditions are met:
7+
* * Redistributions of source code must retain the above copyright
8+
* notice, this list of conditions and the following disclaimer.
9+
* * Redistributions in binary form must reproduce the above copyright
10+
* notice, this list of conditions and the following disclaimer in the
11+
* documentation and/or other materials provided with the distribution.
12+
* * Neither the name of the Intel Corporation nor the
13+
* names of its contributors may be used to endorse or promote products
14+
* derived from this software without specific prior written permission.
15+
*
16+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
20+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26+
* POSSIBILITY OF SUCH DAMAGE.
27+
*
28+
*/
29+
30+
package org.sofproject.gst.topo.ui.preferences;
31+
32+
import org.eclipse.core.runtime.preferences.InstanceScope;
33+
import org.eclipse.jface.preference.FieldEditorPreferencePage;
34+
import org.eclipse.jface.preference.IPreferenceStore;
35+
import org.eclipse.jface.preference.StringFieldEditor;
36+
import org.eclipse.ui.IWorkbench;
37+
import org.eclipse.ui.IWorkbenchPreferencePage;
38+
import org.eclipse.ui.preferences.ScopedPreferenceStore;
39+
40+
public class GstCommandsPreferences extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
41+
42+
StringFieldEditor gstInspectfieldEditor;
43+
StringFieldEditor gstLaunchfieldEditor;
44+
45+
public GstCommandsPreferences() {
46+
super(GRID);
47+
setDescription("Set custom GStreamer commands");
48+
}
49+
50+
@Override
51+
public boolean performOk() {
52+
if (gstLaunchfieldEditor.getStringValue().equals("")) {
53+
setErrorMessage("gst-launch command cannot be empty");
54+
return false;
55+
}
56+
57+
if (gstInspectfieldEditor.getStringValue().equals("")) {
58+
setErrorMessage("gst-inspect command cannot be empty");
59+
return false;
60+
}
61+
return super.performOk();
62+
}
63+
64+
@Override
65+
public void init(IWorkbench workbench) {
66+
IPreferenceStore store = new ScopedPreferenceStore(InstanceScope.INSTANCE,
67+
"org.sofproject.gst.topo.ui.preferences");
68+
69+
store.setDefault(GstCommandsPreferencesConst.GST_INSPECT, "gst-inspect-1.0");
70+
store.setDefault(GstCommandsPreferencesConst.GST_LAUNCH, "gst-launch-1.0");
71+
72+
setPreferenceStore(store);
73+
}
74+
75+
@Override
76+
protected void createFieldEditors() {
77+
gstInspectfieldEditor = new StringFieldEditor(GstCommandsPreferencesConst.GST_INSPECT, "Gst-inspect command: ",
78+
getFieldEditorParent());
79+
addField(gstInspectfieldEditor);
80+
81+
gstLaunchfieldEditor = new StringFieldEditor(GstCommandsPreferencesConst.GST_LAUNCH, "Gst-launch command: ",
82+
getFieldEditorParent());
83+
addField(gstLaunchfieldEditor);
84+
}
85+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/*
2+
* Copyright (c) 2019, Intel Corporation
3+
* All rights reserved.
4+
*
5+
* Redistribution and use in source and binary forms, with or without
6+
* modification, are permitted provided that the following conditions are met:
7+
* * Redistributions of source code must retain the above copyright
8+
* notice, this list of conditions and the following disclaimer.
9+
* * Redistributions in binary form must reproduce the above copyright
10+
* notice, this list of conditions and the following disclaimer in the
11+
* documentation and/or other materials provided with the distribution.
12+
* * Neither the name of the Intel Corporation nor the
13+
* names of its contributors may be used to endorse or promote products
14+
* derived from this software without specific prior written permission.
15+
*
16+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17+
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19+
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
20+
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21+
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22+
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23+
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25+
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26+
* POSSIBILITY OF SUCH DAMAGE.
27+
*
28+
*/
29+
30+
package org.sofproject.gst.topo.ui.preferences;
31+
32+
public class GstCommandsPreferencesConst {
33+
public static final String GST_LAUNCH = "gstLaunch";
34+
public static final String GST_INSPECT = "gstInspect";
35+
}

org.sofproject.gst.topo/src/org/sofproject/gst/topo/ui/wizards/GstNodeNewPage.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929

3030
package org.sofproject.gst.topo.ui.wizards;
3131

32+
import org.eclipse.core.runtime.Platform;
3233
import org.eclipse.jface.dialogs.Dialog;
3334
import org.eclipse.jface.wizard.WizardPage;
3435
import org.eclipse.swt.SWT;
@@ -78,7 +79,7 @@ public void createControl(Composite parent) {
7879
data.grabExcessHorizontalSpace = true;
7980
gstInspectToolCmd = new Text(inspectGroup, SWT.BORDER);
8081
gstInspectToolCmd.setLayoutData(data);
81-
gstInspectToolCmd.setText(gstNode.getGstInspectToolCmd());
82+
gstInspectToolCmd.setText(Platform.getPreferencesService().getString("org.sofproject.gst.topo.ui.preferences", "gstInspect", gstNode.getGstInspectToolCmd(), null));
8283
gstInspectToolCmd.addListener(SWT.Modify, confModifyListener);
8384

8485
Composite launchGroup = new Composite(control, SWT.NONE);
@@ -91,7 +92,7 @@ public void createControl(Composite parent) {
9192
data.grabExcessHorizontalSpace = true;
9293
gstLaunchToolCmd = new Text(launchGroup, SWT.BORDER);
9394
gstLaunchToolCmd.setLayoutData(data);
94-
gstLaunchToolCmd.setText(gstNode.getGstLaunchToolCmd());
95+
gstLaunchToolCmd.setText(Platform.getPreferencesService().getString("org.sofproject.gst.topo.ui.preferences", "gstLaunch", gstNode.getGstLaunchToolCmd(), null));
9596
gstLaunchToolCmd.addListener(SWT.Modify, confModifyListener);
9697

9798
setControl(control);

0 commit comments

Comments
 (0)