Get all properties for a specific frame
| 231 | |
| 232 | // Get all properties for a specific frame |
| 233 | std::string ParametricEQ::PropertiesJSON(int64_t requested_frame) const { |
| 234 | |
| 235 | // Generate JSON properties list |
| 236 | Json::Value root = BasePropertiesJSON(requested_frame); |
| 237 | |
| 238 | // Keyframes |
| 239 | root["filter_type"] = add_property_json("Filter Type", filter_type, "int", "", NULL, 0, 3, false, requested_frame); |
| 240 | root["frequency"] = add_property_json("Frequency (Hz)", frequency.GetValue(requested_frame), "int", "", &frequency, 20, 20000, false, requested_frame); |
| 241 | root["gain"] = add_property_json("Gain (dB)", gain.GetValue(requested_frame), "int", "", &gain, -24, 24, false, requested_frame); |
| 242 | root["q_factor"] = add_property_json("Q Factor", q_factor.GetValue(requested_frame), "float", "", &q_factor, 0, 20, false, requested_frame); |
| 243 | |
| 244 | // Add filter_type choices (dropdown style) |
| 245 | root["filter_type"]["choices"].append(add_property_choice_json("Low Pass", LOW_PASS, filter_type)); |
| 246 | root["filter_type"]["choices"].append(add_property_choice_json("High Pass", HIGH_PASS, filter_type)); |
| 247 | root["filter_type"]["choices"].append(add_property_choice_json("Low Shelf", LOW_SHELF, filter_type)); |
| 248 | root["filter_type"]["choices"].append(add_property_choice_json("High Shelf", HIGH_SHELF, filter_type)); |
| 249 | root["filter_type"]["choices"].append(add_property_choice_json("Band Pass", BAND_PASS, filter_type)); |
| 250 | root["filter_type"]["choices"].append(add_property_choice_json("Band Stop", BAND_STOP, filter_type)); |
| 251 | root["filter_type"]["choices"].append(add_property_choice_json("Peaking Notch", PEAKING_NOTCH, filter_type)); |
| 252 | |
| 253 | // Return formatted string |
| 254 | return root.toStyledString(); |
| 255 | } |