Skip to content

Commit bcf5098

Browse files
committed
grouping -> entity
Signed-off-by: Owen Williams <owilliams@mixxx.org>
1 parent c44cf03 commit bcf5098

1 file changed

Lines changed: 14 additions & 17 deletions

File tree

proposals/2025-12-02_controller_shared_data.md

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ out of scope for this first implementation.
7474
We will create a central object inside Mixxx that contains a triple-keyed map:
7575

7676
* Namespace (string)
77-
* Grouping (string)
77+
* Entity (string)
7878
* Key (string)
7979
* Value (QVariant)
8080

@@ -86,27 +86,24 @@ namespace. e.g. Two CDJ-2000's will both have a namespace like `CDJ_2000`. No
8686
two hardware mappings will have the same namespace, and we can enforce that with
8787
a precommit check.
8888

89-
#### Grouping
89+
#### Entity
9090

91-
`Grouping` is a logical value defined by the controller mapping definition. It
91+
`Entity` is a logical value defined by the controller mapping definition. It
9292
can be like a Mixxx-style group ("`[Channel1]`") but it can be any arbitrary
9393
string. Many controllers will want to define something like `deck1` to refer to
94-
a device that can itself be assigned to multiple mixxx channels. This document
95-
does not use the word `group`, instead preferring `grouping`, to try to
96-
differentiate Mixxx-style "groups" from this concept, which is a distinct
97-
abstraction.
94+
a device that can itself be assigned to multiple mixxx channels.
9895

99-
The controller mapping decides how these groups behave and Mixxx does no
100-
enforcement of them. To reiterate: even if a "grouping" "looks like" a Mixxx
96+
The controller mapping decides how these entities behave and Mixxx does no
97+
enforcement of them. To reiterate: even if an "entity" "looks like" a Mixxx
10198
group, it is not.
10299

103100
#### Key
104101

105102
`Key` is a logical value defined by the controller mapping definition. It could
106103
refer to a button, light, knob, or abstract name.
107104

108-
The controller mapping decides how these groups behave and Mixxx does no
109-
enforcement of them. Similar to "grouping", keys bear no relation to equivalent
105+
The controller mapping decides how these keys behave and Mixxx does no
106+
enforcement of them. Similar to "entity", keys bear no relation to equivalent
110107
Mixxx keys.
111108

112109
#### Example
@@ -130,7 +127,7 @@ functions:
130127

131128
excuse the pseudo-js:
132129

133-
`engine.GetSharedData(grouping: string, key: string): Error | any`
130+
`engine.GetSharedData(entity: string, key: string): Error | any`
134131

135132
`namespace` is set automatically by the engine code, so controllers can't get
136133
that wrong.
@@ -139,7 +136,7 @@ This function returns error if the value is not found.
139136

140137
#### Set
141138

142-
`engine.SetSharedData(grouping: string, key: string, value: any): void`
139+
`engine.SetSharedData(entity: string, key: string, value: any): void`
143140

144141
`namespace` is set automatically by the engine code, so controllers can't get
145142
that wrong.
@@ -155,7 +152,7 @@ prevent circular signal loops.
155152
Controllers get notified about data updates via a standard callback, which they
156153
can optionally implement:
157154

158-
`function SharedDataUpdated(grouping: string, key: string, value: any){}`
155+
`function SharedDataUpdated(entity: string, key: string, value: any){}`
159156

160157
Controllers get update calls for each updated item separately, and can handle
161158
them however they wish. There is no effect (no logging or error) If a controller
@@ -183,12 +180,12 @@ Another possibility is that we may want a "global" namespaces that all
183180
controllers can read and write to. This would be another way to support a
184181
"universal shift" button. This would have to be carefully managed to prevent
185182
collisions between controller configs. One way to do this would be to "bless"
186-
specific groupings and keys for the global namespace, and controller authors
187-
would have to add their requested global grouping/key to Mixxx.
183+
specific entities and keys for the global namespace, and controller authors
184+
would have to add their requested global entity/key to Mixxx.
188185

189186
## Alternatives
190187

191-
The original implementation did not have groupings and keys and instead had a
188+
The original implementation did not have entities and keys and instead had a
192189
single namespaced data blob that controllers had to manage themselves. This
193190
approach requires a lot more work on the part of the controller author to merge
194191
and manage the data object.

0 commit comments

Comments
 (0)