Commit graph

124 commits

Author SHA1 Message Date
Lera Elvoé
240750c48e library groups (#151)
~~cl0ses #51~~
~~cl0ses #93~~
~~cl0ses #98~~
~~cl0ses #150~~

another change in this PR: the Deck and DeckNode classes now use manual memory management.

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/151
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-05-08 07:43:45 +00:00
Lera Elvoé
a80af97377 add toast notifications (#148)
closes #138

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/148
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-04-17 02:06:48 +00:00
Lera Elvoé
f24906715d store connections inside the deck (#147)
- node/port connections are now stored in the deck they belong to
- share the connections object between group instances for free syncing
- add compatibility code to allow loading decks made before this change
- disabled the ability to open multiple decks in the renderer for now since it'd cause problems when opening multiple decks and one of them is incompatible; to be redesigned later

closes #140

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/147
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-04-17 00:24:55 +00:00
Lera Elvoé
1ce3cd0367 add a sidebar (#146)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/146
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-04-16 15:16:38 +00:00
Lera Elvoé
ed5a0f427b add shortcuts (#145)
closes #133

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/145
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-04-14 12:40:26 +00:00
Lera Elvoé
a56280f00a add settings dialog (#144)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/144
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-04-11 15:32:13 +00:00
Lera Elvoé
a518e46b0f add a method to make group instances unique, making them independent (#143)
closes #97

when copying group nodes across decks (including in and out of groups), they become unique and completely independent copies of the original. this is done recursively, so in the case of copying:

- group X
	- contained in Deck A
	- has another group Z

into Deck B, group X will become group Y, group Z will become group W.

there is a rare bug that will sometimes cause the deck to save with no groups at all, which i haven't been able to hunt down and don't know how to replicate at the moment.

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/143
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-04-11 14:56:33 +00:00
Lera Elvoé
2ac9db8350 fix node connections not being empty on copy/paste (#142)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/142
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-04-11 06:53:51 +00:00
Eroax
82edd774a0 Extra fixes to NoTwitch Cache handling (#136)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/136
Co-authored-by: Eroax <eroaxebusiness@duck.com>
Co-committed-by: Eroax <eroaxebusiness@duck.com>
2024-04-09 06:00:49 +00:00
Eroax
8896fed2f8 Added Handling for Invalid NoTwitch Credentials (#135)
Just a quick fix that implements handling for if your Twitch authorization is invalid by adding a new signal that gets emitted, No_Twitch.invalid_auth. Which is connected to a lambda in twitch_setup_dialog that asks for authorization and opens the browser if it's received. It's not *pretty*, but it solves the problem temporarily.

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/135
Co-authored-by: Eroax <eroaxebusiness@duck.com>
Co-committed-by: Eroax <eroaxebusiness@duck.com>
2024-04-09 05:49:54 +00:00
Lera Elvoé
5a4a62ef44
make delta work with both usage types in process node
closes #128
2024-03-19 13:54:59 +03:00
Lera Elvoé
6f19a0b335
fix vector subtract 2024-03-19 13:54:54 +03:00
Lera Elvoé
badddced3e
fix obs set source transform not working wwith trigger into xform port 2024-03-19 13:54:12 +03:00
Lera Elvoé
23ada64c4a
bump version to 0.0.6 2024-03-17 13:57:33 +03:00
Lera Elvoé
aa763fa6df
fix connections typing 2024-03-17 13:47:48 +03:00
Eroax
b94c3702cc Updates NoTwitch + Implements Twitch Get Request (#124)
Patch the Array/Dictionary/Array problem with NoTwitch
Plus tweaks the existing Connected Account Info + Chat Received Nodes.
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/124
Co-authored-by: Eroax <eroaxebusiness@duck.com>
Co-committed-by: Eroax <eroaxebusiness@duck.com>
2024-03-17 10:28:54 +00:00
Lera Elvoé
edeb8e22dc add scalar math nodes (#123)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/123
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-03-17 10:09:23 +00:00
Lera Elvoé
877e29f580 add pass if equal node (#120)
closes #119

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/120
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-03-17 06:54:45 +00:00
Lera Elvoé
dbc12e431d add get source transform node and cache transform in decompose obs transform node (#118)
closes #117

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/118
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-03-16 10:09:39 +00:00
Lera Elvoé
a29e80bb9b add passthrough node (#116)
closes #85

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/116
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-03-16 09:31:27 +00:00
Lera Elvoé
822abb3d66 fix scroll offset not loading (#114)
closes #77

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/114
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-03-16 09:02:19 +00:00
Lera Elvoé
d5550be77d turn off snap and minimap by default (#113)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/113
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-03-16 08:37:55 +00:00
Lera Elvoé
0d546f4fc4 add a way to start RPC from default renderer (#112)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/112
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-03-16 08:32:28 +00:00
Lera Elvoé
6f5454bf3a
sync NoOBSWS with upstream 2024-03-16 10:26:29 +03:00
Lera Elvoé
804abfed64 add an RPC client abstraction class (#109)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/109
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-03-16 07:20:47 +00:00
Eroax
d2d55297a9 Added RPC Node Scope (#107)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/107
Co-authored-by: Eroax <eroaxebusiness@duck.com>
Co-committed-by: Eroax <eroaxebusiness@duck.com>
2024-03-16 03:54:11 +00:00
Lera Elvoé
3f5a441972 add a map of operation types to event names to RPCScope (#108)
closes #104

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/108
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-03-15 07:47:45 +00:00
Lera Elvoé
8bdd6709b4 deck and deck holder RPC scopes (#106)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/106
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-03-15 06:02:04 +00:00
Lera Elvoé
f43c5ecafd add utility method to connect to a signal safely (#103)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/103
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-03-14 06:42:02 +00:00
Lera Elvoé
18b83f5b26 fix value callback usage on output ports (#102)
fixes #100

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/102
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-03-14 06:27:49 +00:00
Lera Elvoé
a1b74410f6 rework RPC Signal Layer class (#101)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/101
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-03-14 05:54:25 +00:00
Lera Elvoé
3886414374 fix up the spinbox descriptor and switch delay node to use SceneTreeTimer (#99)
closes #76

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/99
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-03-11 06:22:55 +00:00
Lera Elvoé
677e7b36c5 add an API for buttons on ports (#96)
closes #91

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/96
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-03-06 07:50:23 +00:00
Lera Elvoé
715086f204 initial RPC renderer (#92)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/92
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-03-05 07:09:36 +00:00
Lera Elvoé
6d3cc87fad make NodeDB static (#90)
closes #88

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/90
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-02-29 19:04:21 +00:00
Lera Elvoé
d98d6f52bd add a new main scene (#89)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/89
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-02-29 18:41:53 +00:00
Lera Elvoé
7eaac0dee5
bump version to 0.0.5 2024-02-29 11:52:29 +03:00
Eroax
ba1ed2f02d Added License Link 2024-02-29 07:19:00 +00:00
Eroax
7ec5f62995 Added License to Readme 2024-02-29 07:17:58 +00:00
Lera Elvoé
ee567f106a make the obs disconnect button work (#86)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/86
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-02-29 07:09:33 +00:00
Lera Elvoé
e2822536b1
fix alias generation in NodeDB 2024-02-26 14:38:34 +03:00
Lera Elvoé
49b8a23281 add more OBS nodes, allow specifying event subscription types in OBS connection dialog (#81)
adds:
- OBS Event Received
- OBS Set Source Visible
- OBS Is Source Visible?
- OBS Set Input Settings

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/81
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-02-26 11:37:57 +00:00
Eroax
2d5fcd25f6 Reworks Twitch Nodes to work with the new Triggers Workflow. (#82)
Closes #59 by reworking Twitch Nodes to use the new Trigger workflow that allows inputs that trigger through Ports with Port.UsageType.BOTH as well the functionality for Port.UsageType.VALUE_REQUEST and Port.UsageType.TRIGGER.

Co-authored-by: Eroax <eroaxebusiness@duck>
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/82
2024-02-26 11:36:19 +00:00
Lera Elvoé
c07d810bcf be more lenient with using triggers and value requests on the same node on general and obs nodes (#78)
addresses part of #59

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/78
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-02-26 05:34:00 +00:00
Lera Elvoé
215af7232a
patch print node 2024-02-22 10:24:54 +03:00
Lera Elvoé
f57374f3e2 add send id system (#75)
addresses https://codeberg.org/StreamGraph/StreamGraph/issues/59#issuecomment-1572604

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/75
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-02-22 07:23:25 +00:00
Lera Elvoé
c7e003ffe6 make descriptor renderers into scenes (#74)
closes #60

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/74
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-02-22 06:59:23 +00:00
Lera Elvoé
df3b3c4990 silence a lot of warnings (#73)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/73
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-02-21 06:34:17 +00:00
Lera Elvoé
c3a91d0848 replace C-style boolean operators with their keyword counterparts (#72)
closes #71

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/72
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-02-21 06:11:29 +00:00
Lera Elvoé
51652ef277 add port usage type to Port (#69)
first part of addressing #59

every `Port` now has a `usage_type` field that indicates whether it can be used for triggers (eg. sending and receiving events), value requests, or both. `Deck` has an additional method to validate if a potential connection is legal, which checks for the following in order:

1. the source and target nodes are not the same node;
2. the port usage is valid (trigger to trigger, value to value, both to any);
3. the port types are compatible
4. the connection doesn't already exist

all node ports by default use the "both" usage, since that will be the most common use case (especially in cases where an input port can accept either a trigger and a value request but the output can only send one type), but it can be specified as an optional argument in `add_[input|output]_port()`

usage types are represented in the renderer by different port icons:

![image](/attachments/28d3cfe9-c62c-4dd4-937d-64dbe87cb205)

there is a reference implementation in the Compare Values and Twitch Chat Received nodes, since those were used as examples in #59. other nodes will be added as a separate PR later if this is merged, since behavior will vary greatly per node.

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/69
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-02-21 04:08:36 +00:00