Commit graph

58 commits

Author SHA1 Message Date
Wim Taymans
9a90030596 pw-cli: fix command parsing after pw_split changes
Don't assume anything about the way the split function maintain the
state.
2021-06-07 11:17:45 +02:00
Peter Hutterer
e0471c6757 pipewire: allow NULL pointers in pw_properties_free()
Just like the real free() we should just ignore a NULL pointer, makes the
caller code easier for those instances where properties are optional.

Patch generated with concinelle with a few manual fixes.
2021-06-02 10:56:46 +00:00
Wim Taymans
f007ca475c pw-cli: handle failure to create context
Fixes #1234
2021-05-26 10:18:15 +02:00
Peter Hutterer
e1211e6a94 tools: fix scan-build errors for unused variables
All cases of value stored but never read
2021-05-26 07:51:27 +00:00
Peter Hutterer
92514d57e4 treewide: replace plain strcmp() calls with spa_streq 2021-05-18 22:10:27 +10:00
Peter Hutterer
522f87d5ea treewide: replace strcmp() != 0 with !spa_streq
This change is only done in source files for now, header files will be done
separately.
2021-05-18 22:10:27 +10:00
Peter Hutterer
95a84e797a treewide: replace !strcmp() with spa_streq()
This change is only done in source files for now, header files will be done
separately.
2021-05-18 22:10:27 +10:00
Peter Hutterer
7697ed0757 treewide: replace strcmp() == 0 with spa_streq()
This change is only done in source files for now, header files will be done
separately.
2021-05-18 22:10:27 +10:00
Wim Taymans
3c11b75e32 pw-cli: allow setting keys by their value.
Makes things like:

  pw-cli s 102 Props '{ 16777216: 1.2 }'

work. Useful when dealing with custom properties that don't have a name
in the type array.
2021-05-03 11:50:42 +02:00
Wim Taymans
7145b2becf pw-cli: add support for creating Struct in pod
Support creating Struct as well. When an object property is marked as
Struct, use [] to start the struct and copy each item with its type into
the struct:

pw-cli s 0 Route '{ info = [ "foo": 0.1  "bar": null [ 0.1 10 "hat" ]] }'
2021-04-30 17:21:42 +02:00
Wim Taymans
aea55f662a i18n: move to separate .h file
So that we can include it where needed and don't cause redefined _()
macros for other projects.

Fixes #1120
2021-04-30 09:57:30 +02:00
Wim Taymans
66e37f6bb7 pw-cli: free properties in create_ functions 2021-04-19 16:37:05 +02:00
Wim Taymans
036c54b043 Add i18n support for some more user-visible strings 2021-04-15 17:56:40 +02:00
Wim Taymans
ca4b549472 pw-cli: handle properties without type info
Some properties don't have type info and then we want to skip
constructing the pod instead of crashing. This makes it possible to
cut and paste the output of pw-dump Route into pw-cli s <card> Route,
for example.
2021-04-09 16:14:50 +02:00
Wim Taymans
6217f20c04 pw-cli: allow param names in enum-params
So that "pw-cli e <object.id> Props" works
2021-04-09 15:55:04 +02:00
Wim Taymans
87706c7442 pw-cli: use more powerful pw_properties_new_string()
Remove our custom property parsing code and use
pw_properties_new_string() for more powerful syntax.
2021-04-09 15:53:33 +02:00
Wim Taymans
ae22852a9b remove some useless checks
The variable was already dereferenced above and thus can't be NULL
2021-03-27 20:36:43 +01:00
FeRD (Frank Dana)
2931522d2c pw-cli: Make 'dump' type arg case-insensitive 2021-03-10 11:41:32 -05:00
Wim Taymans
27f85d1f52 tools: remove registry listener before destroying
Otherwise we access freed memory when we try to remove
the listener later.
2021-02-24 14:58:20 +01:00
Wim Taymans
1f2cb7ac67 don't crash with missing libraries 2021-02-23 17:48:57 +01:00
Wim Taymans
91875c1fd8 pw-cli: always output to stdout
Use spa_debug_pod because spa_debug_format outputs to stderr
2021-02-19 16:42:21 +01:00
Wim Taymans
579e8a4ea6 json: allocate one extra byte for the \0 2021-01-19 16:56:55 +01:00
Wim Taymans
9a03f8769e pw-cli: handle unquoted strings
Use parse_string for everything else to use it as a string value.
Make it possible to use short name for the param.

so now you can do:

pw-cli set-param 55 Props '{ channelVolumes: [ 0.3, 0.3 ], channelMap: [ FR,FL ] }'
2021-01-08 12:23:02 +01:00
Wim Taymans
1e9b152bb5 spa: make an extra level for arrays
Make a level with type info for the array elements.
2020-12-01 13:30:14 +01:00
Wim Taymans
95718792c4 pw-cli: implement set_param
You can do something like this to set some params:

pw-cli set-param 46 13 '{ "index": 5,
                          "props": { "mute": false,
			             "channelMap": [ "FL", "LFE" ]
				   },
	                  "direction": "Output"
			}'
2020-11-30 13:31:46 +01:00
Wim Taymans
b3aa346063 handle core error better
Use the PW_ID_CORE constant
Quit the mainloop when server disconnected in the tools

See #395
2020-11-20 12:29:51 +01:00
Wim Taymans
1570e62635 remove hooks from objects
Remove the hooks we installed on objects in the destroy/free event
or before calling _destroy. This is not really needed but it is
a nice thing to do because it calls the hook removed callbacks.
2020-11-06 15:53:32 +01:00
Wim Taymans
91d4806611 permission: add some helpers
Add PW_PERM_ALL as a shortcut for all permissions
Add PW_PERMISSION_FORMAT and PW_PERMISSION_ARGS to nicely format
permissions.
2020-07-30 16:26:29 +02:00
Wim Taymans
3eb37320c9 pw-cli: improve permission debug 2020-07-16 17:46:47 +02:00
Wim Taymans
9caccb6125 pw-cli: quit when we quit 2020-07-16 12:49:17 +02:00
Wim Taymans
30571d4706 tools: fix some leaks 2020-06-04 12:35:16 +02:00
Wim Taymans
60742d7542 pw-cli: allocate nodes ids of the right size 2020-05-20 15:24:25 +02:00
Wim Taymans
d31c057b42 Remove some useless checks 2020-05-20 15:24:25 +02:00
Wim Taymans
ce98162ed2 Make sure we don't read too much 2020-05-20 15:24:25 +02:00
Wim Taymans
d68e7ed58a tools: handle connection error 2020-04-22 11:28:32 +02:00
Wim Taymans
7927a66fdd tools: improve error reporting 2020-04-04 20:23:42 +02:00
Wim Taymans
b87c0a9270 clean up options
make sure we can use -v for verbose mode
2020-04-02 14:34:02 +02:00
Gleb Popov
b552863ec9 Don't include alloca.h on FreeBSD. 2020-03-31 12:16:45 +02:00
Wim Taymans
413bda908a pw-cli: continue after parsed options 2020-03-25 18:00:50 +01:00
Wim Taymans
c292a6d54e pw-cli: add non-interactive mode
You can now pass a command to pw-cli and it will execute immediately
and exit.

Fixes #195
2020-03-25 11:17:02 +01:00
Wim Taymans
646088b90c tools: add getopt argument parsing
Add some help, version, remote options for tools
Add option for output filename in pw-profiler
Add option to start pw-cli as daemon or not, make it connect to the
default PipeWire instance by default (instead of local instance)
2020-03-24 16:36:48 +01:00
Wim Taymans
6700e332f9 Revert "pw-cli: Collect and display parameters from global symbols"
This reverts commit 3b53a6e049.
2020-03-06 16:33:50 +01:00
Wim Taymans
524f9fd96d Revert "Implement JSON/YAML command for graph tree traversal"
This reverts commit 7ead270265.
2020-03-06 16:33:36 +01:00
Wim Taymans
8644e80304 Revert "Fix change_mask string generation"
This reverts commit b445bdea27.
2020-03-06 16:33:14 +01:00
Wim Taymans
b7f952e02b Revert "Fix printf attribute compilation errors"
This reverts commit 4175191d19.
2020-03-06 16:30:32 +01:00
Wim Taymans
d880db3933 Revert "pw-cli: use core object to map id to proxy"
This reverts commit 918acd61ef.
2020-03-06 16:30:18 +01:00
Wim Taymans
e9884fcfb5 pw-*: Use user data to track param changes
Use the new param_info user field to track individual param
changes and only notify thos that changed.
2020-03-06 15:41:02 +01:00
Wim Taymans
c4b2be2aad use true and false for boolean properties
So that it's easier to convert them to booleans in introspection
code later.
2020-03-03 18:17:46 +01:00
Pantelis Antoniou
b445bdea27 Fix change_mask string generation
The change_mask string generation was buggy and confusing.
Fix it with something more usable.

Signed-off-by: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
2020-02-21 15:14:31 +01:00
Wim Taymans
918acd61ef pw-cli: use core object to map id to proxy
We can use the core object to get a proxy for a given id. From there
we can find the user data and the associated global if any.
2020-02-21 11:47:34 +01:00