* introduce non-loop-unrolled version of function and use them when the image size is not a multiple of 12 or 16
* Remove tests for imagesize being a multiple of 16 or 12 to handle functions with unrolled loops
* Use non-unrolled functions when image size is not a multiple of 12 or 16
* use std_blend when image is odd size
* Introduce ZM_COOKIE_LIFETIME which sets the life of the SESSION cookie, instead of using what is in php.ini
* Use zm specific session functions, which are now located in includes/session.php. Be more agressive about clearing session on logout.
* Move session code to includes/session.php
* remove duplicate line
* Move is_session_open to session.php. Move code to clear a session into session.php
* improve debug line when there is a problem updating config entry
* split description into description and help text for COOKIE_LIFETIME
* Remove redirect on line. We do it in javascript on postlogin view so that we can say logging in before switching to console
* If there is a username in the session, then we are logged in, but we need to load the user object from the db. We can't just trust it from the session. The user may have been deleted and having that data in the session can be a security risk. So load the user object on every request.
* Use session_regenerate_id instead of our broken code to do the same
* Move auth code to includes/auth.php
* add autocomplete tags to username and password inputs
* Don't redirect to login if we are already viewing login. Put auth before including skin includes
* need to include session.php in auth.php
* update to php namespace
* experiment with namespaces on the Server class
* experiment with namespaces on the Server class
* Implement the ZM namespace on objects
* Implement the ZM namespace on objects
* Implement the ZM namespace on objects
* Add a control module to support the current Amcrest HTTP API
This patch adds ZoneMinder::Control::Amcrest_HTTP
This module is adapted and improved from one available on the ZoneMinder
forums.[1] It appears that a number of individuals have contributed to
it. This is an attempt to correct some of its interactions with ZM::Control
and friends as well as enhance and extend supported control features
for Amcrest cameras.
This work is based on Amcrest HTTP Protocol API Specifications
Rev. 2.12 2017-03-15
[1]https://forums.zoneminder.com/download/file.php?id=1878
* Fixing zoom methods
* Misc. cleanup of comments, etc.
* Fixing up POD, etc.
* Converting line endings to Unix
* Fixing up preset methods
The current Amcrest HTTP API does not support a Home command per se. So this
method is set up to send the camera to the first preset position. Of course,
this presupposes that the user will setup a preset #1 otherwise the command
will fail on a bad preset error.
If a future version of the API supports a true Home command, we'll adjust
at that point. For now this seems to be a useful workaround.
* Removing duplicate home method
* Adding moveAbs method
I'm putting this in, but absolute camera movement does not seem to be well
supported in the classic skin ATM. Reading
www/skins/classic/include/control_functions.php seems to indicate
a faulty implementation, unless I'm reading it wrong. I see nowhere
where the user is able to specify the absolute location to move to. Rather,
the call is passed back movement in increments of 1 unit. At least with the
Amcrest/Duhua API this would result in the camera moving to the 1* or 0* etc.
position.
moveAbsUp, Down, Left, Right, etc. Doesn't make sense given the definition
of Absolute movement.
* Adding a note about the moveMap method
This method does not appear to be implemented in the classic skin,
but we'll leave it here for future implementation. Caveat: It may
or may not work as-is.
* Fixing up zoomConTele/Wide methods
* Adding a vanilla control type for the Amcrest HTTP API
Please note that this control type matches (mostly) the currently
available control options in Amcrest_HTTP.pm. It does not match
all (or possibly any) of the control options available on a specific
Amcrest camera. The user may need to create their own control type
specific to the camera model they are using.
* Removing misplaced comment
Thanks to connortechnology for pointing this out!