Stéphane Cerveau
6b657891c6
graphmanager: fix some lint issues with rust 1.63
...
Fix format and missing derive
2022-09-06 12:48:40 +02:00
Stéphane Cerveau
ebbc1d2261
app: update to rust 1.63 and fix some lint issues
...
Fix format! and missing derive
2022-09-06 12:48:40 +02:00
Stéphane Cerveau
1fe43d7da3
player: fix clippy error
2022-03-07 11:29:19 +01:00
Patrick José Pereira
0ee941efbe
src: Use new wrappable argument
2022-02-21 08:49:31 +00:00
Patrick José Pereira
ed697a63e9
ui: treeview: Add wrappable feature
2022-02-21 08:49:31 +00:00
Stéphane Cerveau
39554d8d99
logger: add a popup menu to clear the logs
...
Add a way to clear the logs.
2022-02-21 08:34:34 +00:00
Stéphane Cerveau
aaaa58072c
logger: display the most recent log on top
...
The most recent log arrives on top of the list and
is always visible.
2022-02-21 08:34:34 +00:00
Stéphane Cerveau
7762332700
preferences: add log level
...
Can now set the log level in the application
2022-02-21 08:34:34 +00:00
Stéphane Cerveau
28a9cfbd50
graphmanager: update link license
...
Add a license in GraphManager folder
2022-02-16 17:10:34 +01:00
Stéphane Cerveau
088aff1576
properties: cleanup Label creation
2022-02-10 14:38:13 +00:00
Stéphane Cerveau
57160b3bce
about: display GStreamer version
2022-02-10 14:38:13 +00:00
Stéphane Cerveau
6cc908c109
graphview: add a format version to graphview
2022-02-10 14:38:13 +00:00
Stéphane Cerveau
f925c21b1d
GPS: cleanup the license
...
Keep only the SPDX and mention the project
2022-02-09 11:28:59 +01:00
Stéphane Cerveau
0164d71bf2
graphmanager: cleanup the license
...
Keep only the SPDX and mention the project
2022-02-09 11:28:27 +01:00
Stéphane Cerveau
006ed2bae0
properties: preferences: unify behavior
...
Use a common create_dialog method in dialog.rs
Add an empty field in combo box to be able to remove
a property
Remove the close button.
2022-02-08 14:57:00 +01:00
Stéphane Cerveau
72dcde0ad3
graphmanager: update description on property remove
...
The node must update its description when
a property value has been removed.
2022-02-08 14:53:12 +01:00
Stéphane Cerveau
1eb49731e1
properties: fix the propery value with combo
...
The property is now the numerical value of the
enum or flags in an element's property
2022-02-08 14:34:23 +01:00
Stéphane Cerveau
935e6c7fb5
burger menu: right aligned
2022-02-08 14:17:31 +01:00
Stéphane Cerveau
78b2bd4a6f
app: remove quit mentu entry
...
The quit menu entry is dispensable as
the application can be quit with cross
2022-02-08 14:13:18 +01:00
Stéphane Cerveau
402ac1f40f
properties: display the number of elements found
2022-02-07 12:19:15 +01:00
Stéphane Cerveau
e3ac490a81
properties: add a way to display pipeline properties
...
Pipeline properties displays all elements in
the pipeline.
2022-02-07 12:19:15 +01:00
Stéphane Cerveau
4cb965fe7f
player: handle EOS message
2022-02-07 12:19:15 +01:00
Stéphane Cerveau
f118ef7db0
player: detect gtk4paintablesink with deep-element-added
...
Connect to the deep-element-added signal from the pipeline
to detect the gtk4paintablesink presence.
2022-02-07 12:19:15 +01:00
Stéphane Cerveau
25d856a360
pipeline: rename to player
...
To avoid confusion with GStreamer pipeline and
GPS pipeline, renamed it player.
2022-02-07 12:19:15 +01:00
Stéphane Cerveau
59ecbb41a5
pipeline: can now support pad properties
...
Can set pad property which will be used during the
pipeline generation.
Change port name to src_* or sink_*
Caps become an hidden property
Remove the ':' to separate value field, it does not
work properly with URI
Add funny graphs
2022-02-07 12:19:15 +01:00
Stéphane Cerveau
7db3b333ac
graphmanager: add API to change port name.
2022-02-07 12:19:15 +01:00
Stéphane Cerveau
a21350b4a0
graphmanager: can remove property
...
Add public remove_property to PropertyExt
2022-02-07 12:19:10 +01:00
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