Stéphane Cerveau
8059f73f51
elements: sort the favorites by alphabetical order
2022-02-03 12:56:54 +01:00
Stéphane Cerveau
b12ea9ebdd
properties: follow the same layout as in preferences
...
Rework the UI to follow the same layout as in preferences
dialog
2022-02-01 16:14:52 +01:00
Stéphane Cerveau
c101ea6a37
preferences: add a preference dialog
...
Add a dialog to set user preference such
as gtk4paintablesink usage.
2022-02-01 16:14:52 +01:00
Stéphane Cerveau
247cf2c844
settings: use HashMap to save paned positions
...
Save the hashmap in the settings.toml file
2022-02-01 13:23:15 +01:00
Stéphane Cerveau
4cdf2fd70b
app: support multiple preview in a Notebook
...
The preview is now a NoteBook and if multiple video
gtk4sink are available, a page is created for each of it.
2022-02-01 13:23:15 +01:00
Stéphane Cerveau
09f56de320
app: change the app title
2022-02-01 11:44:35 +01:00
Stéphane Cerveau
1c10424e9e
pad: change the pad name log cat
2022-02-01 11:44:01 +01:00
Stéphane Cerveau
3a4a4e2bea
ui: move gps.ui to dedicated folder
2022-01-31 19:31:45 +01:00
Stéphane Cerveau
7aac6cb08f
gps.ui: add a label for "no "preview"
2022-01-31 17:33:19 +01:00
Stéphane Cerveau
9b768b7d56
app: display position/duration and seek scale
...
The user can now see the position and duration of the playback
The slider can now seek to the given position.
2022-01-31 17:32:54 +01:00
Stéphane Cerveau
8f72b9ac79
element: display the rank in the description
2022-01-31 13:37:22 +01:00
Stéphane Cerveau
18606b687c
favorites: display properties as well
...
As in element list, display properties when selected
2022-01-28 16:16:29 +01:00
Stéphane Cerveau
b84483057b
pipeline: add gtk4paintablesink
...
Add a way to draw whenever possible
the video render into the preview box
in UI
2022-01-28 16:01:01 +01:00
Stéphane Cerveau
42e0057829
app: use new graphview API
...
Use new APIs from unit test graphview changes
Update the TODO
2022-01-27 17:35:47 +01:00
Stéphane Cerveau
d19387f039
graphview: implement tests infra
...
- Implement test for graph creation, save and load.
- Change xml API
- Update public/private api
- Add a graphview clear API
2022-01-27 17:35:47 +01:00
Stéphane Cerveau
9cc40d2b7b
grahview: add create_link methods to clarify API
2022-01-27 13:18:46 +01:00
Stéphane Cerveau
2ddd49fa0d
tests: implement graphview unit test
2022-01-27 13:18:46 +01:00
Stéphane Cerveau
620f6bf699
graphview: implement link on mouse pointer
...
Draw a dash line following the mouse pointer
when an available port has been clicked.
2022-01-27 13:18:46 +01:00
Stéphane Cerveau
cf8c8ab585
graphview: remove all links when node is deleted
...
The node can have more links than one, so all the links
must be destroyed when the node is destroyed.
Cleanup the code and panic if a link does not have
the node or port described in it.
2022-01-27 13:18:46 +01:00
Stéphane Cerveau
a8e7b039a0
pipeline: can now communicate with app
...
Tell the status of pipeline in the status bar.
2022-01-27 13:18:46 +01:00
Stéphane Cerveau
ee66f53171
pipeline: Able to render a graph and check for error
...
If the pipeline can not be created, display an error dialog
when checking it.
2022-01-27 13:18:46 +01:00
Stéphane Cerveau
5c25417569
pipeline: set state to stop when error
...
Do not display a dialog when an error happens,
only a log error is sufficient.
2022-01-27 13:18:46 +01:00
Stéphane Cerveau
13421b4d5b
app: display the caps as a tooltip on port
...
The port can now display a tooltip
with the port
2022-01-27 13:18:46 +01:00
Stéphane Cerveau
375d01c0cd
port: Rework the way to add a port/node
...
Allow to tell than a port has been added with its property
2022-01-27 13:18:46 +01:00
Stéphane Cerveau
f483b51c9e
app: Use the new PropertyExt interface from Graphview
2022-01-27 13:18:46 +01:00
Stéphane Cerveau
17ecce9748
port: support properties
...
Allow port to have a property set
and store it in the xml file
Introduce PropertyExt
Rewrote the port layout
2022-01-27 13:18:46 +01:00
Stéphane Cerveau
b360f4a13a
node: update the layout and use GtkGrid
...
The node uses a GrkGrid to display
ports, name and description.
2022-01-27 13:18:46 +01:00
Stéphane Cerveau
39815eb8d9
properties: support more properties
...
Support enum and flags properties in
addition to numerous and string ones.
2022-01-27 13:18:46 +01:00
Stéphane Cerveau
24e5e947d5
properties: fix regression with gst 0.18
...
Fix alignement
2022-01-20 16:17:06 +01:00
Stéphane Cerveau
45d5f19c10
gps: use it as a whole module
...
Namespace the use of gps
2022-01-20 15:32:30 +01:00
Stéphane Cerveau
a2503ce86b
ui: introduce a new module
...
- Cleanup up app.rs and use the new module ui
- Remove display_plugin_list
- Can now render a graph and get the
parse launch line.
2022-01-20 15:32:30 +01:00
Stéphane Cerveau
71e68b846f
app: Display a tooltip on node
...
Handle node-added signal to set
a tooltip on each node.
2022-01-20 12:04:24 +01:00
Stéphane Cerveau
548f4cb3fc
graphview: add "node-added" signal
...
Signal the app that a node has been added
correctly.
2022-01-20 12:04:24 +01:00
Stéphane Cerveau
6dd37b95e4
app: display plugin description in property box
...
On element selection, the property view display
the description
2022-01-20 12:04:24 +01:00
Stéphane Cerveau
7f4a4b438d
app: add an element notebook for all and favorites
...
Can now see all elements and favorites from the main window
2022-01-20 12:04:24 +01:00
Stéphane Cerveau
8f83721047
app: redesign the UI to have a dashboard
...
The dashboard contains:
- GStreamer elements
- Element's property
- Preview
2022-01-19 13:32:33 +01:00
Stéphane Cerveau
7abc0190cd
gstreamer-rs: move to 0.18.1 release
2022-01-19 12:24:13 +01:00
Stéphane Cerveau
2182fd56ed
main: update license header
2022-01-19 11:56:21 +01:00
Stéphane Cerveau
a572d04958
app: use create_node_with_port API
...
Instead of add_new_node_with_port
2022-01-19 11:56:05 +01:00
Stéphane Cerveau
6c31bc3912
graphview: add documentation and refactor the code
...
Add documentation to public method.
Publish method which are public
Use SelectionExt trait.
Rename add_node_with_port to create_node_with_port
2022-01-19 11:55:13 +01:00
Stéphane Cerveau
ade3f14902
graphview: update css for node and port
...
Change border style and
port presence entries
2022-01-18 17:43:01 +01:00
Stéphane Cerveau
0f0f9d6fc0
app: port support update
...
Connect the port to the element pad
capabilities.
Can now create a port only if the element
supports the request pad
Can only delete a port which is a "sometimes"
port/pad.
Introduce GPS module.
2022-01-18 17:43:01 +01:00
Stéphane Cerveau
4bae12c011
graphview: introduce PortPresence
...
The port presence helps to know
if the port can be deleted or not.
XML Format break.
2022-01-18 16:39:39 +01:00
Stéphane Cerveau
e5334b1d5e
graphview: Remove the link in remove_port
...
Remove the link when removing a port from a
node.
Update documentation
2022-01-18 16:39:39 +01:00
Stéphane Cerveau
7a37e5b736
app: Use new "node" api from graphview
2022-01-18 16:39:39 +01:00
Stéphane Cerveau
9ef073d3c3
graphview: update node API
...
Update doc for `node` and take u32
in argument.
2022-01-18 16:39:39 +01:00
Stéphane Cerveau
2548040463
graphview: port to gtk4 version 0.4.1
2022-01-17 14:40:09 +01:00
Stéphane Cerveau
21e5e4b4cb
app: port to gtk4 version 0.4.1
2022-01-17 14:40:09 +01:00
Stéphane Cerveau
fdfd739831
pipeline: fix a small issue with properties
...
Line formatting was wrong with properties set
ie filesrc location.
2022-01-17 14:40:09 +01:00
Stéphane Cerveau
72d4ddadb7
graphmanager: save the position as an attribute
...
The position should not be an hidden property
but a regular attribute.
2022-01-17 10:39:11 +01:00
Stéphane Cerveau
34b134107e
graphmanager: use logger instead of println
2022-01-14 09:50:45 +01:00
Stéphane Cerveau
1e13bbdca6
logger: use of simplelog crate
...
Logs are now visible in 2 different place
the treeview in the bottom and in a log file
with log level.
2022-01-14 09:50:45 +01:00
Stéphane Cerveau
0cd2490cbb
pipeline: cleanup the start_pipeline error handling
...
Cleanup the code to handle GStreamer set_state
failure.
2022-01-12 18:49:13 +01:00
Stéphane Cerveau
1a8e893169
app: load/save node position
...
Able to load and save the node position
in the XML file.
Autosave/autoload the current graph
in the settings folder.
2022-01-12 18:49:13 +01:00
Stéphane Cerveau
e9b905230a
graphview: save position as a hidden property
...
- Save/load node position in XML file
- Introduce a graph ID
2022-01-12 18:49:10 +01:00
Stéphane Cerveau
198847cb54
app: code cleanup
...
Use simplified anyhow result
Rewrite the expect/error messages.
Refactor the start pipeline API
Rename the treeview ids
2022-01-12 11:15:52 +01:00
Stéphane Cerveau
2a7137e6dc
graphview: code cleanup
...
Remove dead code
Rewrite error message
Use simplified anyhow result for xml
methods
2022-01-12 11:15:52 +01:00
Stéphane Cerveau
27eeab7b40
logger: add column for log level
...
Add a column to separate the message
from the log level.
2022-01-12 11:15:52 +01:00
Stéphane Cerveau
a6a5d796ca
gps.ui: Use a stock icon for clear
...
Clear graph on button clicked.
2022-01-12 11:15:52 +01:00
Stéphane Cerveau
e8259f3773
pipeline: fix multiple input pads
...
Can now generate a pipeline with multiple input
pads such as a compositor.
2022-01-12 11:15:52 +01:00
Stéphane Cerveau
81ca9ca3a3
about: display about dialog
...
display a custom and clean about dialog
with the infrastructure based on meson to
genetate the config.rs
2022-01-12 11:15:52 +01:00
Stéphane Cerveau
c1ba09814b
app: rework menu and actions
...
Use one popover menu parent with the mainwindow
Centralize the actions definition
Cleanup the code for more readabilty.
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
9884a776b3
app: rework the UI dimension
...
Add GtkPaned between the logs and the graph
Load/save app dimensions.
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
3731a92d51
logger: implement a logger with treeview
...
Any log should be now visible in the logger
tree view according to the level.
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
d291c93352
app: add graph pop menu
...
Add a pop menu to add new plugin to the graph
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
158f9eb899
favorites: implement a favorite list
...
The right panel can now store a favorite list which is
saved into a settings file in the user config directory.
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
c16102928b
pluginlist: avoid mulitple init
...
Allow only one initialization of the plugin
list.
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
914fc1f077
pipeline: move render_gst to this module
...
Remove render_gst from graphview and define
it in pipeline.
This will allow to isolate properly the graphmanager
module.
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
a15c9c7353
GPSApp: Able to clear the graph with new
...
Able to clear with new file and load
a preconfigured graph with clear button
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
a0bb503b27
graphview: can now select nodes and links
...
Nodes and links can be selected and deleted
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
7d08abaca8
GPSApp: Can now request pads on element
...
Add menu entries to add new pad/port to an element/node.
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
6756b34919
plugindialogs: rename module and support properties in element
...
rename pluginlist module to plugindialogs
Add display_plugin_properties to modify properties
from an element.
Add a way to modify the location if element is URI_TYPE_SRC
Able to remove a node from the graph
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
6c7dccd450
graphview: display contextual menu on right click
...
display a contextual menu if user clicks a node or port with a right
click.
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
bc7f4424ca
main: add a common init method
...
Rename the application to gst-pipeline-studio and
add an init method to initialize
gstreamer and x11
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
6397ebff74
GPS: add GST render to parse launch format
...
The player is able to take the graph description and
build a string which will be passed to the
GStreamer parse launch engine.
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
f1149a6b5e
pipeline: implement parse launch playback
...
Can now play/pause/stop a playback from
a parse launch description GST pipeline.
rename getters in pipeline.rs
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
52286ada4a
GPS: Add xml save/load in graphview
...
Can now save and load in XML
graphs/nodes/ports/links
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
5f91fbaef7
GPS: introduce the graphmanager
...
Introduce the first version of a graph manager
with:
- Graphview
- Node
- Port
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
25b2d1f8bf
GPS: port to GTK4
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
b36fd0aebe
pluginlist: can now select and double click element
...
Treeview row actions:
- A selection will display element information.
- A double click add a new element in the app.graph structure.
The plugin list dialog is an item from gps.ui
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
0851f0545b
GPS: introduce the graph object
...
The graph object stores information about the graphical
representation of a gst pipeline including
the element box, the pads and the connections.
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
05749a7009
GPS: introduce an app structure
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
6351f1f43f
GPS: Add a dialog to select the elements
...
This dialog allows to select and see element
and its details.
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
859f936796
GPS: add GStreamer support
...
Can now get the GStreamer element's list
from the registry.
2022-01-11 20:48:53 +01:00
Stéphane Cerveau
20c537f61b
GPS: change license to GPLv3
2021-12-02 10:28:24 +01:00
Stéphane Cerveau
bdd183075e
mainwindow: connect button to actions
...
Connect:
- add plugin dialog
- open file dialog
- about dialog
2021-11-18 12:35:56 +01:00
Stéphane Cerveau
12e7958886
mainwindow: can now draw a vector of rectangles.
2021-11-17 12:43:02 +01:00
Stéphane Cerveau
52718e0388
mainwindow: can draw a rectangle at mouse position
2021-11-04 14:25:25 +01:00
Stéphane Cerveau
465ac78c08
gps: Add first UI design with glade
2021-10-22 13:00:05 +02:00
Stéphane Cerveau
56f62f172c
rust: init the project
2021-10-12 10:33:51 +02:00