diff --git a/api/APIHandler.py b/api/APIHandler.py index 59df805..a4a6f07 100644 --- a/api/APIHandler.py +++ b/api/APIHandler.py @@ -7,6 +7,7 @@ from .system import SystemAPIMixin from .user import UserAPIMixin from .ptz import PtzAPIMixin from .alarm import AlarmAPIMixin +from .image import ImageAPIMixin from resthandle import Request @@ -18,7 +19,8 @@ class APIHandler(SystemAPIMixin, RecordingAPIMixin, ZoomAPIMixin, PtzAPIMixin, - AlarmAPIMixin): + AlarmAPIMixin, + ImageAPIMixin): """ The APIHandler class is the backend part of the API, the actual API calls are implemented in Mixins. diff --git a/api/image.py b/api/image.py new file mode 100644 index 0000000..4bcfcca --- /dev/null +++ b/api/image.py @@ -0,0 +1,65 @@ + +class ImageAPIMixin: + """API calls for image settings.""" + + def set_advanced_imaging(self, + anti_flicker='Outdoor', + exposure='Auto', + gain_min=1, + gain_max=62, + shutter_min=1, + shutter_max=125, + blue_gain=128, + red_gain=128, + white_balance='Auto', + day_night='Auto', + back_light='DynamicRangeControl', + blc=128, + drc=128, + rotation=0, + mirroring=0, + nr3d=1) -> object: + """ + Sets the advanced camera settings. + :param anti_flicker: string + :param exposure: string + :param gain_min: int + :param gain_max: string + :param shutter_min: int + :param shutter_max: int + :param blue_gain: int + :param red_gain: int + :param white_balance: string + :param day_night: string + :param back_light: string + :param blc: int + :param drc: int + :param rotation: int + :param mirroring: int + :param nr3d: int + :return: response + """ + body = [{ + "cmd": "SetIsp", + "action": 0, + "param": { + "Isp": { + "channel": 0, + "antiFlicker": anti_flicker, + "exposure": exposure, + "gain": {"min": gain_min, "max": gain_max}, + "shutter": {"min": shutter_min, "max": shutter_max}, + "blueGain": blue_gain, + "redGain": red_gain, + "whiteBalance": white_balance, + "dayNight": day_night, + "backLight": back_light, + "blc": blc, + "drc": drc, + "rotation": rotation, + "mirroring": mirroring, + "nr3d": nr3d + } + } + }] + return self._execute_command('SetIsp', body) diff --git a/api/recording.py b/api/recording.py index 5d1d7d6..259e56a 100644 --- a/api/recording.py +++ b/api/recording.py @@ -69,68 +69,6 @@ class RecordingAPIMixin: }}] return self._execute_command('SetEnc', body) - def set_advanced_imaging(self, - anti_flicker='Outdoor', - exposure='Auto', - gain_min=1, - gain_max=62, - shutter_min=1, - shutter_max=125, - blue_gain=128, - red_gain=128, - white_balance='Auto', - day_night='Auto', - back_light='DynamicRangeControl', - blc=128, - drc=128, - rotation=0, - mirroring=0, - nr3d=1) -> object: - """ - Sets the advanced camera settings. - :param anti_flicker: string - :param exposure: string - :param gain_min: int - :param gain_max: string - :param shutter_min: int - :param shutter_max: int - :param blue_gain: int - :param red_gain: int - :param white_balance: string - :param day_night: string - :param back_light: string - :param blc: int - :param drc: int - :param rotation: int - :param mirroring: int - :param nr3d: int - :return: response - """ - body = [{ - "cmd": "SetIsp", - "action": 0, - "param": { - "Isp": { - "channel": 0, - "antiFlicker": anti_flicker, - "exposure": exposure, - "gain": {"min": gain_min, "max": gain_max}, - "shutter": {"min": shutter_min, "max": shutter_max}, - "blueGain": blue_gain, - "redGain": red_gain, - "whiteBalance": white_balance, - "dayNight": day_night, - "backLight": back_light, - "blc": blc, - "drc": drc, - "rotation": rotation, - "mirroring": mirroring, - "nr3d": nr3d - } - } - }] - return self._execute_command('SetIsp', body) - ########### # RTSP Stream ########### diff --git a/setup.py b/setup.py index 70c8068..98eba70 100644 --- a/setup.py +++ b/setup.py @@ -66,6 +66,7 @@ setup(name=NAME, 'api.system', 'api.user', 'api.zoom', - 'api.alarm' + 'api.alarm', + 'api.image' ] )