()
| 225 | @api.route("/settings/camera", methods=["GET", "POST"]) |
| 226 | @restricted_access |
| 227 | def cameraSettings(): |
| 228 | s = settings() |
| 229 | cm = cameraManager() |
| 230 | |
| 231 | if request.method == 'POST': |
| 232 | if "application/json" in request.headers["Content-Type"]: |
| 233 | data = request.json |
| 234 | |
| 235 | if "source" in data: |
| 236 | s.set(['camera', 'source'], data['source']) |
| 237 | |
| 238 | if "size" in data: |
| 239 | s.set(['camera', 'size'], data['size']) |
| 240 | |
| 241 | if "encoding" in data: |
| 242 | s.set(['camera', 'encoding'], data['encoding']) |
| 243 | |
| 244 | if "format" in data: |
| 245 | s.set(['camera', 'format'], data['format']) |
| 246 | |
| 247 | if "framerate" in data: |
| 248 | s.set(['camera', 'framerate'], data['framerate']) |
| 249 | |
| 250 | if "video_rotation" in data: |
| 251 | s.set(['camera', 'video-rotation'], int(data['video_rotation'])) |
| 252 | |
| 253 | if "idle_timeout" in data: |
| 254 | s.setFloat(['camera', 'inactivitySecs'], data['idle_timeout']) |
| 255 | |
| 256 | if "time_lapse" in data: |
| 257 | s.set(['camera', 'freq'], data['time_lapse']) |
| 258 | |
| 259 | s.save() |
| 260 | |
| 261 | cm.settingsChanged({ |
| 262 | 'size': s.get(['camera', 'size']), |
| 263 | 'encoding': s.get(['camera', 'encoding']), |
| 264 | 'framerate': s.get(['camera', 'framerate']), |
| 265 | 'source': s.get(['camera', 'source']), |
| 266 | 'format': s.get(['camera', 'format']), |
| 267 | 'video_rotation': s.get(['camera', 'video-rotation']) |
| 268 | }) |
| 269 | |
| 270 | return jsonify( |
| 271 | encoding= s.get(['camera', 'encoding']), |
| 272 | size= s.get(['camera', 'size']), |
| 273 | framerate= s.get(['camera', 'framerate']), |
| 274 | format= s.get(['camera', 'format']), |
| 275 | source= s.get(['camera', 'source']), |
| 276 | video_rotation= s.getInt(['camera', 'video-rotation']), |
| 277 | structure= cm.settingsStructure(), |
| 278 | time_lapse = s.get(['camera', 'freq']), |
| 279 | idle_timeout = s.get(['camera', 'inactivitySecs']) |
| 280 | ) |
| 281 | |
| 282 | @api.route("/settings/software/pin", methods=["GET", "POST"]) |
| 283 | @restricted_access |
nothing calls this directly
no test coverage detected