Get all properties for a specific frame
| 187 | |
| 188 | // Get all properties for a specific frame |
| 189 | std::string Expander::PropertiesJSON(int64_t requested_frame) const { |
| 190 | |
| 191 | // Generate JSON properties list |
| 192 | Json::Value root = BasePropertiesJSON(requested_frame); |
| 193 | |
| 194 | // Keyframes |
| 195 | root["threshold"] = add_property_json("Threshold (dB)", threshold.GetValue(requested_frame), "float", "", &threshold, -60, 0, false, requested_frame); |
| 196 | root["ratio"] = add_property_json("Ratio", ratio.GetValue(requested_frame), "float", "", &ratio, 1, 100, false, requested_frame); |
| 197 | root["attack"] = add_property_json("Attack (ms)", attack.GetValue(requested_frame), "float", "", &attack, 0.1, 100, false, requested_frame); |
| 198 | root["release"] = add_property_json("Release (ms)", release.GetValue(requested_frame), "float", "", &release, 10, 1000, false, requested_frame); |
| 199 | root["makeup_gain"] = add_property_json("Makeup gain (dB)", makeup_gain.GetValue(requested_frame), "float", "", &makeup_gain, -12, 12, false, requested_frame); |
| 200 | root["bypass"] = add_property_json("Bypass", bypass.GetValue(requested_frame), "bool", "", &bypass, 0, 1, false, requested_frame); |
| 201 | |
| 202 | // Return formatted string |
| 203 | return root.toStyledString(); |
| 204 | } |