Commit graph

70 commits

Author SHA1 Message Date
Stéphane Cerveau 1f200f4f30 app: update to gtk 0.8.0 and gst 0.22.2
In the change, the glib::channel has been dropped to use
async_io which achieves the same to receive message
for the logger and display it in the treeview.
Another message is received when a new gtkpaintablesink
has been instanciated.
2024-03-14 16:34:55 +01:00
Stéphane Cerveau c5f9cac444 app: support cmd line to open a custom pipeline
Add a way to open a pipeline from the cmd line
2024-01-02 14:51:03 +01:00
Stéphane Cerveau 24121856ee app: use the channel to receive other logs
Add another logger to receive message, events or GST logs
2023-11-30 11:52:28 +01:00
Stéphane Cerveau e12fecf971 settings: create the default app folder
To avoid a crash if the settings folder is
not present and the log can not be created properly
2023-09-28 16:45:01 +02:00
Stéphane Cerveau 66cd1b9c15 app: use default size to save/load app size
Use maximize on all platform except
macos

Fixes #19
2023-09-20 22:20:10 +02:00
Stéphane Cerveau 1789bb0b25 app: remove the maximize call
The maximize call blocks the resize on MacOS.

Fixes #19
2023-09-20 13:34:16 +00:00
Stéphane Cerveau 4a5964c340 app: manage graphtab as a tab of notebook
graph tab in the graphbook containing a player
and a graphview
2023-09-16 10:37:59 +02:00
Stéphane Cerveau bcc39acf5e app: add session structure
This structure represents a graphview and a player.
It will allow a future use of notebook
in the main window
2023-09-15 11:56:16 +02:00
Stéphane Cerveau 375f083cbf cargo: update rust, gtk and gstreamer version 2023-08-31 17:23:58 +02:00
Stéphane Cerveau 16db9ab30a app: remove special use case with caps filter 2023-08-26 12:52:30 +02:00
Stéphane Cerveau ad6c53a531 app: support of caps filter by link name 2023-08-26 12:52:30 +02:00
Stéphane Cerveau d1ccea7ea8 logger: create the log in the home directory
Prevent an issue on windows where the application could
not start because the log was created in the app folder.
2023-03-05 19:29:38 +01:00
Stéphane Cerveau 88ec98bcef player: generate a graph from a pipeline description 2023-02-14 10:18:06 +01:00
Stéphane Cerveau a02c99fb61 app: fix various clippy issue
Fix uninlined_format_args since 1.66.0
2023-02-13 16:39:56 +01:00
Stéphane Cerveau 8603b21d98 app: set light mode for capsfilter node/element 2023-02-13 16:39:56 +01:00
Stéphane Cerveau 3f75581d60 app: display node properties on double-clicked 2023-02-09 14:05:42 +01: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 f925c21b1d GPS: cleanup the license
Keep only the SPDX and mention the project
2022-02-09 11:28:59 +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 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 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 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 3a4a4e2bea ui: move gps.ui to dedicated folder 2022-01-31 19:31:45 +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 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 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 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 f483b51c9e app: Use the new PropertyExt interface from Graphview 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 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 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 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 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 7a37e5b736 app: Use new "node" api from graphview 2022-01-18 16:39:39 +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 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 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 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 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