-
-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Can't change ParameterSubGroup Name in parameterChanged #312
Comments
FWIW - I've been able to get this to work in Motion using the @objc func pushButton() {
let dynamicParamAPI = _apiManager!.api(for: FxDynamicParameterAPI_v3.self) as! FxDynamicParameterAPI_v3
dynamicParamAPI.setParameter(2, name: "BOO")
}
func addParameters() throws {
let paramAPI = _apiManager!.api(for: FxParameterCreationAPI_v5.self) as! FxParameterCreationAPI_v5
paramAPI.addFloatSlider(withName: "Brightness", parameterID: 1, defaultValue: 1.0, parameterMin: 0.0, parameterMax: 100.0, sliderMin: 0.0, sliderMax: 5.0, delta: 0.1, parameterFlags: FxParameterFlags(kFxParameterFlag_DEFAULT))
paramAPI.startParameterSubGroup("Test SubGroup", parameterID: 2, parameterFlags: FxParameterFlags(kFxParameterFlag_DEFAULT))
paramAPI.addPushButton(withName: "Change Name", parameterID: 3, selector: #selector(pushButton), parameterFlags: FxParameterFlags(kFxParameterFlag_DEFAULT))
} But publishing this as a Title to Final Cut Pro doesn't work. Pressing the button doesn't update the SubGroup name. I'm guessing this is because there's no official way to publish SubGroup's in Motion - even though lots of Motion Templates do it by modifying the Motion XML. |
Interestingly, whilst this works in Motion, it doesn't in Final Cut Pro: @objc func pushButton() {
let setParamAPI = _apiManager!.api(for: FxParameterSettingAPI_v5.self) as! FxParameterSettingAPI_v5
let dynamicParamAPI = _apiManager!.api(for: FxDynamicParameterAPI_v3.self) as! FxDynamicParameterAPI_v3
setParamAPI.setParameterFlags(FxParameterFlags(kFxParameterFlag_HIDDEN), toParameter: 2)
dynamicParamAPI.setParameter(2, name: "NEW SUBGROUP NAME")
setParamAPI.setParameterFlags(FxParameterFlags(kFxParameterFlag_DEFAULT), toParameter: 2)
setParamAPI.setParameterFlags(FxParameterFlags(kFxParameterFlag_COLLAPSED), toParameter: 2)
dynamicParamAPI.setParameter(1, name: "NEW BRIGHTNESS NAME")
}
func addParameters() throws {
let paramAPI = _apiManager!.api(for: FxParameterCreationAPI_v5.self) as! FxParameterCreationAPI_v5
paramAPI.addFloatSlider(withName: "Brightness", parameterID: 1, defaultValue: 1.0, parameterMin: 0.0, parameterMax: 100.0, sliderMin: 0.0, sliderMax: 5.0, delta: 0.1, parameterFlags: FxParameterFlags(kFxParameterFlag_DEFAULT))
paramAPI.startParameterSubGroup("Test SubGroup", parameterID: 2, parameterFlags: FxParameterFlags(kFxParameterFlag_DEFAULT))
paramAPI.addPushButton(withName: "Change Name", parameterID: 3, selector: #selector(pushButton), parameterFlags: FxParameterFlags(kFxParameterFlag_DEFAULT))
paramAPI.endParameterSubGroup()
} However the group does collapse - it's just none of the names get updated. |
Note to self, I did also try using
Here's the code: @objc func pushButton() {
let actionAPI = _apiManager!.api(for: FxCustomParameterActionAPI_v4.self) as! FxCustomParameterActionAPI_v4
actionAPI.startAction(self)
let setParamAPI = _apiManager!.api(for: FxParameterSettingAPI_v5.self) as! FxParameterSettingAPI_v5
let dynamicParamAPI = _apiManager!.api(for: FxDynamicParameterAPI_v3.self) as! FxDynamicParameterAPI_v3
setParamAPI.setParameterFlags(FxParameterFlags(kFxParameterFlag_HIDDEN), toParameter: 2)
dynamicParamAPI.setParameter(2, name: "NEW SUBGROUP NAME")
setParamAPI.setParameterFlags(FxParameterFlags(kFxParameterFlag_DEFAULT), toParameter: 2)
setParamAPI.setParameterFlags(FxParameterFlags(kFxParameterFlag_COLLAPSED), toParameter: 2)
dynamicParamAPI.setParameter(1, name: "NEW BRIGHTNESS NAME")
actionAPI.endAction(self)
}
func addParameters() throws {
let paramAPI = _apiManager!.api(for: FxParameterCreationAPI_v5.self) as! FxParameterCreationAPI_v5
paramAPI.addFloatSlider(withName: "Brightness", parameterID: 1, defaultValue: 1.0, parameterMin: 0.0, parameterMax: 100.0, sliderMin: 0.0, sliderMax: 5.0, delta: 0.1, parameterFlags: FxParameterFlags(kFxParameterFlag_DEFAULT))
paramAPI.startParameterSubGroup("Test SubGroup", parameterID: 2, parameterFlags: FxParameterFlags(kFxParameterFlag_DEFAULT))
paramAPI.addPushButton(withName: "Change Name", parameterID: 3, selector: #selector(pushButton), parameterFlags: FxParameterFlags(kFxParameterFlag_DEFAULT))
paramAPI.endParameterSubGroup()
} |
Apple confirms:
|
Apple Feedback Assistant ID: FB13500374
DESCRIBE THE BUG:
You can't change a ParameterSubGroup Name using
dynamicParamAPI?.setParameter(paramID, name: "Test")
when triggered fromparameterChanged
. The code executes without error, but the Sub Group name doesn't actually change in the Final Cut Pro interface.I've also tried using
FxCustomParameterActionAPI_v4
before and aftersetParameter
, but it has no impact.TO REPRODUCE:
Create a
ParameterSubGroup
, then try and change the name of the subgroup dynamically via code.EXPECTED BEHAVIOUR:
You should be able to update the name like you can any other parameter.
SCREENSHOTS:
NA
SPECS:
ADDITIONAL COMMENTS:
None
The text was updated successfully, but these errors were encountered: