Fix conflict when merging upstream master
This commit is contained in:
commit
d961831355
|
@ -44,7 +44,7 @@ include (CheckTypeSize)
|
|||
include (CheckStructHasMember)
|
||||
|
||||
# Configuration options
|
||||
mark_as_advanced(FORCE ZM_EXTRA_LIBS ZM_MYSQL_ENGINE ZM_NO_MMAP CMAKE_INSTALL_FULL_BINDIR ZM_PERL_SUBPREFIX ZM_PERL_USE_PATH ZM_TARGET_DISTRO)
|
||||
mark_as_advanced(FORCE ZM_EXTRA_LIBS ZM_MYSQL_ENGINE ZM_NO_MMAP CMAKE_INSTALL_FULL_BINDIR ZM_PERL_SUBPREFIX ZM_PERL_USE_PATH ZM_TARGET_DISTRO ZM_CONFIG_DIR)
|
||||
set(ZM_RUNDIR "/var/run/zm" CACHE PATH "Location of transient process files, default: /var/run/zm")
|
||||
set(ZM_SOCKDIR "/var/run/zm" CACHE PATH "Location of Unix domain socket files, default /var/run/zm")
|
||||
set(ZM_TMPDIR "/var/tmp/zm" CACHE PATH "Location of temporary files, default: /tmp/zm")
|
||||
|
@ -59,6 +59,7 @@ set(ZM_DB_PASS "zmpass" CACHE STRING "Password of ZoneMinder database user, defa
|
|||
set(ZM_WEB_USER "" CACHE STRING "The user apache or the local web server runs on. Leave empty for automatic detection. If that fails, you can use this variable to force")
|
||||
set(ZM_WEB_GROUP "" CACHE STRING "The group apache or the local web server runs on, Leave empty to be the same as the web user")
|
||||
# Advanced
|
||||
set(ZM_CONFIG_DIR "/${CMAKE_INSTALL_SYSCONFDIR}" CACHE PATH "Location of ZoneMinder configuration, default system config directory")
|
||||
set(ZM_EXTRA_LIBS "" CACHE STRING "A list of optional libraries, separated by semicolons, e.g. ssl;theora")
|
||||
set(ZM_MYSQL_ENGINE "InnoDB" CACHE STRING "MySQL engine to use with database, default: InnoDB")
|
||||
set(ZM_NO_MMAP "OFF" CACHE BOOL "Set to ON to not use mmap shared memory. Shouldn't be enabled unless you experience problems with the shared memory. default: OFF")
|
||||
|
@ -490,6 +491,7 @@ endif(NOT POLKIT_FOUND)
|
|||
|
||||
# Some variables that zm expects
|
||||
set(ZM_PID "${ZM_RUNDIR}/zm.pid")
|
||||
set(ZM_CONFIG "${ZM_CONFIG_DIR}/zm.conf")
|
||||
set(ZM_CONFIG "/${CMAKE_INSTALL_SYSCONFDIR}/zm.conf")
|
||||
set(VERSION "${zoneminder_VERSION}")
|
||||
set(PKGDATADIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/zoneminder")
|
||||
|
@ -539,7 +541,7 @@ else(zmconfgen_result EQUAL 0)
|
|||
endif(zmconfgen_result EQUAL 0)
|
||||
|
||||
# Install zm.conf
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/zm.conf" DESTINATION "/${CMAKE_INSTALL_SYSCONFDIR}")
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/zm.conf" DESTINATION "${ZM_CONFIG_DIR}")
|
||||
|
||||
# Uninstall target
|
||||
configure_file(
|
||||
|
|
|
@ -5,8 +5,9 @@ ACLOCAL_AMFLAGS = -I m4
|
|||
# And these to the user and group of your webserver
|
||||
webuser = @WEB_USER@
|
||||
webgroup = @WEB_GROUP@
|
||||
zmconfigdir = @ZM_CONFIG_DIR@
|
||||
|
||||
sysconf_DATA = \
|
||||
zmconfig_DATA = \
|
||||
zm.conf
|
||||
|
||||
SUBDIRS = \
|
||||
|
@ -22,7 +23,7 @@ EXTRA_DIST = \
|
|||
|
||||
# Yes, you are correct. This is a HACK!
|
||||
install-data-hook:
|
||||
( cd $(DESTDIR)$(sysconfdir); chown $(webuser):$(webgroup) $(sysconf_DATA); chmod 600 $(sysconf_DATA) )
|
||||
( cd $(DESTDIR)$(zmconfigdir); chown $(webuser):$(webgroup) $(zmconfig_DATA); chmod 600 $(zmconfig_DATA) )
|
||||
( if ! test -e $(DESTDIR)$(ZM_RUNDIR); then mkdir -p $(DESTDIR)$(ZM_RUNDIR); fi; if test "$(DESTDIR)$(ZM_RUNDIR)" != "/var/run"; then chown $(webuser):$(webgroup) $(DESTDIR)$(ZM_RUNDIR); chmod u+w $(DESTDIR)$(ZM_RUNDIR); fi )
|
||||
( if ! test -e $(DESTDIR)$(ZM_SOCKDIR); then mkdir -p $(DESTDIR)$(ZM_SOCKDIR); fi; if test "$(DESTDIR)$(ZM_SOCKDIR)" != "/var/run"; then chown $(webuser):$(webgroup) $(DESTDIR)$(ZM_SOCKDIR); chmod u+w $(DESTDIR)$(ZM_SOCKDIR); fi )
|
||||
( if ! test -e $(DESTDIR)$(ZM_TMPDIR); then mkdir -m 700 -p $(DESTDIR)$(ZM_TMPDIR); fi; if test "$(DESTDIR)$(ZM_TMPDIR)" != "/tmp" && test "$(DESTDIR)$(ZM_TMPDIR)" != "/var/tmp"; then chown $(webuser):$(webgroup) $(DESTDIR)$(ZM_TMPDIR); chmod u+w $(DESTDIR)$(ZM_TMPDIR); fi )
|
||||
|
|
12
configure.ac
12
configure.ac
|
@ -49,6 +49,7 @@ AC_ARG_VAR(ZM_RUNDIR,[Location of transient process files, default /var/run/zm])
|
|||
AC_ARG_VAR(ZM_SOCKDIR,[Location of Unix domain socket files, default /var/run/zm])
|
||||
AC_ARG_VAR(ZM_TMPDIR,[Location of temporary files, default /var/tmp/zm])
|
||||
AC_ARG_VAR(ZM_LOGDIR,[Location of generated log files, default /var/log/zm])
|
||||
AC_ARG_VAR(ZM_CONFIG_DIR,[Location of ZoneMinder configuration, default system config directory])
|
||||
|
||||
if test "$ZM_DB_TYPE" == ""; then
|
||||
AC_SUBST(ZM_DB_TYPE,[mysql])
|
||||
|
@ -83,6 +84,10 @@ fi
|
|||
if test "$ZM_LOGDIR" == ""; then
|
||||
AC_SUBST(ZM_LOGDIR,[/var/log/zm])
|
||||
fi
|
||||
AC_DEFINE_DIR([SYSCONFDIR],[sysconfdir],[Expanded configuration directory])
|
||||
if test "$ZM_CONFIG_DIR" == ""; then
|
||||
AC_SUBST(ZM_CONFIG_DIR,[$SYSCONFDIR])
|
||||
fi
|
||||
|
||||
LIB_ARCH=lib
|
||||
AC_ARG_WITH(libarch,
|
||||
|
@ -534,8 +539,9 @@ AC_DEFINE_DIR([LIBDIR],[libdir],[Expanded library directory])
|
|||
AC_DEFINE_DIR([DATADIR],[datadir],[Expanded data directory])
|
||||
AC_SUBST(PKGDATADIR,"$DATADIR/$PACKAGE")
|
||||
AC_SUBST(ZM_PID,"$ZM_RUNDIR/zm.pid")
|
||||
AC_DEFINE_DIR([SYSCONFDIR],[sysconfdir],[Expanded configuration directory])
|
||||
AC_SUBST(ZM_CONFIG,"$SYSCONFDIR/zm.conf")
|
||||
#AC_DEFINE_DIR([SYSCONFDIR],[sysconfdir],[Expanded configuration directory])
|
||||
#AC_SUBST(ZM_CONFIG,"$SYSCONFDIR/zm.conf")
|
||||
AC_SUBST(ZM_CONFIG,"$ZM_CONFIG_DIR/zm.conf")
|
||||
|
||||
# Slight hack for non-standard perl install paths
|
||||
if test "$prefix" != "NONE"; then
|
||||
|
@ -552,7 +558,7 @@ AC_SUBST(PERL_MM_PARMS)
|
|||
AC_SUBST(EXTRA_PERL_LIB)
|
||||
|
||||
|
||||
AC_CONFIG_FILES([Makefile zm.conf zmconfgen.pl db/Makefile db/zm_create.sql misc/Makefile misc/apache.conf misc/logrotate.conf misc/syslog.conf misc/com.zoneminder.systemctl.policy misc/com.zoneminder.systemctl.rules misc/plugins.conf scripts/Makefile scripts/zm scripts/zmaudit.pl scripts/zmcontrol.pl scripts/zmdc.pl scripts/zmfilter.pl scripts/zmpkg.pl scripts/zmtrack.pl scripts/zmcamtool.pl scripts/zmsystemctl.pl scripts/zmtrigger.pl scripts/zmupdate.pl scripts/zmvideo.pl scripts/zmwatch.pl scripts/zmx10.pl scripts/zmdbbackup scripts/zmdbrestore scripts/zmeventdump scripts/zmlogrotate.conf scripts/ZoneMinder/lib/ZoneMinder/Base.pm scripts/ZoneMinder/lib/ZoneMinder/Config.pm scripts/ZoneMinder/lib/ZoneMinder/Memory.pm scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm src/Makefile src/zm_config.h src/libzmplugins.pc web/Makefile web/ajax/Makefile web/css/Makefile web/graphics/Makefile web/includes/Makefile web/includes/config.php web/js/Makefile web/lang/Makefile web/skins/Makefile web/skins/classic/Makefile web/skins/classic/ajax/Makefile web/skins/classic/css/Makefile web/skins/classic/graphics/Makefile web/skins/classic/includes/Makefile web/skins/classic/js/Makefile web/skins/classic/lang/Makefile web/skins/classic/views/Makefile web/skins/classic/views/css/Makefile web/skins/classic/views/js/Makefile web/skins/mobile/Makefile web/skins/mobile/ajax/Makefile web/skins/mobile/css/Makefile web/skins/mobile/graphics/Makefile web/skins/mobile/includes/Makefile web/skins/mobile/lang/Makefile web/skins/mobile/views/Makefile web/skins/mobile/views/css/Makefile web/tools/Makefile web/tools/mootools/Makefile web/views/Makefile web/skins/xml/Makefile web/skins/xml/views/Makefile web/skins/xml/includes/Makefile web/skins/flat/Makefile web/skins/flat/ajax/Makefile web/skins/flat/css/Makefile web/skins/flat/graphics/Makefile web/skins/flat/includes/Makefile web/skins/flat/js/Makefile web/skins/flat/lang/Makefile web/skins/flat/views/Makefile web/skins/flat/views/css/Makefile web/skins/flat/views/js/Makefile])
|
||||
AC_CONFIG_FILES([Makefile zm.conf zmconfgen.pl db/Makefile db/zm_create.sql misc/Makefile misc/apache.conf misc/logrotate.conf misc/syslog.conf misc/com.zoneminder.systemctl.policy misc/com.zoneminder.systemctl.rules scripts/Makefile scripts/zm scripts/zmaudit.pl scripts/zmcontrol.pl scripts/zmdc.pl scripts/zmfilter.pl scripts/zmpkg.pl scripts/zmtrack.pl scripts/zmcamtool.pl scripts/zmsystemctl.pl scripts/zmtrigger.pl scripts/zmupdate.pl scripts/zmvideo.pl scripts/zmwatch.pl scripts/zmx10.pl scripts/zmdbbackup scripts/zmdbrestore scripts/zmeventdump scripts/zmlogrotate.conf scripts/ZoneMinder/lib/ZoneMinder/Base.pm scripts/ZoneMinder/lib/ZoneMinder/Config.pm scripts/ZoneMinder/lib/ZoneMinder/Memory.pm scripts/ZoneMinder/lib/ZoneMinder/ConfigData.pm src/Makefile src/zm_config.h web/Makefile web/ajax/Makefile web/css/Makefile web/graphics/Makefile web/includes/Makefile web/includes/config.php web/js/Makefile web/lang/Makefile web/skins/Makefile web/skins/classic/Makefile web/skins/classic/ajax/Makefile web/skins/classic/css/Makefile web/skins/classic/css/classic/Makefile web/skins/classic/css/classic/views/Makefile web/skins/classic/css/flat/Makefile web/skins/classic/css/flat/views/Makefile web/skins/classic/graphics/Makefile web/skins/classic/includes/Makefile web/skins/classic/js/Makefile web/skins/classic/lang/Makefile web/skins/classic/views/Makefile web/skins/classic/views/js/Makefile web/skins/mobile/Makefile web/skins/mobile/ajax/Makefile web/skins/mobile/css/Makefile web/skins/mobile/graphics/Makefile web/skins/mobile/includes/Makefile web/skins/mobile/lang/Makefile web/skins/mobile/views/Makefile web/skins/mobile/views/css/Makefile web/tools/Makefile web/tools/mootools/Makefile web/views/Makefile web/skins/xml/Makefile web/skins/xml/views/Makefile web/skins/xml/includes/Makefile])
|
||||
|
||||
# Create the definitions for compilation and defaults for the database
|
||||
AC_CONFIG_COMMANDS([src/zm_config_defines.h],[perl ./zmconfgen.pl])
|
||||
|
|
|
@ -320,7 +320,7 @@ CREATE TABLE `Monitors` (
|
|||
`Enabled` tinyint(3) unsigned NOT NULL default '1',
|
||||
`LinkedMonitors` varchar(255) NOT NULL default '',
|
||||
`Triggers` set('X10') NOT NULL default '',
|
||||
`Device` varchar(64) NOT NULL default '',
|
||||
`Device` tinytext NOT NULL default '',
|
||||
`Channel` tinyint(3) unsigned NOT NULL default '0',
|
||||
`Format` int(10) unsigned NOT NULL default '0',
|
||||
`V4LMultiBuffer` tinyint(1) unsigned,
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
ALTER TABLE Monitors MODIFY Device tinytext;
|
|
@ -0,0 +1,51 @@
|
|||
zoneminder for Debian
|
||||
---------------------
|
||||
|
||||
There is one manual step to get the web interface working.
|
||||
You need to link /etc/zm/apache.conf to /etc/apache2/conf.d/zoneminder.conf,
|
||||
then reload the apache config (i.e. /etc/init.d/apache2 reload)
|
||||
|
||||
Changing the location for images and events
|
||||
-------------------------------------------
|
||||
|
||||
Zoneminder, in its upstream form, stores data in /usr/share/zoneminder/. This
|
||||
package modifies that by changing /usr/share/zoneminder/images and
|
||||
/usr/share/zoneminder/events to symlinks to directories under
|
||||
/var/cache/zoneminder.
|
||||
|
||||
There are numerous places these could be put and ways to do it. But, at the
|
||||
moment, if you change this, an upgrade will fail with a warning about these
|
||||
locations having changed (the reason for this was that previously, an upgrade
|
||||
would silently revert the changes and cause event loss - refer
|
||||
bug #608793).
|
||||
|
||||
If you do want to change the location, here are a couple of suggestions.
|
||||
|
||||
These lines would mount /dev/sdX1 to /video_storage, and then 'link' /video_storage
|
||||
to the locations that ZoneMinder expects them to be at.
|
||||
|
||||
/dev/sdX1 /video_storage ext4 defaults 0 2
|
||||
/video_storage/zoneminder/images /var/cache/zoneminder/images none bind 0 2
|
||||
/video_storage/zoneminder/events /var/cache/zoneminder/events none bind 0 2
|
||||
|
||||
or if you have a separate partition for each:
|
||||
|
||||
/dev/sdX1 /var/cache/zoneminder/images ext4 defaults 0 2
|
||||
/dev/sdX2 /var/cache/zoneminder/events ext4 defaults 0 2
|
||||
|
||||
|
||||
|
||||
-- Peter Howard <pjh@northern-ridge.com.au>, Sun, 16 Jan 2010 01:35:51 +1100
|
||||
|
||||
Access to /dev/video*
|
||||
---------------------
|
||||
|
||||
For cameras which require access to /dev/video*, zoneminder may need the
|
||||
www-data user added to the video group in order to see those cameras:
|
||||
|
||||
adduser www-data video
|
||||
|
||||
Note that all web applications running on the zoneminder server will then have
|
||||
access to all video devices on the system.
|
||||
|
||||
-- Vagrant Cascadian <vagrant@debian.org> Sun, 27 Mar 2011 13:06:56 -0700
|
|
@ -0,0 +1,12 @@
|
|||
This package uses quilt to manage all modifications to the upstream source.
|
||||
Changes are stored in the source package as diffs in debian/patches and applied
|
||||
during the build.
|
||||
|
||||
See /usr/share/doc/quilt/README.source for a detailed explanation.
|
||||
|
||||
|
||||
This package uses the version 3.0 of the debian source package; An upstream
|
||||
tarball is required to build it. This tarball can be generated automagically by
|
||||
downloading the sources from the github repository with the following command:
|
||||
|
||||
fakeroot debian/rules get-orig-source
|
|
@ -0,0 +1,9 @@
|
|||
Alias /zm /usr/share/zoneminder
|
||||
|
||||
<Directory /usr/share/zoneminder>
|
||||
php_flag register_globals off
|
||||
Options Indexes FollowSymLinks
|
||||
<IfModule mod_dir.c>
|
||||
DirectoryIndex index.php
|
||||
</IfModule>
|
||||
</Directory>
|
|
@ -0,0 +1,33 @@
|
|||
zoneminder (1.28.0-0.2) testing; urgency=medium
|
||||
|
||||
* Non-maintainer upload.
|
||||
* Upstream release for debian jessie
|
||||
* Package dependencies updated
|
||||
* debhelper version upgraded
|
||||
* Standards-Version upgraded
|
||||
* Use debhelper commands instead of standard commands
|
||||
* Install man pages in /usr/share/man (patch added)
|
||||
* Switch to quilt
|
||||
* Switch to systemd
|
||||
* Some lintian fixes
|
||||
|
||||
-- Emmanuel Papin <manupap01@gmail.com> Wed, 26 Nov 2014 00:26:01 +0100
|
||||
|
||||
zoneminder (1.28.0-0.1) stable; urgency=medium
|
||||
|
||||
* Release
|
||||
|
||||
-- Isaac Connor <iconnor@connortechnology.com> Fri, 17 Oct 2014 09:27:22 -0400
|
||||
|
||||
zoneminder (1.27.99+1-testing-SNAPSHOT2014072901) testing; urgency=medium
|
||||
|
||||
* improve error messages
|
||||
* Make zmupdate re-run the most recent patch so that people running the daily builds get their db updates
|
||||
|
||||
-- Isaac Connor <iconnor@connortechnology.com> Tue, 29 Jul 2014 14:50:20 -0400
|
||||
|
||||
zoneminder (1.27.0+1-testing-v4ltomonitor-1) testing; urgency=high
|
||||
|
||||
* Snapshot release -
|
||||
|
||||
-- Isaac Connor <iconnor@connortechnology.com> Wed, 09 Jul 2014 21:35:29 -0400
|
|
@ -0,0 +1 @@
|
|||
9
|
|
@ -0,0 +1,40 @@
|
|||
Source: zoneminder
|
||||
Section: net
|
||||
Priority: optional
|
||||
Maintainer: Isaac Connor <iconnor@connortechnology.com>
|
||||
Build-Depends: debhelper (>= 9), dh-systemd (>= 1.5), autoconf, automake, quilt, libphp-serialization-perl, libgnutls28-dev, libmysqlclient-dev | libmariadbclient-dev, libdbd-mysql-perl, libdate-manip-perl, libwww-perl, libjpeg8-dev|libjpeg9-dev|libjpeg62-turbo-dev, libpcre3-dev, libavcodec-dev, libavformat-dev (>= 3:0.svn20090204), libswscale-dev (>= 3:0.svn20090204), libavutil-dev, libv4l-dev (>= 0.8.3), libbz2-dev, libtool, libsys-mmap-perl, ffmpeg | libav-tools, libnetpbm10-dev, libavdevice-dev, libdevice-serialport-perl, libarchive-zip-perl, libmime-lite-perl, dh-autoreconf, libvlccore-dev, libvlc-dev, libcurl4-gnutls-dev | libcurl4-nss-dev | libcurl4-openssl-dev, libgcrypt11-dev|libgcrypt20-dev, libpolkit-gobject-1-dev
|
||||
Standards-Version: 3.9.6
|
||||
|
||||
Package: zoneminder
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, apache2, libapache2-mod-php5 | libapache2-mod-fcgid, php5, php5-mysql|php5-mysqlnd, libphp-serialization-perl, libdate-manip-perl, libmime-lite-perl, libmime-tools-perl, mariadb-client|mysql-client, libwww-perl, libarchive-tar-perl, libarchive-zip-perl, libdevice-serialport-perl, libpcre3, ffmpeg | libav-tools, rsyslog | system-log-daemon, libmodule-load-perl, libsys-mmap-perl, libjson-any-perl, netpbm, libavdevice55, libjpeg8|libjpeg9|libjpeg62-turbo, zip, libnet-sftp-foreign-perl, libio-pty-perl, libexpect-perl, libvlccore8, libvlc5, libcurl4-gnutls-dev | libcurl4-nss-dev | libcurl4-openssl-dev, liburi-encode-perl, libgcrypt11|libgcrypt20, libpolkit-gobject-1-0, policykit-1
|
||||
Recommends: mysql-server|mariadb-server
|
||||
Description: Video camera security and surveillance solution
|
||||
ZoneMinder is intended for use in single or multi-camera video security
|
||||
applications, including commercial or home CCTV, theft prevention and child
|
||||
or family member or home monitoring and other care scenarios. It
|
||||
supports capture, analysis, recording, and monitoring of video data coming
|
||||
from one or more video or network cameras attached to a Linux system.
|
||||
ZoneMinder also support web and semi-automatic control of Pan/Tilt/Zoom
|
||||
cameras using a variety of protocols. It is suitable for use as a home
|
||||
video security system and for commercial or professional video security
|
||||
and surveillance. It can also be integrated into a home automation system
|
||||
via X.10 or other protocols.
|
||||
|
||||
Package: zoneminder-dbg
|
||||
Priority: extra
|
||||
Section: debug
|
||||
Architecture: any
|
||||
Depends: zoneminder (= ${binary:Version}), ${misc:Depends}
|
||||
Description: Debugging symbols for zoneminder.
|
||||
ZoneMinder is a video camera security and surveillance solution.
|
||||
ZoneMinder is intended for use in single or multi-camera video security
|
||||
applications, including commercial or home CCTV, theft prevention and child
|
||||
or family member or home monitoring and other care scenarios. It
|
||||
supports capture, analysis, recording, and monitoring of video data coming
|
||||
from one or more video or network cameras attached to a Linux system.
|
||||
ZoneMinder also support web and semi-automatic control of Pan/Tilt/Zoom
|
||||
cameras using a variety of protocols. It is suitable for use as a home
|
||||
video security system and for commercial or professional video security
|
||||
and surveillance. It can also be integrated into a home automation system
|
||||
via X.10 or other protocols.
|
|
@ -0,0 +1,22 @@
|
|||
Copyright:
|
||||
|
||||
Copyright 2002 Philip Coombes <philip.coombes@zoneminder.com>
|
||||
|
||||
License:
|
||||
|
||||
This package is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
This package is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public
|
||||
License along with this package; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
On Debian GNU/Linux systems, the text of the GPL can be found in
|
||||
/usr/share/common-licenses/GPL.
|
|
@ -0,0 +1 @@
|
|||
README.md
|
|
@ -0,0 +1,15 @@
|
|||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -437,10 +437,10 @@
|
||||
PERL_SITE_LIB=`perl -V:installsitelib | sed -e "s/.*='\(.*\)';/\1/"`
|
||||
PERL_LIB_PATH=`echo $PERL_SITE_LIB | sed -e "s|^$PERL_SITE_PREFIX||"`
|
||||
EXTRA_PERL_LIB="use lib '$prefix$PERL_LIB_PATH'; # Include custom perl install path"
|
||||
- PERL_MM_PARMS="PREFIX=$prefix"
|
||||
+ PERL_MM_PARMS="\"PREFIX=$prefix INSTALLDIRS=vendor\""
|
||||
else
|
||||
EXTRA_PERL_LIB="# Include from system perl paths only"
|
||||
- PERL_MM_PARMS=
|
||||
+ PERL_MM_PARMS="\"INSTALLDIRS=vendor\""
|
||||
fi
|
||||
AC_SUBST(PERL_MM_PARMS)
|
||||
AC_SUBST(EXTRA_PERL_LIB)
|
|
@ -0,0 +1 @@
|
|||
01_vendor-perl.diff
|
|
@ -0,0 +1,147 @@
|
|||
#!/usr/bin/make -f
|
||||
# -*- makefile -*-
|
||||
# Sample debian/rules that uses debhelper.
|
||||
# This file was originally written by Joey Hess and Craig Small.
|
||||
# As a special exception, when this file is copied by dh-make into a
|
||||
# dh-make output file, you may use that output file without restriction.
|
||||
# This special exception was added by Craig Small in version 0.37 of dh-make.
|
||||
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
# These are used for cross-compiling and for saving the configure script
|
||||
# from having to guess our platform (since we know it already)
|
||||
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
|
||||
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
|
||||
|
||||
CFLAGS = -Wall
|
||||
CPPFLAGS = -D__STDC_CONSTANT_MACROS
|
||||
CXXFLAGS = -DHAVE_LIBCRYPTO
|
||||
|
||||
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
|
||||
DEBOPT = --enable-debug
|
||||
CFLAGS += -g
|
||||
CXXFLAGS += -g
|
||||
else
|
||||
DEBOPT =
|
||||
endif
|
||||
|
||||
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
|
||||
CFLAGS += -O0
|
||||
else
|
||||
CFLAGS += -O2
|
||||
endif
|
||||
|
||||
# These are used to get the most recent version of the original sources from github
|
||||
UURL = $(shell git config --get remote.origin.url)
|
||||
BRANCH = $(shell git rev-parse --abbrev-ref HEAD)
|
||||
HEAD = $(shell git rev-parse HEAD)
|
||||
PKD = $(abspath $(dir $(MAKEFILE_LIST)))
|
||||
PKG = $(word 2,$(shell dpkg-parsechangelog -l$(PKD)/changelog | grep ^Source))
|
||||
VER ?= $(shell dpkg-parsechangelog -l$(PKD)/changelog | perl -ne 'print $$1 if m{^Version:\s+(?:\d+:)?(\d.*)(?:\-\d+.*)};')
|
||||
DTYPE =
|
||||
TARBALL = ../$(PKG)_$(VER)$(DTYPE).orig.tar.xz
|
||||
|
||||
%:
|
||||
dh $@ --with quilt,autoreconf,systemd
|
||||
|
||||
override_dh_auto_configure:
|
||||
CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" dh_auto_configure -- \
|
||||
--host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) \
|
||||
--sysconfdir=/etc/zm --prefix=/usr --mandir=\$${prefix}/share/man \
|
||||
--infodir=\$${prefix}/share/info --with-mysql=/usr \
|
||||
--with-mariadb=/usr --with-webdir=/usr/share/zoneminder \
|
||||
--with-ffmpeg=/usr --with-cgidir=/usr/lib/cgi-bin \
|
||||
--with-webuser=www-data --with-webgroup=www-data \
|
||||
--enable-crashtrace=no --enable-mmap=yes $(DEBOPT)
|
||||
|
||||
override_dh_clean:
|
||||
# Add here commands to clean up after the build process.
|
||||
[ ! -f Makefile ] || $(MAKE) distclean
|
||||
dh_clean src/zm_config_defines.h
|
||||
#
|
||||
# Delete remaining auto-generated Makefile if Makefile.in exists
|
||||
find $(CURDIR)/ -type f -name "Makefile" | while read file; do \
|
||||
[ -f $$file.in ] && rm -f $$file; \
|
||||
done || true
|
||||
#
|
||||
# Delete remaining auto-generated Makefile.in if Makefile.am exists
|
||||
find $(CURDIR)/ -type f -name "Makefile.in" | while read filein; do \
|
||||
fileam=`echo $$filein | sed 's/\(.*\)\.in/\1\.am/'`; \
|
||||
[ -f $$fileam ] && rm -f $$filein; \
|
||||
done || true
|
||||
|
||||
override_dh_install:
|
||||
#
|
||||
# NOTE: This is a short-term kludge; hopefully changes in the next
|
||||
# upstream version will render this unnecessary.
|
||||
rm -rf debian/zoneminder/usr/share/zoneminder/events
|
||||
rm -rf debian/zoneminder/usr/share/zoneminder/images
|
||||
rm -rf debian/zoneminder/usr/share/zoneminder/temp
|
||||
dh_link var/cache/zoneminder/events usr/share/zoneminder/events
|
||||
dh_link var/cache/zoneminder/images usr/share/zoneminder/images
|
||||
dh_link var/cache/zoneminder/temp usr/share/zoneminder/temp
|
||||
|
||||
#
|
||||
# This is a slightly lesser kludge; moving the cgi stuff to
|
||||
# /usr/share/zoneminder/cgi-bin breaks one set of behavior,
|
||||
# having it just in /usr/lib/cgi-bin breaks another bit of
|
||||
# behavior.
|
||||
#
|
||||
dh_link usr/lib/cgi-bin usr/share/zoneminder/cgi-bin
|
||||
|
||||
dh_install --fail-missing
|
||||
|
||||
override_dh_fixperms:
|
||||
dh_fixperms
|
||||
chown root:root debian/zoneminder/etc/zm/zm.conf
|
||||
|
||||
override_dh_auto_test:
|
||||
# do not run tests...
|
||||
|
||||
override_dh_systemd_start:
|
||||
dh_systemd_start --restart-after-upgrade
|
||||
|
||||
.PHONY: override_dh_strip
|
||||
override_dh_strip:
|
||||
dh_strip --dbg-package=zoneminder-dbg
|
||||
|
||||
# Inspired by https://wiki.debian.org/onlyjob/get-orig-source
|
||||
.PHONY: get-orig-source
|
||||
get-orig-source: $(TARBALL) $(info I: $(PKG)_$(VER)$(DTYPE))
|
||||
@
|
||||
|
||||
$(TARBALL):
|
||||
$(if $(wildcard $(PKG)-$(VER)),$(error folder '$(PKG)-$(VER)' exists, aborting...))
|
||||
@echo "# Cloning origin repository..."; \
|
||||
if ! git clone $(UURL) $(PKG)-$(VER); then \
|
||||
$(RM) -r $(PKG)-$(VER); \
|
||||
echo "failed to clone repository, aborting..."; \
|
||||
false; \
|
||||
fi
|
||||
@if [ $(BRANCH) != "master" ]; then \
|
||||
cd $(PKG)-$(VER); \
|
||||
echo "# Not on master branch, fetching origin branch '$(BRANCH)'..."; \
|
||||
git fetch origin $(BRANCH):$(BRANCH) || false; \
|
||||
echo "# Switching to branch '$(BRANCH)'..."; \
|
||||
git checkout $(BRANCH) || false; \
|
||||
fi
|
||||
@echo "# Checking local source..."
|
||||
@if [ $$(cd $(PKG)-$(VER) && git rev-parse HEAD) = $(HEAD) ]; then \
|
||||
echo "even with origin, ok"; \
|
||||
true; \
|
||||
else \
|
||||
echo "not even with origin, aborting..."; \
|
||||
false; \
|
||||
fi
|
||||
@echo "# Setting times..."
|
||||
@cd $(PKG)-$(VER) \
|
||||
&& for F in $$(git ls-tree -r --name-only HEAD | sed -e "s/\s/\*/g"); do \
|
||||
touch --no-dereference -d "$$(git log -1 --format="%ai" -- $$F)" "$$F"; \
|
||||
done
|
||||
@echo "# Cleaning-up..."
|
||||
cd $(PKG)-$(VER) && $(RM) -r .git
|
||||
@echo "# Packing file '$(TARBALL)'..."
|
||||
@find -L "$(PKG)-$(VER)" -xdev -type f -print | sort \
|
||||
| XZ_OPT="-6v" tar -caf "$(TARBALL)" -T- --owner=root --group=root --mode=a+rX \
|
||||
&& $(RM) -r "$(PKG)-$(VER)"
|
|
@ -0,0 +1 @@
|
|||
3.0 (quilt)
|
|
@ -0,0 +1,2 @@
|
|||
unapply-patches
|
||||
abort-on-upstream-changes
|
|
@ -0,0 +1 @@
|
|||
extend-diff-ignore = "(^|/)(config\.sub|config\.guess|Makefile|aclocal.m4|compile|config.h.in|configure|depcomp|install-sh|missing)$"
|
|
@ -0,0 +1,3 @@
|
|||
version=3
|
||||
http://www.zoneminder.com/downloads.html \
|
||||
.*/ZoneMinder-(.*).tar.gz
|
|
@ -0,0 +1,6 @@
|
|||
var/log/zm
|
||||
var/lib/zm
|
||||
var/cache/zoneminder/events
|
||||
var/cache/zoneminder/images
|
||||
var/cache/zoneminder/temp
|
||||
usr/share/zoneminder/db
|
|
@ -0,0 +1,36 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Provides: zoneminder
|
||||
# Required-Start:
|
||||
# Required-Stop:
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: Do nothing more than fixing a lintian error
|
||||
# Description: This script is provided by the Zoneminder package
|
||||
# Zomeminder init configuration has been switched to systemd
|
||||
# This dummy script can be safely deleted; It does nothing
|
||||
# more than fixing a lintian error when testing the package
|
||||
### END INIT INFO
|
||||
|
||||
. /lib/lsb/init-functions
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
;;
|
||||
stop)
|
||||
;;
|
||||
status)
|
||||
;;
|
||||
restart|reload)
|
||||
;;
|
||||
force-reload)
|
||||
;;
|
||||
*)
|
||||
echo "Usage: ${0:-} {start|stop|status|restart|reload|force-reload}" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
usr/bin
|
||||
usr/lib/cgi-bin
|
||||
usr/share/man
|
||||
usr/share/perl5/ZoneMinder
|
||||
usr/share/perl5/ZoneMinder.pm
|
||||
usr/share/polkit-1/actions
|
||||
usr/share/polkit-1/rules.d
|
||||
usr/share/zoneminder/ajax
|
||||
usr/share/zoneminder/css
|
||||
usr/share/zoneminder/db
|
||||
usr/share/zoneminder/graphics
|
||||
usr/share/zoneminder/includes
|
||||
usr/share/zoneminder/index.php
|
||||
usr/share/zoneminder/js
|
||||
usr/share/zoneminder/lang
|
||||
usr/share/zoneminder/skins
|
||||
usr/share/zoneminder/tools
|
||||
usr/share/zoneminder/views
|
||||
etc/zm
|
||||
db/zm_create.sql usr/share/zoneminder/db
|
||||
db/zm_update-*.sql usr/share/zoneminder/db
|
||||
debian/apache.conf etc/zm
|
|
@ -0,0 +1,4 @@
|
|||
var/cache/zoneminder/events usr/share/zoneminder/events
|
||||
var/cache/zoneminder/images usr/share/zoneminder/images
|
||||
var/cache/zoneminder/temp usr/share/zoneminder/temp
|
||||
usr/lib/cgi-bin usr/share/zoneminder/cgi-bin
|
|
@ -0,0 +1,68 @@
|
|||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
apache_install() {
|
||||
mkdir -p /etc/apache2/conf-available
|
||||
ln -sf ../../zm/apache.conf /etc/apache2/conf-available/zoneminder.conf
|
||||
|
||||
COMMON_STATE=$(dpkg-query -f '${Status}' -W 'apache2.2-common' 2>/dev/null | awk '{print $3}' || true)
|
||||
|
||||
if [ -e /usr/share/apache2/apache2-maintscript-helper ] ; then
|
||||
. /usr/share/apache2/apache2-maintscript-helper
|
||||
apache2_invoke enconf zoneminder
|
||||
elif [ "$COMMON_STATE" = "installed" ] || [ "$COMMON_STATE" = "unpacked" ] ; then
|
||||
[ -d /etc/apache2/conf.d/ ] && [ ! -L /etc/apache2/conf.d/zoneminder.conf ] && ln -s ../conf-available/zoneminder.conf /etc/apache2/conf.d/zoneminder.conf
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$1" = "configure" ]; then
|
||||
if [ -e "/etc/init.d/mysql" ]; then
|
||||
#
|
||||
# Get mysql started if it isn't
|
||||
#
|
||||
if ! $(/etc/init.d/mysql status >/dev/null 2>&1); then
|
||||
invoke-rc.d mysql start
|
||||
fi
|
||||
if $(/etc/init.d/mysql status >/dev/null 2>&1); then
|
||||
mysqladmin --defaults-file=/etc/mysql/debian.cnf -f reload
|
||||
# test if database if already present...
|
||||
if ! $(echo quit | mysql --defaults-file=/etc/mysql/debian.cnf zm > /dev/null 2> /dev/null) ; then
|
||||
cat /usr/share/zoneminder/db/zm_create.sql | mysql --defaults-file=/etc/mysql/debian.cnf
|
||||
echo 'grant lock tables, alter,select,insert,update,delete on zm.* to 'zmuser'@localhost identified by "zmpass";' | mysql --defaults-file=/etc/mysql/debian.cnf mysql
|
||||
fi
|
||||
|
||||
deb-systemd-invoke stop zoneminder.service || true
|
||||
zmupdate.pl --nointeractive
|
||||
|
||||
else
|
||||
echo 'NOTE: mysql not running, please start mysql and run dpkg-reconfigure zoneminder when it is running.'
|
||||
fi
|
||||
else
|
||||
echo 'mysql not found, assuming remote server.'
|
||||
fi
|
||||
chown www-data:www-data /var/log/zm
|
||||
chown www-data:www-data /var/lib/zm/
|
||||
if [ -z "$2" ]; then
|
||||
chown www-data:www-data -R /var/cache/zoneminder
|
||||
fi
|
||||
fi
|
||||
# Ensure zoneminder is stopped...
|
||||
deb-systemd-invoke stop zoneminder.service || exit $?
|
||||
|
||||
if [ "$1" = "configure" ]; then
|
||||
if [ -z "$2" ]; then
|
||||
chown www-data:www-data /var/log/zm
|
||||
chown www-data:www-data /var/lib/zm/
|
||||
chown www-data:www-data -R /var/cache/zoneminder
|
||||
else
|
||||
chown www-data:www-data /var/log/zm
|
||||
zmupdate.pl
|
||||
fi
|
||||
apache_install $1
|
||||
a2enmod cgi >/dev/null 2>&1
|
||||
if [ -f /etc/init.d/apache2 ] ; then
|
||||
invoke-rc.d apache2 reload 3>/dev/null || true
|
||||
fi
|
||||
fi
|
||||
#DEBHELPER#
|
|
@ -0,0 +1,32 @@
|
|||
#! /bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
apache_remove() {
|
||||
COMMON_STATE=$(dpkg-query -f '${Status}' -W 'apache2.2-common' 2>/dev/null | awk '{print $3}' || true)
|
||||
if [ -e /usr/share/apache2/apache2-maintscript-helper ] ; then
|
||||
. /usr/share/apache2/apache2-maintscript-helper
|
||||
apache2_invoke disconf zoneminder
|
||||
elif [ "$COMMON_STATE" = "installed" ] || [ "$COMMON_STATE" = "unpacked" ] ; then
|
||||
rm -f /etc/apache2/conf.d/zoneminder.conf
|
||||
fi
|
||||
rm -f /etc/apache2/conf-available/zoneminder.conf
|
||||
}
|
||||
|
||||
if [ "$1" = "remove" ] || [ "$1" = "purge" ]; then
|
||||
apache_remove $1
|
||||
if [ -f /etc/init.d/apache2 ] ; then
|
||||
invoke-rc.d apache2 reload 3>/dev/null || true
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$1" = "purge" ]; then
|
||||
if [ -e "/etc/init.d/mysql" ]; then
|
||||
echo 'delete from user where User="zmuser";' | mysql --defaults-file=/etc/mysql/debian.cnf mysql
|
||||
echo 'delete from db where User="zmuser";' | mysql --defaults-file=/etc/mysql/debian.cnf mysql
|
||||
mysqladmin --defaults-file=/etc/mysql/debian.cnf -f drop zm
|
||||
else
|
||||
echo 'mysql not found, assuming remote server.'
|
||||
fi
|
||||
fi
|
||||
#DEBHELPER#
|
|
@ -0,0 +1,32 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
abort=false
|
||||
if [ -L /usr/share/zoneminder/events ]; then
|
||||
l=$(readlink /usr/share/zoneminder/events)
|
||||
if [ "$l" != "/var/cache/zoneminder/events" ]; then
|
||||
abort=true
|
||||
fi
|
||||
fi
|
||||
if [ -L /usr/share/zoneminder/images ]; then
|
||||
l=$(readlink /usr/share/zoneminder/images )
|
||||
if [ "$l" != "/var/cache/zoneminder/images" ]; then
|
||||
abort=true
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$abort" = "true" ]; then
|
||||
cat >&2 << EOF
|
||||
Aborting installation of zoneminder due to non-default symlinks in
|
||||
/usr/share/zoneminder for the images and/or events directory, which could
|
||||
result in loss of data. Please move your data in each of these directories to
|
||||
/var/cache/zoneminder before installing zoneminder from the package.
|
||||
EOF
|
||||
exit 1
|
||||
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
|
@ -0,0 +1,18 @@
|
|||
# ZoneMinder systemd unit file
|
||||
# This file is intended to work with debian distributions
|
||||
|
||||
[Unit]
|
||||
Description=ZoneMinder CCTV recording and security system
|
||||
After=network.target mysql.service apache2.service
|
||||
Requires=mysql.service apache2.service
|
||||
|
||||
[Service]
|
||||
User=www-data
|
||||
Type=forking
|
||||
ExecStart=/usr/bin/zmpkg.pl start
|
||||
ExecReload=/usr/bin/zmpkg.pl restart
|
||||
ExecStop=/bin/bash -c '[[ "$(/usr/bin/pgrep zmdc.pl)" > 0 ]] && /usr/bin/zmpkg.pl stop'
|
||||
PIDFile=/var/run/zm/zm.pid
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
|
@ -0,0 +1 @@
|
|||
d /var/run/zm 0755 www-data www-data
|
|
@ -20,8 +20,6 @@
|
|||
# This module contains the implementation of the Trendnet TV-IP672PI IP camera control
|
||||
# protocol. Also works or TV-IP862IC
|
||||
#
|
||||
#
|
||||
#
|
||||
# For Zoneminder 1.26+
|
||||
#
|
||||
# Under control capability:
|
||||
|
@ -69,9 +67,10 @@ our @ISA = qw(ZoneMinder::Control);
|
|||
#
|
||||
# Finally, the username is the username you'd like to authenticate as.
|
||||
#
|
||||
our $REALM = "TV-IP862IC";
|
||||
our $USERNAME = "admin";
|
||||
|
||||
our $REALM = 'TV-IP862IC';
|
||||
our $USERNAME = 'admin';
|
||||
our $PASSWORD = '';
|
||||
our $ADDRESS = '';
|
||||
|
||||
# ==========================================================================
|
||||
#
|
||||
|
@ -82,8 +81,6 @@ our $USERNAME = "admin";
|
|||
use ZoneMinder::Logger qw(:all);
|
||||
use ZoneMinder::Config qw(:all);
|
||||
|
||||
use Time::HiRes qw( usleep );
|
||||
|
||||
sub new
|
||||
{
|
||||
my $class = shift;
|
||||
|
@ -112,13 +109,29 @@ sub AUTOLOAD
|
|||
sub open
|
||||
{
|
||||
my $self = shift;
|
||||
|
||||
$self->loadMonitor();
|
||||
|
||||
my ( $protocol, $username, $password, $address ) = $self->{Monitor}->{ControlAddress} =~ /^(https?:\/\/)?([^:]+):([^\/@]+)@(.*)$/;
|
||||
if ( $username ) {
|
||||
$USERNAME = $username;
|
||||
$PASSWORD = $password;
|
||||
$ADDRESS = $address;
|
||||
} else {
|
||||
Error( "Failed to parse auth from address");
|
||||
$ADDRESS = $self->{Monitor}->{ControlAddress};
|
||||
}
|
||||
if ( ! $ADDRESS =~ /:/ ) {
|
||||
Error( "You generally need to also specify the port. I will append :80" );
|
||||
$ADDRESS .= ':80';
|
||||
}
|
||||
|
||||
use LWP::UserAgent;
|
||||
$self->{ua} = LWP::UserAgent->new;
|
||||
$self->{ua}->agent( "ZoneMinder Control Agent/".$ZoneMinder::Base::ZM_VERSION );
|
||||
$self->{state} = 'open';
|
||||
# credentials: ("ip:port" (no prefix!), realm (string), username (string), password (string)
|
||||
Debug ( "sendCmd credentials control address:'".$ADDRESS."' realm:'" . $REALM . "' username:'" . $USERNAME . "' password:'".$PASSWORD."'");
|
||||
$self->{ua}->credentials($ADDRESS,$REALM,$USERNAME,$PASSWORD);
|
||||
}
|
||||
|
||||
sub close
|
||||
|
@ -146,18 +159,10 @@ sub sendCmd
|
|||
|
||||
my $result = undef;
|
||||
|
||||
Debug ( $cmd, "Tx" );
|
||||
my $url = "http://".$ADDRESS."/cgi/ptdc.cgi?command=".$cmd;
|
||||
my $req = HTTP::Request->new( GET=>$url );
|
||||
|
||||
my $ua = LWP::UserAgent->new();
|
||||
|
||||
my $req = HTTP::Request->new( GET=>"http://".$self->{Monitor}->{ControlAddress}."/cgi/ptdc.cgi?command=".$cmd );
|
||||
|
||||
# credentials: ("ip:port" (no prefix!), realm (string), username (string), password (string)
|
||||
$self->{ua}->credentials($self->{Monitor}->{ControlAddress},$REALM,$USERNAME,$self->{Monitor}->{ControlDevice});
|
||||
|
||||
Debug ( "sendCmd credentials control address:'".$self->{Monitor}->{ControlAddress}."' realm:'" . $REALM . "' username:'" . $USERNAME . "' password:'".$self->{Monitor}->{ControlDevice}."'");
|
||||
|
||||
Debug ("sendCmd command: " . $cmd);
|
||||
Debug ("sendCmd command: " . $url );
|
||||
|
||||
my $res = $self->{ua}->request($req);
|
||||
|
||||
|
@ -165,10 +170,13 @@ sub sendCmd
|
|||
$result = !undef;
|
||||
} else {
|
||||
if ( $res->status_line() eq '401 Unauthorized' ) {
|
||||
Error( "Error check failed, trying again: USERNAME: $USERNAME realm: $REALM password: " . $self->{Monitor}->{ControlDevice} );
|
||||
Error( "Error check failed, trying again: USERNAME: $USERNAME realm: $REALM password: " . $PASSWORD );
|
||||
Error("Content was " . $res->content() );
|
||||
my $res = $self->{ua}->request($req);
|
||||
if ( $res->is_success ) {
|
||||
$result = !undef;
|
||||
} else {
|
||||
Error("Content was " . $res->content() );
|
||||
}
|
||||
}
|
||||
if ( ! $result ) {
|
||||
|
@ -194,7 +202,6 @@ sub sendCmdPost
|
|||
|
||||
my $result = undef;
|
||||
|
||||
|
||||
if ($url eq undef)
|
||||
{
|
||||
Error ("url passed to sendCmdPost is undefined.");
|
||||
|
@ -203,16 +210,11 @@ sub sendCmdPost
|
|||
|
||||
Debug ("sendCmdPost url: " . $url . " cmd: " . $cmd);
|
||||
|
||||
my $ua = LWP::UserAgent->new();
|
||||
|
||||
my $req = HTTP::Request->new(POST => "http://".$self->{Monitor}->{ControlAddress}.$url);
|
||||
my $req = HTTP::Request->new(POST => "http://".$ADDRESS.$url);
|
||||
$req->content_type('application/x-www-form-urlencoded');
|
||||
$req->content($cmd);
|
||||
|
||||
$self->{ua}->credentials($self->{Monitor}->{ControlAddress},$REALM,$USERNAME,$self->{Monitor}->{ControlDevice});
|
||||
|
||||
Debug ( "sendCmdPost credentials control address:'".$self->{Monitor}->{ControlAddress}."' realm:'" . $REALM . "' username:'" . $USERNAME . "'
|
||||
password:'".$self->{Monitor}->{ControlDevice}."'");
|
||||
Debug ( "sendCmdPost credentials control address:'".$ADDRESS."' realm:'" . $REALM . "' username:'" . $USERNAME . "' password:'".$PASSWORD."'");
|
||||
|
||||
my $res = $self->{ua}->request($req);
|
||||
|
||||
|
@ -222,12 +224,11 @@ password:'".$self->{Monitor}->{ControlDevice}."'");
|
|||
}
|
||||
else
|
||||
{
|
||||
Error( "Error check failed: USERNAME: $USERNAME realm: $REALM password: " . $self->{Monitor}->{ControlDevice} );
|
||||
Error( "Error check failed: '".$res->status_line()."' cmd:'".$cmd."'" );
|
||||
Error( "sendCmdPost Error check failed: '".$res->status_line()."' cmd:'".$cmd."'" );
|
||||
if ( $res->status_line() eq '401 Unauthorized' ) {
|
||||
Error( "Error check failed: USERNAME: $USERNAME realm: $REALM password: " . $self->{Monitor}->{ControlDevice} );
|
||||
Error( "sendCmdPost Error check failed: USERNAME: $USERNAME realm: $REALM password: " . $PASSWORD );
|
||||
} else {
|
||||
Error( "Error check failed: USERNAME: $USERNAME realm: $REALM password: " . $self->{Monitor}->{ControlDevice} );
|
||||
Error( "sendCmdPost Error check failed: USERNAME: $USERNAME realm: $REALM password: " . $PASSWORD );
|
||||
} # endif
|
||||
}
|
||||
|
||||
|
|
|
@ -397,6 +397,7 @@ int RtspThread::run()
|
|||
|
||||
uint32_t rtpClock = 0;
|
||||
std::string trackUrl = mUrl;
|
||||
std::string controlUrl;
|
||||
|
||||
_AVCODECID codecId;
|
||||
|
||||
|
@ -412,7 +413,7 @@ int RtspThread::run()
|
|||
#endif
|
||||
{
|
||||
// Check if control Url is absolute or relative
|
||||
std::string controlUrl = mediaDesc->getControlUrl();
|
||||
controlUrl = mediaDesc->getControlUrl();
|
||||
if (std::equal(trackUrl.begin(), trackUrl.end(), controlUrl.begin()))
|
||||
{
|
||||
trackUrl = controlUrl;
|
||||
|
@ -556,27 +557,51 @@ int RtspThread::run()
|
|||
{
|
||||
if ( ( lines[i].size() > 9 ) && ( lines[i].substr( 0, 9 ) == "RTP-Info:" ) )
|
||||
rtpInfo = trimSpaces( lines[i].substr( 9 ) );
|
||||
// Check for a timeout again. Some rtsp devices don't send a timeout until after the PLAY command is sent
|
||||
if ( ( lines[i].size() > 8 ) && ( lines[i].substr( 0, 8 ) == "Session:" ) && ( timeout == 0 ) )
|
||||
{
|
||||
StringVector sessionLine = split( lines[i].substr(9), ";" );
|
||||
if ( sessionLine.size() == 2 )
|
||||
sscanf( trimSpaces( sessionLine[1] ).c_str(), "timeout=%d", &timeout );
|
||||
if ( timeout > 0 )
|
||||
Debug( 2, "Got timeout %d secs from PLAY command response", timeout );
|
||||
}
|
||||
}
|
||||
|
||||
if ( rtpInfo.empty() )
|
||||
Fatal( "Unable to get RTP Info identifier from response '%s'", response.c_str() );
|
||||
|
||||
Debug( 2, "Got RTP Info %s", rtpInfo.c_str() );
|
||||
|
||||
int seq = 0;
|
||||
unsigned long rtpTime = 0;
|
||||
parts = split( rtpInfo.c_str(), ";" );
|
||||
for ( size_t i = 0; i < parts.size(); i++ )
|
||||
StringVector streams;
|
||||
if ( rtpInfo.empty() )
|
||||
{
|
||||
if ( startsWith( parts[i], "seq=" ) )
|
||||
Debug( 1, "RTP Info Empty. Starting values for Sequence and Rtptime shall be zero.");
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug( 2, "Got RTP Info %s", rtpInfo.c_str() );
|
||||
// More than one stream can be included in the RTP Info
|
||||
streams = split( rtpInfo.c_str(), "," );
|
||||
for ( size_t i = 0; i < streams.size(); i++ )
|
||||
{
|
||||
StringVector subparts = split( parts[i], "=" );
|
||||
seq = strtol( subparts[1].c_str(), NULL, 10 );
|
||||
}
|
||||
else if ( startsWith( parts[i], "rtptime=" ) )
|
||||
{
|
||||
StringVector subparts = split( parts[i], "=" );
|
||||
rtpTime = strtol( subparts[1].c_str(), NULL, 10 );
|
||||
// We want the stream that matches the trackUrl we are using
|
||||
if ( streams[i].find(controlUrl.c_str()) != std::string::npos )
|
||||
{
|
||||
// Parse the sequence and rtptime values
|
||||
parts = split( streams[i].c_str(), ";" );
|
||||
for ( size_t j = 0; j < parts.size(); j++ )
|
||||
{
|
||||
if ( startsWith( parts[j], "seq=" ) )
|
||||
{
|
||||
StringVector subparts = split( parts[j], "=" );
|
||||
seq = strtol( subparts[1].c_str(), NULL, 10 );
|
||||
}
|
||||
else if ( startsWith( parts[j], "rtptime=" ) )
|
||||
{
|
||||
StringVector subparts = split( parts[j], "=" );
|
||||
rtpTime = strtol( subparts[1].c_str(), NULL, 10 );
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -58,7 +58,8 @@ SessionDescriptor::DynamicPayloadDesc SessionDescriptor::smDynamicPayloads[] = {
|
|||
{ "MP4V-ES", AVMEDIA_TYPE_VIDEO, AV_CODEC_ID_MPEG4 },
|
||||
{ "mpeg4-generic", AVMEDIA_TYPE_AUDIO, AV_CODEC_ID_AAC },
|
||||
{ "H264", AVMEDIA_TYPE_VIDEO, AV_CODEC_ID_H264 },
|
||||
{ "AMR", AVMEDIA_TYPE_AUDIO, AV_CODEC_ID_AMR_NB }
|
||||
{ "AMR", AVMEDIA_TYPE_AUDIO, AV_CODEC_ID_AMR_NB },
|
||||
{ "vnd.onvif.metadata", AVMEDIA_TYPE_DATA, AV_CODEC_ID_NONE }
|
||||
};
|
||||
#else
|
||||
SessionDescriptor::StaticPayloadDesc SessionDescriptor::smStaticPayloads[] = {
|
||||
|
@ -95,7 +96,8 @@ SessionDescriptor::DynamicPayloadDesc SessionDescriptor::smDynamicPayloads[] = {
|
|||
{ "MP4V-ES", CODEC_TYPE_VIDEO, CODEC_ID_MPEG4 },
|
||||
{ "mpeg4-generic", CODEC_TYPE_AUDIO, CODEC_ID_AAC },
|
||||
{ "H264", CODEC_TYPE_VIDEO, CODEC_ID_H264 },
|
||||
{ "AMR", CODEC_TYPE_AUDIO, CODEC_ID_AMR_NB }
|
||||
{ "AMR", CODEC_TYPE_AUDIO, CODEC_ID_AMR_NB },
|
||||
{ "vnd.onvif.metadata", CODEC_TYPE_DATA, CODEC_ID_NONE }
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -326,7 +328,7 @@ SessionDescriptor::SessionDescriptor( const std::string &url, const std::string
|
|||
if ( tokens.size() < 4 )
|
||||
throw Exception( "Can't parse SDP media description '"+line+"'" );
|
||||
std::string mediaType = tokens[0];
|
||||
if ( mediaType != "audio" && mediaType != "video" )
|
||||
if ( mediaType != "audio" && mediaType != "video" && mediaType != "application" )
|
||||
throw Exception( "Unsupported media type '"+mediaType+"' in SDP media attribute '"+line+"'" );
|
||||
StringVector portTokens = split( tokens[1], "/" );
|
||||
int mediaPort = atoi(portTokens[0].c_str());
|
||||
|
@ -383,11 +385,15 @@ AVFormatContext *SessionDescriptor::generateFormatContext() const
|
|||
stream->codec->codec_type = AVMEDIA_TYPE_VIDEO;
|
||||
else if ( mediaDesc->getType() == "audio" )
|
||||
stream->codec->codec_type = AVMEDIA_TYPE_AUDIO;
|
||||
else if ( mediaDesc->getType() == "application" )
|
||||
stream->codec->codec_type = AVMEDIA_TYPE_DATA;
|
||||
#else
|
||||
if ( mediaDesc->getType() == "video" )
|
||||
stream->codec->codec_type = CODEC_TYPE_VIDEO;
|
||||
else if ( mediaDesc->getType() == "audio" )
|
||||
stream->codec->codec_type = CODEC_TYPE_AUDIO;
|
||||
else if ( mediaDesc->getType() == "application" )
|
||||
stream->codec->codec_type = CODEC_TYPE_DATA;
|
||||
#endif
|
||||
|
||||
if ( mediaDesc->getPayloadType() < PAYLOAD_TYPE_DYNAMIC )
|
||||
|
|
|
@ -32,7 +32,11 @@ void Usage()
|
|||
fprintf( stderr, "zmc -d <device_path> or -r <proto> -H <host> -P <port> -p <path> or -f <file_path> or -m <monitor_id>\n" );
|
||||
|
||||
fprintf( stderr, "Options:\n" );
|
||||
#if defined(BSD)
|
||||
fprintf( stderr, " -d, --device <device_path> : For local cameras, device to access. E.g /dev/bktr0 etc\n" );
|
||||
#else
|
||||
fprintf( stderr, " -d, --device <device_path> : For local cameras, device to access. E.g /dev/video0 etc\n" );
|
||||
#endif
|
||||
fprintf( stderr, " -r <proto> -H <host> -P <port> -p <path> : For remote cameras\n" );
|
||||
fprintf( stderr, " -f, --file <file_path> : For local images, jpg file to access.\n" );
|
||||
fprintf( stderr, " -m, --monitor <monitor_id> : For sources associated with a single monitor\n" );
|
||||
|
|
|
@ -141,6 +141,12 @@ bool ValidateAccess( User *user, int mon_id, int function )
|
|||
|
||||
int main( int argc, char *argv[] )
|
||||
{
|
||||
if ( access(ZM_CONFIG, R_OK) != 0 )
|
||||
{
|
||||
fprintf( stderr, "Can't open %s: %s\n", ZM_CONFIG, strerror(errno) );
|
||||
exit( -1 );
|
||||
}
|
||||
|
||||
self = argv[0];
|
||||
|
||||
srand( getpid() * time( 0 ) );
|
||||
|
|
|
@ -247,20 +247,20 @@ function outputVideoStream( $id, $src, $width, $height, $format, $title="" )
|
|||
if ( isWindows() )
|
||||
{
|
||||
?>
|
||||
<object id="<?= $id ?>" width="<?= validNum($width) ?>" height="<?= validNum($height) ?>"
|
||||
<object id="<?php echo $id ?>" width="<?php echo validNum($width) ?>" height="<?php echo validNum($height) ?>"
|
||||
classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95"
|
||||
codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,0,02,902"
|
||||
standby="Loading Microsoft Windows Media Player components..."
|
||||
type="<?= $mimeType ?>">
|
||||
<param name="FileName" value="<?= $src ?>"/>
|
||||
type="<?php echo $mimeType ?>">
|
||||
<param name="FileName" value="<?php echo $src ?>"/>
|
||||
<param name="autoStart" value="1"/>
|
||||
<param name="showControls" value="0"/>
|
||||
<embed type="<?= $mimeType ?>"
|
||||
<embed type="<?php echo $mimeType ?>"
|
||||
pluginspage="http://www.microsoft.com/Windows/MediaPlayer/"
|
||||
src="<?= $src ?>"
|
||||
name="<?= validHtmlStr($title) ?>"
|
||||
width="<?= validNum($width) ?>"
|
||||
height="<?= validInt($height) ?>"
|
||||
src="<?php echo $src ?>"
|
||||
name="<?php echo validHtmlStr($title) ?>"
|
||||
width="<?php echo validNum($width) ?>"
|
||||
height="<?php echo validInt($height) ?>"
|
||||
autostart="1"
|
||||
showcontrols="0">
|
||||
</embed>
|
||||
|
@ -273,19 +273,19 @@ showcontrols="0">
|
|||
case "video/quicktime" :
|
||||
{
|
||||
?>
|
||||
<object id="<?= $id ?>" width="<?= $width ?>" height="<?= $height ?>"
|
||||
<object id="<?php echo $id ?>" width="<?php echo $width ?>" height="<?php echo $height ?>"
|
||||
classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"
|
||||
codebase="http://www.apple.com/qtactivex/qtplugin.cab"
|
||||
type="<?= $mimeType ?>">
|
||||
<param name="src" value="<?= $src ?>"/>
|
||||
type="<?php echo $mimeType ?>">
|
||||
<param name="src" value="<?php echo $src ?>"/>
|
||||
<param name="autoplay" VALUE="true"/>
|
||||
<param name="controller" VALUE="false"/>
|
||||
<embed type="<?= $mimeType ?>"
|
||||
src="<?= $src ?>"
|
||||
<embed type="<?php echo $mimeType ?>"
|
||||
src="<?php echo $src ?>"
|
||||
pluginspage="http://www.apple.com/quicktime/download/"
|
||||
name="<?= validHtmlStr($title) ?>"
|
||||
width="<?= validInt($width) ?>"
|
||||
height="<?= validInt($height) ?>"
|
||||
name="<?php echo validHtmlStr($title) ?>"
|
||||
width="<?php echo validInt($width) ?>"
|
||||
height="<?php echo validInt($height) ?>"
|
||||
autoplay="true"
|
||||
controller="true">
|
||||
</embed>
|
||||
|
@ -297,19 +297,19 @@ controller="true">
|
|||
case "application/x-shockwave-flash" :
|
||||
{
|
||||
?>
|
||||
<object id="<?= $id ?>" width="<?= $width ?>" height="<?= $height ?>"
|
||||
<object id="<?php echo $id ?>" width="<?php echo $width ?>" height="<?php echo $height ?>"
|
||||
classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
|
||||
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"
|
||||
type="<?= $mimeType ?>">
|
||||
<param name="movie" value="<?= $src ?>"/>
|
||||
type="<?php echo $mimeType ?>">
|
||||
<param name="movie" value="<?php echo $src ?>"/>
|
||||
<param name="quality" value="high"/>
|
||||
<param name="bgcolor" value="#ffffff"/>
|
||||
<embed type="<?= $mimeType ?>"
|
||||
<embed type="<?php echo $mimeType ?>"
|
||||
pluginspage="http://www.macromedia.com/go/getflashplayer"
|
||||
src="<?= $src ?>"
|
||||
name="<?= validHtmlStr($title) ?>"
|
||||
width="<?= validInt($width) ?>"
|
||||
height="<?= validInt($height) ?>"
|
||||
src="<?php echo $src ?>"
|
||||
name="<?php echo validHtmlStr($title) ?>"
|
||||
width="<?php echo validInt($width) ?>"
|
||||
height="<?php echo validInt($height) ?>"
|
||||
quality="high"
|
||||
bgcolor="#ffffff">
|
||||
</embed>
|
||||
|
@ -323,11 +323,11 @@ bgcolor="#ffffff">
|
|||
if ( !$objectTag )
|
||||
{
|
||||
?>
|
||||
<embed<?= isset($mimeType)?(' type="'.$mimeType.'"'):"" ?>
|
||||
src="<?= $src ?>"
|
||||
name="<?= validHtmlStr($title) ?>"
|
||||
width="<?= validInt($width) ?>"
|
||||
height="<?= validInt($height) ?>"
|
||||
<embed<?php echo isset($mimeType)?(' type="'.$mimeType.'"'):"" ?>
|
||||
src="<?php echo $src ?>"
|
||||
name="<?php echo validHtmlStr($title) ?>"
|
||||
width="<?php echo validInt($width) ?>"
|
||||
height="<?php echo validInt($height) ?>"
|
||||
autostart="1"
|
||||
autoplay="1"
|
||||
showcontrols="0"
|
||||
|
@ -341,11 +341,11 @@ function outputImageStream( $id, $src, $width, $height, $title="" )
|
|||
{
|
||||
if ( canStreamIframe() ) {
|
||||
?>
|
||||
<iframe id="<?= $id ?>" src="<?= $src ?>" alt="<?= validHtmlStr($title) ?>" width="<?= $width ?>" height="<?= $height ?>"/>
|
||||
<iframe id="<?php echo $id ?>" src="<?php echo $src ?>" alt="<?php echo validHtmlStr($title) ?>" width="<?php echo $width ?>" height="<?php echo $height ?>"/>
|
||||
<?php
|
||||
} else {
|
||||
?>
|
||||
<img id="<?= $id ?>" src="<?= $src ?>" alt="<?= validHtmlStr($title) ?>" width="<?= $width ?>" height="<?= $height ?>"/>
|
||||
<img id="<?php echo $id ?>" src="<?php echo $src ?>" alt="<?php echo validHtmlStr($title) ?>" width="<?php echo $width ?>" height="<?php echo $height ?>"/>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
|
@ -353,9 +353,9 @@ function outputImageStream( $id, $src, $width, $height, $title="" )
|
|||
function outputControlStream( $src, $width, $height, $monitor, $scale, $target )
|
||||
{
|
||||
?>
|
||||
<form name="ctrlForm" method="post" action="<?= $_SERVER['PHP_SELF'] ?>" target="<?= $target ?>">
|
||||
<form name="ctrlForm" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>" target="<?php echo $target ?>">
|
||||
<input type="hidden" name="view" value="blank">
|
||||
<input type="hidden" name="mid" value="<?= $monitor['Id'] ?>">
|
||||
<input type="hidden" name="mid" value="<?php echo $monitor['Id'] ?>">
|
||||
<input type="hidden" name="action" value="control">
|
||||
<?php
|
||||
if ( $monitor['CanMoveMap'] )
|
||||
|
@ -377,8 +377,8 @@ function outputControlStream( $src, $width, $height, $monitor, $scale, $target )
|
|||
<?php
|
||||
}
|
||||
?>
|
||||
<input type="hidden" name="scale" value="<?= $scale ?>">
|
||||
<input type="image" src="<?= $src ?>" width="<?= $width ?>" height="<?= $height ?>">
|
||||
<input type="hidden" name="scale" value="<?php echo $scale ?>">
|
||||
<input type="image" src="<?php echo $src ?>" width="<?php echo $width ?>" height="<?php echo $height ?>">
|
||||
</form>
|
||||
<?php
|
||||
}
|
||||
|
@ -386,14 +386,14 @@ function outputControlStream( $src, $width, $height, $monitor, $scale, $target )
|
|||
function outputHelperStream( $id, $src, $width, $height, $title="" )
|
||||
{
|
||||
?>
|
||||
<applet id="<?= $id ?>" code="com.charliemouse.cambozola.Viewer"
|
||||
archive="<?= ZM_PATH_CAMBOZOLA ?>"
|
||||
<applet id="<?php echo $id ?>" code="com.charliemouse.cambozola.Viewer"
|
||||
archive="<?php echo ZM_PATH_CAMBOZOLA ?>"
|
||||
align="middle"
|
||||
width="<?= $width ?>"
|
||||
height="<?= $height ?>"
|
||||
title="<?= $title ?>">
|
||||
width="<?php echo $width ?>"
|
||||
height="<?php echo $height ?>"
|
||||
title="<?php echo $title ?>">
|
||||
<param name="accessories" value="none"/>
|
||||
<param name="url" value="<?= $src ?>"/>
|
||||
<param name="url" value="<?php echo $src ?>"/>
|
||||
</applet>
|
||||
<?php
|
||||
}
|
||||
|
@ -401,16 +401,16 @@ title="<?= $title ?>">
|
|||
function outputImageStill( $id, $src, $width, $height, $title="" )
|
||||
{
|
||||
?>
|
||||
<img id="<?= $id ?>" src="<?= $src ?>" alt="<?= $title ?>" width="<?= $width ?>" height="<?= $height ?>"/>
|
||||
<img id="<?php echo $id ?>" src="<?php echo $src ?>" alt="<?php echo $title ?>" width="<?php echo $width ?>" height="<?php echo $height ?>"/>
|
||||
<?php
|
||||
}
|
||||
|
||||
function outputControlStill( $src, $width, $height, $monitor, $scale, $target )
|
||||
{
|
||||
?>
|
||||
<form name="ctrlForm" method="post" action="<?= $_SERVER['PHP_SELF'] ?>" target="<?= $target ?>">
|
||||
<form name="ctrlForm" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>" target="<?php echo $target ?>">
|
||||
<input type="hidden" name="view" value="blank">
|
||||
<input type="hidden" name="mid" value="<?= $monitor['Id'] ?>">
|
||||
<input type="hidden" name="mid" value="<?php echo $monitor['Id'] ?>">
|
||||
<input type="hidden" name="action" value="control">
|
||||
<?php
|
||||
if ( $monitor['CanMoveMap'] )
|
||||
|
@ -432,8 +432,8 @@ function outputControlStill( $src, $width, $height, $monitor, $scale, $target )
|
|||
<?php
|
||||
}
|
||||
?>
|
||||
<input type="hidden" name="scale" value="<?= $scale ?>">
|
||||
<input type="image" src="<?= $src ?>" width="<?= $width ?>" height="<?= $height ?>">
|
||||
<input type="hidden" name="scale" value="<?php echo $scale ?>">
|
||||
<input type="image" src="<?php echo $src ?>" width="<?php echo $width ?>" height="<?php echo $height ?>">
|
||||
</form>
|
||||
<?php
|
||||
}
|
||||
|
@ -639,12 +639,12 @@ function buildSelect( $name, $contents, $behaviours=false )
|
|||
}
|
||||
}
|
||||
?>
|
||||
<select name="<?= $name ?>" id="<?= $name ?>"<?= $behaviourText ?>>
|
||||
<select name="<?php echo $name ?>" id="<?php echo $name ?>"<?php echo $behaviourText ?>>
|
||||
<?php
|
||||
foreach ( $contents as $contentValue => $contentText )
|
||||
{
|
||||
?>
|
||||
<option value="<?= $contentValue ?>"<?php if ( $value == $contentValue ) { ?> selected="selected"<?php } ?>><?= validHtmlStr($contentText) ?></option>
|
||||
<option value="<?php echo $contentValue ?>"<?php if ( $value == $contentValue ) { ?> selected="selected"<?php } ?>><?php echo validHtmlStr($contentText) ?></option>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
@ -1645,7 +1645,7 @@ function sidField()
|
|||
{
|
||||
list( $sessname, $sessid ) = explode( "=", SID );
|
||||
?>
|
||||
<input type="hidden" name="<?= $sessname ?>" value="<?= $sessid ?>"/>
|
||||
<input type="hidden" name="<?php echo $sessname ?>" value="<?php echo $sessid ?>"/>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
|
|
|
@ -63,6 +63,13 @@ elseif ( isset($_COOKIE['zmSkin']) )
|
|||
else
|
||||
$skin = "classic";
|
||||
|
||||
if ( isset($_GET['css']) )
|
||||
$css = $_GET['css'];
|
||||
elseif ( isset($_COOKIE['zmCSS']) )
|
||||
$css = $_COOKIE['zmCSS'];
|
||||
else
|
||||
$css = "classic";
|
||||
|
||||
define( "ZM_BASE_PATH", dirname( $_SERVER['REQUEST_URI'] ) );
|
||||
define( "ZM_SKIN_PATH", "skins/$skin" );
|
||||
|
||||
|
@ -82,6 +89,11 @@ if ( !isset($_SESSION['skin']) || isset($_REQUEST['skin']) )
|
|||
setcookie( "zmSkin", $skin, time()+3600*24*30*12*10 );
|
||||
}
|
||||
|
||||
if ( !isset($_SESSION['css']) || isset($_REQUEST['css']) ) {
|
||||
$_SESSION['css'] = $css;
|
||||
setcookie( "zmCSS", $css, time()+3600*24*30*12*10 );
|
||||
}
|
||||
|
||||
require_once( 'includes/config.php' );
|
||||
require_once( 'includes/logger.php' );
|
||||
|
||||
|
|
|
@ -614,6 +614,7 @@ $SLANG = array(
|
|||
'SignalCheckColour' => 'Signal Check Colour',
|
||||
'Size' => 'Size',
|
||||
'SkinDescription' => 'Change the default skin for this computer',
|
||||
'CSSDescription' => 'Change the default css for this computer',
|
||||
'Sleep' => 'Sleep',
|
||||
'SortAsc' => 'Asc',
|
||||
'SortBy' => 'Sort by',
|
||||
|
|
|
@ -15,8 +15,13 @@
|
|||
//Suite 330, Boston, MA 02111-1307, USA. //
|
||||
|
||||
// ZoneMinder estonian Translation by Seston seston@gmail.com
|
||||
// Kes viitsiks aidata tõlkida abitekste ja üldse kõike seda.Üksi on kuidagi igav ettevõtmine.
|
||||
// Notes for Translators
|
||||
// Who would care assistance to help to translate texts, and all this at all. Alone is somehow boring business....
|
||||
//Kes viitsiks aidata tõlkida abitekste ja üldse kõike seda.Üksi on kuidagi igav ettevõtmine....
|
||||
|
||||
// ZoneMinder Estonian Translation by Hannes hanzese@gmail.com
|
||||
// I bother because zoneminder is cool..... Mina viitsin, sest ZoneMinder on lahe.....
|
||||
|
||||
//Notes for Translators
|
||||
// 0. Get some credit, put your name in the line above (optional)
|
||||
// 1. When composing the language tokens in your language you should try and keep to roughly the
|
||||
// same length text if possible. Abbreviate where necessary as spacing is quite close in a number of places.
|
||||
|
@ -46,7 +51,7 @@
|
|||
// do this by default, uncomment this if required.
|
||||
//
|
||||
// Example
|
||||
header( "Content-Type: text/html; charset=UTF-8" );
|
||||
header( "Content-Type: text/html; charset=utf-8' );
|
||||
|
||||
// You may need to change your locale here if your default one is incorrect for the
|
||||
// language described in this file, or if you have multiple languages supported.
|
||||
|
@ -67,72 +72,71 @@ header( "Content-Type: text/html; charset=UTF-8" );
|
|||
|
||||
// Simple String Replacements
|
||||
$SLANG = array(
|
||||
'24BitColour' => '24 bit colour',
|
||||
'32BitColour' => '32 bit colour', // Added - 2011-06-15
|
||||
'8BitGrey' => '8 bit greyscale',
|
||||
'24BitColour' => '24 bit värvid',
|
||||
'32BitColour' => '32 bit värvid', // Added - 2011-06-15
|
||||
'8BitGrey' => '8 bit mustvalge',
|
||||
'Action' => 'Action',
|
||||
'Actual' => 'Actual',
|
||||
'AddNewControl' => 'Add New Control',
|
||||
'Actual' => 'Aktuaalne',
|
||||
'AddNewControl' => 'Lisa uus Kontroll',
|
||||
'AddNewMonitor' => 'Lisa uus Monitor',
|
||||
'AddNewUser' => 'Lisa uus kasutaja',
|
||||
'AddNewZone' => 'Lisa uus tsoon',
|
||||
'AddNewUser' => 'Lisa uus Kasutaja',
|
||||
'AddNewZone' => 'Lisa uus Tsoon',
|
||||
'Alarm' => 'Alarm',
|
||||
'AlarmBrFrames' => 'Alarmi<br/>kaadrid',
|
||||
'AlarmFrame' => 'Alarmi kaader',
|
||||
'AlarmFrameCount' => 'Alarm Frame Count',
|
||||
'AlarmLimits' => 'Alarm Limits',
|
||||
'AlarmMaximumFPS' => 'Alarm Maximum FPS',
|
||||
'AlarmFrameCount' => 'Alarmi kaadri hulk',
|
||||
'AlarmLimits' => 'Alarmi limiidid',
|
||||
'AlarmMaximumFPS' => 'Alarmi Maksimaalne FPS',
|
||||
'AlarmPx' => 'Alarm Px',
|
||||
'AlarmRGBUnset' => 'You must set an alarm RGB colour',
|
||||
'AlarmScore' => 'Alarme Score',
|
||||
'AlarmRGBUnset' => 'Sa pead panema alarmi RGB värvi',
|
||||
'Alert' => 'Hoiatus',
|
||||
'All' => 'All',
|
||||
'Apply' => 'Apply',
|
||||
'ApplyingStateChange' => 'Applying State Change',
|
||||
'ArchArchived' => 'Archived Only',
|
||||
'ArchUnarchived' => 'Unarchived Only',
|
||||
'Archive' => 'Archive',
|
||||
'ArchArchived' => 'Arhiveeritud Ainult',
|
||||
'ArchUnarchived' => 'Arhiveerimatta Ainult',
|
||||
'Archive' => 'Arhiiv',
|
||||
'Archived' => 'Arhiveeritud',
|
||||
'Area' => 'Ala',
|
||||
'AreaUnits' => 'Ala (px/%)',
|
||||
'AttrAlarmFrames' => 'Alarmi kaadrid',
|
||||
'AttrArchiveStatus' => 'Archive Status',
|
||||
'AttrAvgScore' => 'Avg. Score',
|
||||
'AttrCause' => 'Cause',
|
||||
'AttrArchiveStatus' => 'Arhiivi Staatus',
|
||||
'AttrAvgScore' => 'Keskm. Skoor',
|
||||
'AttrCause' => 'Põhjus',
|
||||
'AttrDate' => 'Kp.',
|
||||
'AttrDateTime' => 'Kp/Kellaaeg',
|
||||
'AttrDiskBlocks' => 'Disk Blocks',
|
||||
'AttrDiskPercent' => 'Disk Percent',
|
||||
'AttrDiskBlocks' => 'Ketta Blokk',
|
||||
'AttrDiskPercent' => 'Ketta Protsent',
|
||||
'AttrDuration' => 'Kestvus',
|
||||
'AttrFrames' => 'Kaadrid',
|
||||
'AttrId' => 'Id',
|
||||
'AttrMaxScore' => 'Max. Score',
|
||||
'AttrMonitorId' => 'Monitor Id',
|
||||
'AttrMaxScore' => 'Maks. Skoor',
|
||||
'AttrMonitorId' => 'Monitori Id',
|
||||
'AttrMonitorName' => 'Monitori Nimi',
|
||||
'AttrName' => 'Nimi',
|
||||
'AttrNotes' => 'Notes',
|
||||
'AttrSystemLoad' => 'System Load',
|
||||
'AttrNotes' => 'Märkmed',
|
||||
'AttrSystemLoad' => 'Süsteemi Koormus',
|
||||
'AttrTime' => 'Kellaaeg',
|
||||
'AttrTotalScore' => 'Total Score',
|
||||
'AttrTotalScore' => 'Skoor Kokku',
|
||||
'AttrWeekday' => 'Tööpäevad',
|
||||
'Auto' => 'Auto',
|
||||
'AutoStopTimeout' => 'Auto Stop Timeout',
|
||||
'AutoStopTimeout' => 'Auto Stop Ajalimiit',
|
||||
'Available' => 'Saadaval',
|
||||
'AvgBrScore' => 'Avg.<br/>Score',
|
||||
'AvgBrScore' => 'Keskm.<br/>Skoor',
|
||||
'Background' => 'Taust',
|
||||
'BackgroundFilter' => 'Käivita filter taustal',
|
||||
'BadAlarmFrameCount' => 'Alarm frame count must be an integer of one or more',
|
||||
'BadAlarmMaxFPS' => 'Alarm Maximum FPS must be a positive integer or floating point value',
|
||||
'BadChannel' => 'Channel must be set to an integer of zero or more',
|
||||
'BadColours' => 'Target colour must be set to a valid value', // Added - 2011-06-15
|
||||
'BadDevice' => 'Device must be set to a valid value',
|
||||
'BadFPSReportInterval' => 'FPS report interval buffer count must be an integer of 0 or more',
|
||||
'BadFormat' => 'Format must be set to a valid value',
|
||||
'BadFrameSkip' => 'Frame skip count must be an integer of zero or more',
|
||||
'BadMotionFrameSkip' => 'Motion Frame skip count must be an integer of zero or more',
|
||||
'BadHeight' => 'Height must be set to a valid value',
|
||||
'BadHost' => 'Host must be set to a valid ip address or hostname, do not include http://',
|
||||
'BadImageBufferCount' => 'Image buffer size must be an integer of 10 or more',
|
||||
'BadAlarmFrameCount' => 'Alarmi kaadri hulga ühik peab olema integer. Kas üks või rohkem',
|
||||
'BadAlarmMaxFPS' => 'Alarmi maksimaalne FPS peab olema positiivne integer või floating point väärtus',
|
||||
'BadChannel' => 'Kanal peab olema integer, null või rohkem',
|
||||
'BadColours' => 'Sihtmärgi värv peab olema pandud õige väärtus', // Added - 2011-06-15
|
||||
'BadDevice' => 'Seadmel peab olema õige väärtus',
|
||||
'BadFPSReportInterval' => 'FPS raporteerimise intervall puhvri hulk peab olema integer, null või rohkem',
|
||||
'BadFormat' => 'Formaadiks peab olema pandud õige väärtus',
|
||||
'BadFrameSkip' => 'Kaadri vahelejätmise hulk peab olema integer, null või rohkem',
|
||||
'BadMotionFrameSkip' => 'Liikumise kaadri vahelejätmise hulk peab olema integer, null või rohkem',
|
||||
'BadHeight' => 'Kõrguseks peab olema valitud õige väärtus',
|
||||
'BadHost' => 'Host ipeab olema õige. Ip aadress või hostinimi, ei tohi sisaldada http://',
|
||||
'BadImageBufferCount' => 'Pildi puhvri suurus peab olema integer, 10 või rohkem',
|
||||
'BadLabelX' => 'Label X co-ordinate must be set to an integer of zero or more',
|
||||
'BadLabelY' => 'Label Y co-ordinate must be set to an integer of zero or more',
|
||||
'BadMaxFPS' => 'Maximum FPS must be a positive integer or floating point value',
|
||||
|
@ -150,12 +154,12 @@ $SLANG = array(
|
|||
'BadWebColour' => 'Web colour must be a valid web colour string',
|
||||
'BadWidth' => 'Width must be set to a valid value',
|
||||
'Bandwidth' => 'Ribalaius',
|
||||
'BandwidthHead' => 'Bandwidth', // This is the end of the bandwidth status on the top of the console, different in many language due to phrasing
|
||||
'BandwidthHead' => 'Ribalaius', // This is the end of the bandwidth status on the top of the console, different in many language due to phrasing
|
||||
'BlobPx' => 'Blob Px',
|
||||
'BlobSizes' => 'Blob Sizes',
|
||||
'Blobs' => 'Blobs',
|
||||
'Brightness' => 'Heledus',
|
||||
'Buffers' => 'Buffer',
|
||||
'Buffers' => 'Puhver',
|
||||
'CanAutoFocus' => 'Can Auto Focus',
|
||||
'CanAutoGain' => 'Can Auto Gain',
|
||||
'CanAutoIris' => 'Can Auto Iris',
|
||||
|
@ -209,10 +213,10 @@ $SLANG = array(
|
|||
'ChoosePreset' => 'Choose Preset',
|
||||
'Clear' => 'Clear', // Added - 2011-06-16
|
||||
'Close' => 'Sule',
|
||||
'Colour' => 'Colour',
|
||||
'Command' => 'Command',
|
||||
'Component' => 'Component', // Added - 2011-06-16
|
||||
'Config' => 'Config',
|
||||
'Colour' => 'Värv',
|
||||
'Command' => 'Käsk',
|
||||
'Component' => 'Komponent', // Added - 2011-06-16
|
||||
'Config' => 'Seadistus',
|
||||
'ConfiguredFor' => 'Seadistatud',
|
||||
'ConfirmDeleteEvents' => 'Oled sa kindel kustamaks valitud sündmused?',
|
||||
'ConfirmPassword' => 'Kinnita salasõna',
|
||||
|
@ -231,74 +235,74 @@ $SLANG = array(
|
|||
'Controllable' => 'Controllable',
|
||||
'Cycle' => 'Cycle',
|
||||
'CycleWatch' => 'Cycle Watch',
|
||||
'DateTime' => 'Date/Time', // Added - 2011-06-16
|
||||
'DateTime' => 'Kuupäev/Aeg', // Added - 2011-06-16
|
||||
'Day' => 'Päevas',
|
||||
'Debug' => 'Debug',
|
||||
'DefaultRate' => 'Default Rate',
|
||||
'DefaultScale' => 'Default Scale',
|
||||
'DefaultView' => 'Default View',
|
||||
'DefaultRate' => 'Default Kiirus',
|
||||
'DefaultScale' => 'Default Suurus',
|
||||
'DefaultView' => 'Default Vaade',
|
||||
'Delete' => 'Kustuta',
|
||||
'DeleteAndNext' => 'Delete & Next',
|
||||
'DeleteAndPrev' => 'Delete & Prev',
|
||||
'DeleteAndNext' => 'Kustuta & Järgmine',
|
||||
'DeleteAndPrev' => 'Kustuta & Eelmine',
|
||||
'DeleteSavedFilter' => 'Kustuta salvestatud filter',
|
||||
'Description' => 'Kirjeldus',
|
||||
'DetectedCameras' => 'Tuvastatud kaamerad',
|
||||
'Device' => 'Device',
|
||||
'DeviceChannel' => 'Device Channel',
|
||||
'DeviceFormat' => 'Device Format',
|
||||
'DeviceNumber' => 'Device Number',
|
||||
'DevicePath' => 'Device Path',
|
||||
'Devices' => 'Devices',
|
||||
'Dimensions' => 'Dimensions',
|
||||
'Device' => 'Seade',
|
||||
'DeviceChannel' => 'Seadme Kanal,
|
||||
'DeviceFormat' => 'Seadme Formaat',
|
||||
'DeviceNumber' => 'Seadme Number',
|
||||
'DevicePath' => 'Seadme Path',
|
||||
'Devices' => 'Seadmed',
|
||||
'Dimensions' => 'Mõõdud',
|
||||
'DisableAlarms' => 'Keela alarmid',
|
||||
'Disk' => 'Disk',
|
||||
'Display' => 'Display', // Added - 2011-03-02
|
||||
'Displaying' => 'Displaying', // Added - 2011-06-16
|
||||
'Donate' => 'Please Donate',
|
||||
'DonateAlready' => 'No, I\'ve already donated',
|
||||
'DonateEnticement' => 'You\'ve been running ZoneMinder for a while now and hopefully are finding it a useful addition to your home or workplace security. Although ZoneMinder is, and will remain, free and open source, it costs money to develop and support. If you would like to help support future development and new features then please consider donating. Donating is, of course, optional but very much appreciated and you can donate as much or as little as you like.<br/><br/>If you would like to donate please select the option below or go to http://www.zoneminder.com/donate.html in your browser.<br/><br/>Thank you for using ZoneMinder and don\'t forget to visit the forums on ZoneMinder.com for support or suggestions about how to make your ZoneMinder experience even better.',
|
||||
'DonateRemindDay' => 'Not yet, remind again in 1 day',
|
||||
'DonateRemindHour' => 'Not yet, remind again in 1 hour',
|
||||
'DonateRemindMonth' => 'Not yet, remind again in 1 month',
|
||||
'DonateRemindNever' => 'No, I don\'t want to donate, never remind',
|
||||
'DonateRemindWeek' => 'Not yet, remind again in 1 week',
|
||||
'DonateYes' => 'Yes, I\'d like to donate now',
|
||||
'Disk' => 'Ketas',
|
||||
'Display' => 'Ekraan', // Added - 2011-03-02
|
||||
'Displaying' => 'Väljapanek', // Added - 2011-06-16
|
||||
'Donate' => 'Palun Anneta',
|
||||
'DonateAlready' => 'EI, Ma olen juba annetanud',
|
||||
'DonateEnticement' => 'Sa oled juba kasutanud ZoneMinderit juba mõnda aega. Nüüd kus sa oled leidnud, et see on kasulik lisa sinu kodule või sinu töökohale. Kuigi ZoneMinder on, jääb alatiseks, vabaks ja avatud lähtekoodiks, siiski selle arendamiseks kulub aega ja raha. Kui sa soovid meid aidata, siis toeta meid tuleviku arendusteks ja uute lisade loomiseks. Palun mõelge annetuse peale. Donating is, of course, optional but very much appreciated and you can donate as much or as little as you like.<br/><br/>If you would like to donate please select the option below or go to http://www.zoneminder.com/donate.html in your browser.<br/><br/>Thank you for using ZoneMinder and don\'t forget to visit the forums on ZoneMinder.com for support or suggestions about how to make your ZoneMinder experience even better.',
|
||||
'DonateRemindDay' => 'Ei veel, tuleta meelde ühe päeva pärast',
|
||||
'DonateRemindHour' => 'Ei veel, tuleta meelde ühe tunni pärast',
|
||||
'DonateRemindMonth' => 'Ei veel, tuleta meelde ühe kuu pärast',
|
||||
'DonateRemindNever' => 'EI, Ma ei taha annetada, Vahet pole',
|
||||
'DonateRemindWeek' => 'EI veel, tuleta meelde nädala pärast,
|
||||
'DonateYes' => 'Jah, Ma soovin annetada',
|
||||
'Download' => 'Lae alla',
|
||||
'DuplicateMonitorName' => 'Duplicate Monitor Name',
|
||||
'DuplicateMonitorName' => 'Dubleeri Monitori Nimi',
|
||||
'Duration' => 'Kestvus',
|
||||
'Edit' => 'Edit',
|
||||
'Edit' => 'Muuda',
|
||||
'Email' => 'Email',
|
||||
'EnableAlarms' => 'Luba Alarmid',
|
||||
'Enabled' => 'Lubatud',
|
||||
'EnterNewFilterName' => 'Sisest uue filtri nimi',
|
||||
'Error' => 'Viga',
|
||||
'ErrorBrackets' => 'Error, please check you have an equal number of opening and closing brackets',
|
||||
'ErrorValidValue' => 'Error, please check that all terms have a valid value',
|
||||
'ErrorBrackets' => 'Viga, please check you have an equal number of opening and closing brackets',
|
||||
'ErrorValidValue' => 'Viga, please check that all terms have a valid value',
|
||||
'Etc' => 'etc',
|
||||
'Event' => 'Syndmus',
|
||||
'Event' => 'Sündmus',
|
||||
'EventFilter' => 'Sündmuste filter',
|
||||
'EventId' => 'Sündmuse Id',
|
||||
'EventName' => 'Sündmuse nimi',
|
||||
'EventPrefix' => 'Event Prefix',
|
||||
'EventPrefix' => 'Sündmuse Prefix',
|
||||
'Events' => 'Sündmuseid',
|
||||
'Exclude' => 'Exclude',
|
||||
'Exclude' => 'Jäta välja',
|
||||
'Execute' => 'Käivita',
|
||||
'Export' => 'Export',
|
||||
'ExportDetails' => 'Export Event Details',
|
||||
'ExportFailed' => 'Export Failed',
|
||||
'ExportFormat' => 'Export File Format',
|
||||
'Export' => 'Eksport,
|
||||
'ExportDetails' => 'Ekspordi Sündmuste Detailid',
|
||||
'ExportFailed' => 'Eksportimine Ebaõnnestus',
|
||||
'ExportFormat' => 'Ekspordi Faili Formaat',
|
||||
'ExportFormatTar' => 'Tar',
|
||||
'ExportFormatZip' => 'Zip',
|
||||
'ExportFrames' => 'Export Frame Details',
|
||||
'ExportImageFiles' => 'Export Image Files',
|
||||
'ExportLog' => 'Export Log', // Added - 2011-06-17
|
||||
'ExportMiscFiles' => 'Export Other Files (if present)',
|
||||
'ExportOptions' => 'Export Options',
|
||||
'ExportSucceeded' => 'Export Succeeded',
|
||||
'ExportVideoFiles' => 'Export Video Files (if present)',
|
||||
'Exporting' => 'Exporting',
|
||||
'ExportFrames' => 'Ekspordi Kaadri Detailid',
|
||||
'ExportImageFiles' => 'Ekspordi Pildi Failid',
|
||||
'ExportLog' => 'Ekspordi Logi', // Added - 2011-06-17
|
||||
'ExportMiscFiles' => 'Ekspordi Teisi Faile (kui neid on)',
|
||||
'ExportOptions' => 'Ekspordi Valikud',
|
||||
'ExportSucceeded' => 'Eksportimine Õnnestus',
|
||||
'ExportVideoFiles' => 'Export Video Files (kui neid on)',
|
||||
'Exporting' => 'Eksportimine',
|
||||
'FPS' => 'fps',
|
||||
'FPSReportInterval' => 'FPS Report Interval',
|
||||
'FPSReportInterval' => 'FPS Raporteerimise Intervall,
|
||||
'FTP' => 'FTP',
|
||||
'Far' => 'Far',
|
||||
'FastForward' => 'Fast Forward',
|
||||
|
@ -329,7 +333,7 @@ $SLANG = array(
|
|||
'Format' => 'Format',
|
||||
'Frame' => 'Kaader',
|
||||
'FrameId' => 'Frame Id',
|
||||
'FrameRate' => 'Frame Rate',
|
||||
'FrameRate' => 'Kaadri Sagedus',
|
||||
'FrameSkip' => 'Frame Skip',
|
||||
'MotionFrameSkip' => 'Motion Frame Skip',
|
||||
'Frames' => 'Kaadrid',
|
||||
|
@ -361,7 +365,7 @@ $SLANG = array(
|
|||
'Hue' => 'Hue',
|
||||
'Id' => 'Id',
|
||||
'Idle' => 'Idle',
|
||||
'Ignore' => 'Ignore',
|
||||
'Ignore' => 'Ignoreeri',
|
||||
'Image' => 'Pilt',
|
||||
'ImageBufferSize' => 'Image Buffer Size (frames)',
|
||||
'Images' => 'Pildid',
|
||||
|
@ -384,18 +388,18 @@ $SLANG = array(
|
|||
'List' => 'List',
|
||||
'Load' => 'Koormus',
|
||||
'Local' => 'Local',
|
||||
'Log' => 'Log', // Added - 2011-06-16
|
||||
'Log' => 'Logi', // Added - 2011-06-16
|
||||
'LoggedInAs' => 'Sisse logitud',
|
||||
'Logging' => 'Logging', // Added - 2011-06-16
|
||||
'Logging' => 'Logimine', // Added - 2011-06-16
|
||||
'LoggingIn' => 'Login sisse',
|
||||
'Login' => 'Login',
|
||||
'Logout' => 'Logi välja',
|
||||
'Logs' => 'Logs', // Added - 2011-06-17
|
||||
'Logs' => 'Logid', // Added - 2011-06-17
|
||||
'Low' => 'Madal',
|
||||
'LowBW' => 'Low B/W',
|
||||
'Main' => 'Main',
|
||||
'Main' => 'Pea',
|
||||
'Man' => 'Man',
|
||||
'Manual' => 'Manual',
|
||||
'Manual' => 'Juhend',
|
||||
'Mark' => 'Märgi',
|
||||
'Max' => 'Max',
|
||||
'MaxBandwidth' => 'Max Ribalaius',
|
||||
|
@ -468,53 +472,53 @@ $SLANG = array(
|
|||
'Monitors' => 'Monitors',
|
||||
'Montage' => 'Montage',
|
||||
'Month' => 'Kuus',
|
||||
'More' => 'More', // Added - 2011-06-16
|
||||
'Move' => 'Move',
|
||||
'More' => 'Veel', // Added - 2011-06-16
|
||||
'Move' => 'Liiguta',
|
||||
'MtgDefault' => 'Default', // Added 2013.08.15.
|
||||
'Mtg2widgrd' => '2-wide grid', // Added 2013.08.15.
|
||||
'Mtg3widgrd' => '3-wide grid', // Added 2013.08.15.
|
||||
'Mtg4widgrd' => '4-wide grid', // Added 2013.08.15.
|
||||
'Mtg3widgrx' => '3-wide grid, scaled, enlarge on alarm', // Added 2013.08.15.
|
||||
'MustBeGe' => 'must be greater than or equal to',
|
||||
'MustBeLe' => 'must be less than or equal to',
|
||||
'MustConfirmPassword' => 'You must confirm the password',
|
||||
'MustSupplyPassword' => 'You must supply a password',
|
||||
'MustSupplyUsername' => 'You must supply a username',
|
||||
'Mtg2widgrd' => '2-pildi ruudustik', // Added 2013.08.15.
|
||||
'Mtg3widgrd' => '3-pildi ruudustik', // Added 2013.08.15.
|
||||
'Mtg4widgrd' => '4-pildi ruudustik', // Added 2013.08.15.
|
||||
'Mtg3widgrx' => '3-pildi ruudustik, skaleeritud, suurenda kui on alarm', // Added 2013.08.15.
|
||||
'MustBeGe' => 'peab olema suurem kui või võrdne ',
|
||||
'MustBeLe' => 'peab olema väiksem kui või võrdne',
|
||||
'MustConfirmPassword' => 'Sa pead kinnitama parooli',
|
||||
'MustSupplyPassword' => 'Sa pead panema parooli',
|
||||
'MustSupplyUsername' => 'Sa pead panema kasutaja nime',
|
||||
'Name' => 'Sündmus',
|
||||
'Near' => 'Near',
|
||||
'Network' => 'Network',
|
||||
'New' => 'New',
|
||||
'NewGroup' => 'New Group',
|
||||
'NewLabel' => 'New Label',
|
||||
'NewPassword' => 'New Password',
|
||||
'NewState' => 'New State',
|
||||
'NewUser' => 'New User',
|
||||
'Next' => 'Next',
|
||||
'No' => 'No',
|
||||
'NoDetectedCameras' => 'No Detected Cameras',
|
||||
'NoFramesRecorded' => 'There are no frames recorded for this event',
|
||||
'NoGroup' => 'No Group',
|
||||
'NoSavedFilters' => 'NoSavedFilters',
|
||||
'NoStatisticsRecorded' => 'There are no statistics recorded for this event/frame',
|
||||
'Near' => 'Lähedal',
|
||||
'Network' => 'Võrk',
|
||||
'New' => 'Uus',
|
||||
'NewGroup' => 'Uus Krupp',
|
||||
'NewLabel' => 'Uus Nimi',
|
||||
'NewPassword' => 'Uus Parool',
|
||||
'NewState' => 'Uus Olek',
|
||||
'NewUser' => 'Uus Kasutaja',
|
||||
'Next' => 'Järgmine',
|
||||
'No' => 'Ei',
|
||||
'NoDetectedCameras' => 'Ei leidnud kaameraid',
|
||||
'NoFramesRecorded' => 'Ei ole kaadreid salvetatud selles sündmuses',
|
||||
'NoGroup' => 'Ei krupp',
|
||||
'NoSavedFilters' => 'EiSalvestatudFiltreid',
|
||||
'NoStatisticsRecorded' => 'Ei ole statistikat salvestatud selle sündmuse/kaadri kohta',
|
||||
'None' => 'None',
|
||||
'NoneAvailable' => 'None available',
|
||||
'Normal' => 'Normal',
|
||||
'Notes' => 'Notes',
|
||||
'Normal' => 'Normaalne',
|
||||
'Notes' => 'Märkmed',
|
||||
'NumPresets' => 'Num Presets',
|
||||
'Off' => 'Off',
|
||||
'On' => 'On',
|
||||
'OpEq' => 'equal to',
|
||||
'OpGt' => 'greater than',
|
||||
'OpGtEq' => 'greater than or equal to',
|
||||
'Off' => 'Väljas',
|
||||
'On' => 'Sees',
|
||||
'OpEq' => 'Võrdne',
|
||||
'OpGt' => 'Suurem kui',
|
||||
'OpGtEq' => 'suurem kui või võrdne',
|
||||
'OpIn' => 'in set',
|
||||
'OpLt' => 'less than',
|
||||
'OpLtEq' => 'less than or equal to',
|
||||
'OpMatches' => 'matches',
|
||||
'OpNe' => 'not equal to',
|
||||
'OpLt' => 'vähem kui',
|
||||
'OpLtEq' => 'vähem kui või võrdne',
|
||||
'OpMatches' => 'klapib',
|
||||
'OpNe' => 'ei võrdne',
|
||||
'OpNotIn' => 'not in set',
|
||||
'OpNotMatches' => 'does not match',
|
||||
'Open' => 'Open',
|
||||
'OptionHelp' => 'Option Help',
|
||||
'OpNotMatches' => 'ei klapi',
|
||||
'Open' => 'Ava',
|
||||
'OptionHelp' => 'Valik Aita',
|
||||
'OptionRestartWarning' => 'These changes may not come into effect fully\nwhile the system is running. When you have\nfinished making your changes please ensure that\nyou restart ZoneMinder.',
|
||||
'Options' => 'Seaded',
|
||||
'OrEnterNewName' => 'või sisesta uus nimi',
|
||||
|
@ -532,28 +536,27 @@ $SLANG = array(
|
|||
'PasswordsDifferent' => 'The new and confirm passwords are different',
|
||||
'Paths' => 'Paths',
|
||||
'Pause' => 'Pause',
|
||||
'Phone' => 'Phone',
|
||||
'Phone' => 'Telefon',
|
||||
'PhoneBW' => 'Phone B/W',
|
||||
'Pid' => 'PID', // Added - 2011-06-16
|
||||
'PixelDiff' => 'Pixel Diff',
|
||||
'Pixels' => 'pixels',
|
||||
'Pixels' => 'pikslid',
|
||||
'Play' => 'Play',
|
||||
'PlayAll' => 'Play All',
|
||||
'PleaseWait' => 'Please Wait',
|
||||
'Plugin' => 'Plugin',
|
||||
'Plugins' => 'Plugins',
|
||||
'Point' => 'Point',
|
||||
'PlayAll' => 'Play Kõike',
|
||||
'PleaseWait' => 'Palun Oota',
|
||||
'Plugins' => 'Pluginad',
|
||||
'Point' => 'Punkt',
|
||||
'PostEventImageBuffer' => 'Post Event Image Count',
|
||||
'PreEventImageBuffer' => 'Pre Event Image Count',
|
||||
'PreserveAspect' => 'Preserve Aspect Ratio',
|
||||
'Preset' => 'Preset',
|
||||
'Presets' => 'Presets',
|
||||
'Preset' => 'Eelseatud',
|
||||
'Presets' => 'Eelseaded',
|
||||
'Prev' => 'Prev',
|
||||
'Probe' => 'Probe',
|
||||
'Protocol' => 'Protocol',
|
||||
'Rate' => 'Rate',
|
||||
'Real' => 'Real',
|
||||
'Record' => 'Record',
|
||||
'Real' => 'Reaaalne',
|
||||
'Record' => 'Salvesta',
|
||||
'RefImageBlendPct' => 'Reference Image Blend %ge',
|
||||
'Refresh' => 'Värskenda',
|
||||
'ReInitNatDet' => 'Reinit. Native Detection',
|
||||
|
@ -573,72 +576,72 @@ $SLANG = array(
|
|||
'RequireNatDet' => 'Require Native Detection',
|
||||
'Reset' => 'Reset',
|
||||
'ResetEventCounts' => 'Reset Event Counts',
|
||||
'Restart' => 'Restart',
|
||||
'Restart' => 'Taaskäivita',
|
||||
'Restarting' => 'Restarting',
|
||||
'RestrictedCameraIds' => 'Restricted Camera Ids',
|
||||
'RestrictedMonitors' => 'Restricted Monitors',
|
||||
'ReturnDelay' => 'Return Delay',
|
||||
'ReturnLocation' => 'Return Location',
|
||||
'Rewind' => 'Rewind',
|
||||
'RotateLeft' => 'Rotate Left',
|
||||
'RotateRight' => 'Rotate Right',
|
||||
'RotateLeft' => 'Pööra vasakule',
|
||||
'RotateRight' => 'Pööra paremale',
|
||||
'RunLocalUpdate' => 'Please run zmupdate.pl to update', // Added - 2011-05-25
|
||||
'RunMode' => 'Run Mode',
|
||||
'RunState' => 'Run State',
|
||||
'RunMode' => 'Käimis resiim',
|
||||
'RunState' => 'Käimis olek',
|
||||
'Running' => 'Töötab',
|
||||
'Save' => 'Save',
|
||||
'SaveAs' => 'Save as',
|
||||
'SaveFilter' => 'Save Filter',
|
||||
'Scale' => 'Scale',
|
||||
'Score' => 'Score',
|
||||
'Save' => 'Salvesta',
|
||||
'SaveAs' => 'Salvesta kui',
|
||||
'SaveFilter' => 'Salvesta Filter',
|
||||
'Scale' => 'Skaala',
|
||||
'Score' => 'Skoor',
|
||||
'Secs' => 'Secs',
|
||||
'Sectionlength' => 'Section length',
|
||||
'Select' => 'Select',
|
||||
'SelectFormat' => 'Select Format', // Added - 2011-06-17
|
||||
'SelectLog' => 'Select Log', // Added - 2011-06-17
|
||||
'SelectMonitors' => 'Select Monitors',
|
||||
'Select' => 'Selekteeri',
|
||||
'SelectFormat' => 'Selekteeri Formaat', // Added - 2011-06-17
|
||||
'SelectLog' => 'Selekteeri logi', // Added - 2011-06-17
|
||||
'SelectMonitors' => 'Selekteeri Monitorid',
|
||||
'SelfIntersecting' => 'Polygon edges must not intersect',
|
||||
'Set' => 'Set',
|
||||
'SetNewBandwidth' => 'Set New Bandwidth',
|
||||
'Set' => 'Säti',
|
||||
'SetNewBandwidth' => 'Vali uus riba laius',
|
||||
'SetPreset' => 'Set Preset',
|
||||
'Settings' => 'Settings',
|
||||
'ShowFilterWindow' => 'Show Filter Window',
|
||||
'ShowTimeline' => 'Show Timeline',
|
||||
'SignalCheckColour' => 'Signal Check Colour',
|
||||
'Size' => 'Size',
|
||||
'SkinDescription' => 'Change the default skin for this computer', // Added - 2011-03-02
|
||||
'Sleep' => 'Sleep',
|
||||
'SortAsc' => 'Asc',
|
||||
'SortBy' => 'Sort by',
|
||||
'SortDesc' => 'Desc',
|
||||
'Settings' => 'Sätted',
|
||||
'ShowFilterWindow' => 'Näita Filtri Akent',
|
||||
'ShowTimeline' => 'Näita Timeline',
|
||||
'SignalCheckColour' => 'Signaali Kontroll Värv',
|
||||
'Size' => 'Suurus',
|
||||
'SkinDescription' => 'Vaheta veebilehe välimus selles arvutis', // Added - 2011-03-02
|
||||
'Sleep' => 'Maga',
|
||||
'SortAsc' => 'Kasvav',
|
||||
'SortBy' => 'Sorteeri',
|
||||
'SortDesc' => 'Kahanev',
|
||||
'Source' => 'Allikas',
|
||||
'SourceColours' => 'Source Colours',
|
||||
'SourcePath' => 'Source Path',
|
||||
'SourceType' => 'Source Type',
|
||||
'Speed' => 'Speed',
|
||||
'SpeedHigh' => 'High Speed',
|
||||
'SpeedLow' => 'Low Speed',
|
||||
'SpeedMedium' => 'Medium Speed',
|
||||
'SpeedTurbo' => 'Turbo Speed',
|
||||
'SourceColours' => 'Allika Värvid',
|
||||
'SourcePath' => 'Allika Path',
|
||||
'SourceType' => 'Allika tüüp',
|
||||
'Speed' => 'Kiirus',
|
||||
'SpeedHigh' => 'Kiire Kiirus',
|
||||
'SpeedLow' => 'Madal Kiirus',
|
||||
'SpeedMedium' => 'Keskmine Kiirus',
|
||||
'SpeedTurbo' => 'Turbo Kiirus',
|
||||
'Start' => 'Start',
|
||||
'State' => 'State',
|
||||
'Stats' => 'Stats',
|
||||
'Status' => 'Status',
|
||||
'Step' => 'Step',
|
||||
'StepBack' => 'Step Back',
|
||||
'StepForward' => 'Step Forward',
|
||||
'StepLarge' => 'Large Step',
|
||||
'StepMedium' => 'Medium Step',
|
||||
'StepNone' => 'No Step',
|
||||
'StepSmall' => 'Small Step',
|
||||
'State' => 'Olek',
|
||||
'Stats' => 'Statistika',
|
||||
'Status' => 'Staatus',
|
||||
'Step' => 'Samm',
|
||||
'StepBack' => 'Samm tagasi',
|
||||
'StepForward' => 'Samm edasi',
|
||||
'StepLarge' => 'Suur Samm',
|
||||
'StepMedium' => 'Keskmine Samm',
|
||||
'StepNone' => 'Ei Samm',
|
||||
'StepSmall' => 'Väike Samm',
|
||||
'Stills' => 'Stills',
|
||||
'Stop' => 'Stop',
|
||||
'Stopped' => 'Stopped',
|
||||
'Stream' => 'Stream',
|
||||
'StreamReplayBuffer' => 'Stream Replay Image Buffer',
|
||||
'Stopped' => 'Stopitud',
|
||||
'Stream' => 'Striim',
|
||||
'StreamReplayBuffer' => 'Striimi Replay Pildi Puhver',
|
||||
'Submit' => 'Submit',
|
||||
'System' => 'System',
|
||||
'SystemLog' => 'System Log', // Added - 2011-06-16
|
||||
'System' => 'Süsteem',
|
||||
'SystemLog' => 'Süsteemi Logi', // Added - 2011-06-16
|
||||
'Tele' => 'Tele',
|
||||
'Thumbnail' => 'Thumbnail',
|
||||
'Tilt' => 'Tilt',
|
||||
|
@ -646,7 +649,7 @@ $SLANG = array(
|
|||
'TimeDelta' => 'Time Delta',
|
||||
'TimeStamp' => 'Time Stamp',
|
||||
'Timeline' => 'Timeline',
|
||||
'TimelineTip1' => 'Pass your mouse over the graph to view a snapshot image and event details.', // Added 2013.08.15.
|
||||
'TimelineTip1' => 'Liiguta hiir üle graafiku et näha pildi ja sündmuse detaile.', // Added 2013.08.15.
|
||||
'TimelineTip2' => 'Click on the coloured sections of the graph, or the image, to view the event.', // Added 2013.08.15.
|
||||
'TimelineTip3' => 'Click on the background to zoom in to a smaller time period based around your click.', // Added 2013.08.15.
|
||||
'TimelineTip4' => 'Use the controls below to zoom out or navigate back and forward through the time range.', // Added 2013.08.15.
|
||||
|
@ -654,56 +657,55 @@ $SLANG = array(
|
|||
'TimestampLabelFormat' => 'Timestamp Label Format',
|
||||
'TimestampLabelX' => 'Timestamp Label X',
|
||||
'TimestampLabelY' => 'Timestamp Label Y',
|
||||
'Today' => 'Today',
|
||||
'Tools' => 'Tools',
|
||||
'Total' => 'Total', // Added - 2011-06-16
|
||||
'TotalBrScore' => 'Total<br/>Score',
|
||||
'TrackDelay' => 'Track Delay',
|
||||
'TrackMotion' => 'Track Motion',
|
||||
'Triggers' => 'Triggers',
|
||||
'Today' => 'Täna',
|
||||
'Tools' => 'Tööriistad',
|
||||
'Total' => 'Summa', // Added - 2011-06-16
|
||||
'TotalBrScore' => 'Summa<br/>Skoor',
|
||||
'TrackDelay' => 'Jälgimise Viide',
|
||||
'TrackMotion' => 'Jälgi Liikumist',
|
||||
'Triggers' => 'Trigerid',
|
||||
'TurboPanSpeed' => 'Turbo Pan Speed',
|
||||
'TurboTiltSpeed' => 'Turbo Tilt Speed',
|
||||
'Type' => 'Type',
|
||||
'Unarchive' => 'Unarchive',
|
||||
'Undefined' => 'Undefined',
|
||||
'Units' => 'Units',
|
||||
'Unknown' => 'Unknown',
|
||||
'Update' => 'Update',
|
||||
'UpdateAvailable' => 'An update to ZoneMinder is available.',
|
||||
'UpdateNotNecessary' => 'No update is necessary.',
|
||||
'Updated' => 'Updated', // Added - 2011-06-16
|
||||
'Upload' => 'Upload', // Added - 2011-08-23
|
||||
'UsedPlugins' => 'Used Plugins',
|
||||
'UseFilter' => 'Use Filter',
|
||||
'Type' => 'Tüüp',
|
||||
'Unarchive' => 'Eemalda Arhiivist',
|
||||
'Undefined' => 'Defineerimatta',
|
||||
'Units' => 'Ühikud',
|
||||
'Unknown' => 'Tundmatu',
|
||||
'Update' => 'Uuenda',
|
||||
'UpdateAvailable' => 'Uuendus ZoneMinder-ile saadaval.',
|
||||
'UpdateNotNecessary' => 'Uuendus ei ole vajalik.',
|
||||
'Updated' => 'Uuendatud', // Added - 2011-06-16
|
||||
'Upload' => 'Üles laadimine', // Added - 2011-08-23
|
||||
'UseFilter' => 'Kasuta Filtrit',
|
||||
'UseFilterExprsPost' => ' filter expressions', // This is used at the end of the phrase 'use N filter expressions'
|
||||
'UseFilterExprsPre' => 'Use ', // This is used at the beginning of the phrase 'use N filter expressions'
|
||||
'User' => 'User',
|
||||
'Username' => 'Username',
|
||||
'Users' => 'Users',
|
||||
'Value' => 'Value',
|
||||
'Version' => 'Version',
|
||||
'VersionIgnore' => 'Ignore this version',
|
||||
'VersionRemindDay' => 'Remind again in 1 day',
|
||||
'VersionRemindHour' => 'Remind again in 1 hour',
|
||||
'VersionRemindNever' => 'Don\'t remind about new versions',
|
||||
'VersionRemindWeek' => 'Remind again in 1 week',
|
||||
'User' => 'Kasutaja',
|
||||
'Username' => 'Kasutajanimi',
|
||||
'Users' => 'Kasutajad',
|
||||
'Value' => 'Väärtus',
|
||||
'Version' => 'Versioon',
|
||||
'VersionIgnore' => 'Ignoreeri See Versioon',
|
||||
'VersionRemindDay' => 'Meenuta uuesti päeva pärast',
|
||||
'VersionRemindHour' => 'Meenuta uuesti tunni pärast',
|
||||
'VersionRemindNever' => 'Ära Meenuta Uuest Versioonist',
|
||||
'VersionRemindWeek' => 'Meenuta uuesti nädalapärast',
|
||||
'Video' => 'Video',
|
||||
'VideoFormat' => 'Video Format',
|
||||
'VideoGenFailed' => 'Video Generation Failed!',
|
||||
'VideoFormat' => 'Video Formaat',
|
||||
'VideoGenFailed' => 'Video Genereerimine Ebaõnnestus!!!',
|
||||
'VideoGenFiles' => 'Existing Video Files',
|
||||
'VideoGenNoFiles' => 'No Video Files Found',
|
||||
'VideoGenParms' => 'Video Generation Parameters',
|
||||
'VideoGenSucceeded' => 'Video Generation Succeeded!',
|
||||
'VideoSize' => 'Video Size',
|
||||
'View' => 'View',
|
||||
'VideoGenNoFiles' => 'Ei Leitud Video Faile',
|
||||
'VideoGenParms' => 'Video Genereerimise Parameetrid',
|
||||
'VideoGenSucceeded' => 'Video Genereerimine Õnnestus!!!',
|
||||
'VideoSize' => 'Video Suurus',
|
||||
'View' => 'Vaata',
|
||||
'ViewAll' => 'View All',
|
||||
'ViewEvent' => 'View Event',
|
||||
'ViewEvent' => 'Vaata Sündmust',
|
||||
'ViewPaged' => 'View Paged',
|
||||
'Wake' => 'Wake',
|
||||
'WarmupFrames' => 'Warmup Frames',
|
||||
'Watch' => 'Watch',
|
||||
'Web' => 'Web',
|
||||
'WebColour' => 'Web Colour',
|
||||
'Watch' => 'Vaata',
|
||||
'Web' => 'Veeb',
|
||||
'WebColour' => 'Veebi värv',
|
||||
'Week' => 'Nädalas',
|
||||
'White' => 'White',
|
||||
'WhiteBalance' => 'White Balance',
|
||||
|
@ -713,12 +715,12 @@ $SLANG = array(
|
|||
'X10ActivationString' => 'X10 Activation String',
|
||||
'X10InputAlarmString' => 'X10 Input Alarm String',
|
||||
'X10OutputAlarmString' => 'X10 Output Alarm String',
|
||||
'Y' => 'Y',
|
||||
'Yes' => 'Yes',
|
||||
'YouNoPerms' => 'You do not have permissions to access this resource.',
|
||||
'Y' => 'J',
|
||||
'Yes' => 'Jah',
|
||||
'YouNoPerms' => 'Sul ei ole õigusi kasutada seda ressurssi.',
|
||||
'Zone' => 'Tsoon',
|
||||
'ZoneAlarmColour' => 'Alarm Colour (Red/Green/Blue)',
|
||||
'ZoneArea' => 'Zone Area',
|
||||
'ZoneAlarmColour' => 'Alarmi Värv (Red"Punane"/Green"Roheline"/Blue"Sinine")',
|
||||
'ZoneArea' => 'Tsooni Ala',
|
||||
'ZoneFilterSize' => 'Filter Width/Height (pixels)',
|
||||
'ZoneMinMaxAlarmArea' => 'Min/Max Alarmed Area',
|
||||
'ZoneMinMaxBlobArea' => 'Min/Max Blob Area',
|
||||
|
@ -729,9 +731,9 @@ $SLANG = array(
|
|||
'ZoneOverloadFrames' => 'Overload Frame Ignore Count',
|
||||
'ZoneExtendAlarmFrames' => 'Extend Alarm Frame Count',
|
||||
'Zones' => 'Tsoone',
|
||||
'Zoom' => 'Zoom',
|
||||
'ZoomIn' => 'Zoom In',
|
||||
'ZoomOut' => 'Zoom Out',
|
||||
'Zoom' => 'Suurenda',
|
||||
'ZoomIn' => 'Suurenda lähemale',
|
||||
'ZoomOut' => 'Suurenda kaugemale',
|
||||
);
|
||||
|
||||
// Complex replacements with formatting and/or placements, must be passed through sprintf
|
||||
|
|
|
@ -2,6 +2,5 @@ AUTOMAKE_OPTIONS = gnu
|
|||
|
||||
SUBDIRS = \
|
||||
classic \
|
||||
flat \
|
||||
mobile \
|
||||
xml
|
||||
|
|
|
@ -2,7 +2,5 @@ AUTOMAKE_OPTIONS = gnu
|
|||
|
||||
webdir = @WEB_PREFIX@/skins/classic/css
|
||||
|
||||
dist_web_DATA = \
|
||||
skin.css \
|
||||
control.css \
|
||||
export.css
|
||||
SUBDIRS = flat \
|
||||
classic
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
AUTOMAKE_OPTIONS = gnu
|
||||
|
||||
webdir = @WEB_PREFIX@/skins/classic/css/classic
|
||||
|
||||
SUBDIRS = views
|
||||
|
||||
dist_web_DATA = \
|
||||
skin.css \
|
||||
control.css \
|
||||
export.css
|
|
@ -91,39 +91,39 @@
|
|||
}
|
||||
|
||||
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .upLeftBtn {
|
||||
background: url("../graphics/arrow-ul.gif") no-repeat 0 0;
|
||||
background: url("../../graphics/arrow-ul.gif") no-repeat 0 0;
|
||||
}
|
||||
|
||||
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .upBtn {
|
||||
background: url("../graphics/arrow-u.gif") no-repeat 0 0;
|
||||
background: url("../../graphics/arrow-u.gif") no-repeat 0 0;
|
||||
}
|
||||
|
||||
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .upRightBtn {
|
||||
background: url("../graphics/arrow-ur.gif") no-repeat 0 0;
|
||||
background: url("../../graphics/arrow-ur.gif") no-repeat 0 0;
|
||||
}
|
||||
|
||||
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .leftBtn {
|
||||
background: url("../graphics/arrow-l.gif") no-repeat 0 0;
|
||||
background: url("../../graphics/arrow-l.gif") no-repeat 0 0;
|
||||
}
|
||||
|
||||
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .centerBtn {
|
||||
background: url("../graphics/center.gif") no-repeat 0 0;
|
||||
background: url("../../graphics/center.gif") no-repeat 0 0;
|
||||
}
|
||||
|
||||
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .rightBtn {
|
||||
background: url("../graphics/arrow-r.gif") no-repeat 0 0;
|
||||
background: url("../../graphics/arrow-r.gif") no-repeat 0 0;
|
||||
}
|
||||
|
||||
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .downLeftBtn {
|
||||
background: url("../graphics/arrow-dl.gif") no-repeat 0 0;
|
||||
background: url("../../graphics/arrow-dl.gif") no-repeat 0 0;
|
||||
}
|
||||
|
||||
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .downBtn {
|
||||
background: url("../graphics/arrow-d.gif") no-repeat 0 0;
|
||||
background: url("../../graphics/arrow-d.gif") no-repeat 0 0;
|
||||
}
|
||||
|
||||
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .downRightBtn {
|
||||
background: url("../graphics/arrow-dr.gif") no-repeat 0 0;
|
||||
background: url("../../graphics/arrow-dr.gif") no-repeat 0 0;
|
||||
}
|
||||
|
||||
.ptzControls .controlsPanel .pantiltPanel .powerControls {
|
|
@ -1,6 +1,6 @@
|
|||
AUTOMAKE_OPTIONS = gnu
|
||||
|
||||
webdir = @WEB_PREFIX@/skins/flat/views/css
|
||||
webdir = @WEB_PREFIX@/skins/classic/css/classic/views
|
||||
|
||||
dist_web_DATA = \
|
||||
console.css \
|
|
@ -0,0 +1 @@
|
|||
@import url(../control.css);
|
|
@ -0,0 +1,77 @@
|
|||
.chartSize {
|
||||
width: <?php echo $chart['width'] ?>px;
|
||||
height: <?php echo $chart['height'] ?>px;
|
||||
}
|
||||
|
||||
.graphSize {
|
||||
width: <?php echo $chart['graph']['width'] ?>px;
|
||||
height: <?php echo $chart['graph']['height'] ?>px;
|
||||
}
|
||||
|
||||
.graphHeight {
|
||||
height: <?php echo $chart['graph']['height'] ?>px;
|
||||
}
|
||||
|
||||
.graphWidth {
|
||||
width: <?php echo $chart['graph']['width'] ?>px;
|
||||
}
|
||||
|
||||
.imageSize {
|
||||
width: <?php echo $chart['image']['width'] ?>px;
|
||||
height: <?php echo $chart['image']['height'] ?>px;
|
||||
}
|
||||
|
||||
.imageHeight {
|
||||
height: <?php echo $chart['image']['height'] ?>px;
|
||||
}
|
||||
|
||||
.activitySize {
|
||||
width: <?php echo $chart['graph']['width'] ?>px;
|
||||
height: <?php echo $chart['graph']['activityHeight'] ?>px;
|
||||
}
|
||||
|
||||
.eventsSize {
|
||||
width: <?php echo $chart['graph']['width'] ?>px;
|
||||
height: <?php echo $chart['graph']['eventBarHeight'] ?>px;
|
||||
}
|
||||
|
||||
.eventsHeight {
|
||||
height: <?php echo $chart['graph']['eventBarHeight'] ?>px;
|
||||
}
|
||||
<?php
|
||||
if ( $mode == "overlay" )
|
||||
{
|
||||
foreach ( array_keys($monitorIds) as $monitorId )
|
||||
{
|
||||
?>
|
||||
#chartPanel .eventsPos<?php echo $monitorId ?> {
|
||||
top: <?php echo $chart['eventBars'][$monitorId]['top'] ?>px;
|
||||
}
|
||||
<?php
|
||||
}
|
||||
}
|
||||
elseif ( $mode == "split" )
|
||||
{
|
||||
foreach ( array_keys($monitorIds) as $monitorId )
|
||||
{
|
||||
?>
|
||||
#chartPanel .activityPos<?php echo $monitorId ?> {
|
||||
top: <?php echo $char['activityBars'][$monitorId]['top'] ?>px;
|
||||
}
|
||||
|
||||
#chartPanel .eventsPos<?php echo $monitorId ?> {
|
||||
top: <?php echo $char['eventBars'][$monitorId]['top'] ?>px;
|
||||
}
|
||||
<?php
|
||||
}
|
||||
}
|
||||
|
||||
foreach( array_keys($monEventSlots) as $monitorId )
|
||||
{
|
||||
?>
|
||||
.monitorColour<?php echo $monitorId ?> {
|
||||
background-color: <?php echo $monitors[$monitorId]['WebColour'] ?>;
|
||||
}
|
||||
<?php
|
||||
}
|
||||
?>
|
|
@ -1,4 +1,4 @@
|
|||
@import url(../../css/control.css);
|
||||
@import url(../control.css);
|
||||
|
||||
#menuBar {
|
||||
margin: 6px auto 4px;
|
|
@ -1,6 +1,8 @@
|
|||
AUTOMAKE_OPTIONS = gnu
|
||||
|
||||
webdir = @WEB_PREFIX@/skins/flat/css
|
||||
webdir = @WEB_PREFIX@/skins/classic/css/flat
|
||||
|
||||
SUBDIRS = views
|
||||
|
||||
dist_web_DATA = \
|
||||
skin.css \
|
|
@ -91,39 +91,39 @@
|
|||
}
|
||||
|
||||
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .upLeftBtn {
|
||||
background: url("../graphics/arrow-ul.gif") no-repeat 0 0;
|
||||
background: url("../../graphics/arrow-ul.gif") no-repeat 0 0;
|
||||
}
|
||||
|
||||
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .upBtn {
|
||||
background: url("../graphics/arrow-u.gif") no-repeat 0 0;
|
||||
background: url("../../graphics/arrow-u.gif") no-repeat 0 0;
|
||||
}
|
||||
|
||||
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .upRightBtn {
|
||||
background: url("../graphics/arrow-ur.gif") no-repeat 0 0;
|
||||
background: url("../../graphics/arrow-ur.gif") no-repeat 0 0;
|
||||
}
|
||||
|
||||
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .leftBtn {
|
||||
background: url("../graphics/arrow-l.gif") no-repeat 0 0;
|
||||
background: url("../../graphics/arrow-l.gif") no-repeat 0 0;
|
||||
}
|
||||
|
||||
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .centerBtn {
|
||||
background: url("../graphics/center.gif") no-repeat 0 0;
|
||||
background: url("../../graphics/center.gif") no-repeat 0 0;
|
||||
}
|
||||
|
||||
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .rightBtn {
|
||||
background: url("../graphics/arrow-r.gif") no-repeat 0 0;
|
||||
background: url("../../graphics/arrow-r.gif") no-repeat 0 0;
|
||||
}
|
||||
|
||||
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .downLeftBtn {
|
||||
background: url("../graphics/arrow-dl.gif") no-repeat 0 0;
|
||||
background: url("../../graphics/arrow-dl.gif") no-repeat 0 0;
|
||||
}
|
||||
|
||||
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .downBtn {
|
||||
background: url("../graphics/arrow-d.gif") no-repeat 0 0;
|
||||
background: url("../../graphics/arrow-d.gif") no-repeat 0 0;
|
||||
}
|
||||
|
||||
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .downRightBtn {
|
||||
background: url("../graphics/arrow-dr.gif") no-repeat 0 0;
|
||||
background: url("../../graphics/arrow-dr.gif") no-repeat 0 0;
|
||||
}
|
||||
|
||||
.ptzControls .controlsPanel .pantiltPanel .powerControls {
|
|
@ -1,6 +1,6 @@
|
|||
AUTOMAKE_OPTIONS = gnu
|
||||
|
||||
webdir = @WEB_PREFIX@/skins/classic/views/css
|
||||
webdir = @WEB_PREFIX@/skins/classic/css/flat/views
|
||||
|
||||
dist_web_DATA = \
|
||||
console.css \
|
|
@ -0,0 +1 @@
|
|||
@import url(../css/control.css);
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue