Fix conflict when merging upstream master
This commit is contained in:
commit
d961831355
|
@ -44,7 +44,7 @@ include (CheckTypeSize)
|
||||||
include (CheckStructHasMember)
|
include (CheckStructHasMember)
|
||||||
|
|
||||||
# Configuration options
|
# 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_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_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")
|
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_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")
|
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
|
# 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_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_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")
|
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
|
# Some variables that zm expects
|
||||||
set(ZM_PID "${ZM_RUNDIR}/zm.pid")
|
set(ZM_PID "${ZM_RUNDIR}/zm.pid")
|
||||||
|
set(ZM_CONFIG "${ZM_CONFIG_DIR}/zm.conf")
|
||||||
set(ZM_CONFIG "/${CMAKE_INSTALL_SYSCONFDIR}/zm.conf")
|
set(ZM_CONFIG "/${CMAKE_INSTALL_SYSCONFDIR}/zm.conf")
|
||||||
set(VERSION "${zoneminder_VERSION}")
|
set(VERSION "${zoneminder_VERSION}")
|
||||||
set(PKGDATADIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/zoneminder")
|
set(PKGDATADIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/zoneminder")
|
||||||
|
@ -539,7 +541,7 @@ else(zmconfgen_result EQUAL 0)
|
||||||
endif(zmconfgen_result EQUAL 0)
|
endif(zmconfgen_result EQUAL 0)
|
||||||
|
|
||||||
# Install zm.conf
|
# 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
|
# Uninstall target
|
||||||
configure_file(
|
configure_file(
|
||||||
|
|
|
@ -5,8 +5,9 @@ ACLOCAL_AMFLAGS = -I m4
|
||||||
# And these to the user and group of your webserver
|
# And these to the user and group of your webserver
|
||||||
webuser = @WEB_USER@
|
webuser = @WEB_USER@
|
||||||
webgroup = @WEB_GROUP@
|
webgroup = @WEB_GROUP@
|
||||||
|
zmconfigdir = @ZM_CONFIG_DIR@
|
||||||
|
|
||||||
sysconf_DATA = \
|
zmconfig_DATA = \
|
||||||
zm.conf
|
zm.conf
|
||||||
|
|
||||||
SUBDIRS = \
|
SUBDIRS = \
|
||||||
|
@ -22,7 +23,7 @@ EXTRA_DIST = \
|
||||||
|
|
||||||
# Yes, you are correct. This is a HACK!
|
# Yes, you are correct. This is a HACK!
|
||||||
install-data-hook:
|
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_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_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 )
|
( 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_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_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_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
|
if test "$ZM_DB_TYPE" == ""; then
|
||||||
AC_SUBST(ZM_DB_TYPE,[mysql])
|
AC_SUBST(ZM_DB_TYPE,[mysql])
|
||||||
|
@ -83,6 +84,10 @@ fi
|
||||||
if test "$ZM_LOGDIR" == ""; then
|
if test "$ZM_LOGDIR" == ""; then
|
||||||
AC_SUBST(ZM_LOGDIR,[/var/log/zm])
|
AC_SUBST(ZM_LOGDIR,[/var/log/zm])
|
||||||
fi
|
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
|
LIB_ARCH=lib
|
||||||
AC_ARG_WITH(libarch,
|
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_DEFINE_DIR([DATADIR],[datadir],[Expanded data directory])
|
||||||
AC_SUBST(PKGDATADIR,"$DATADIR/$PACKAGE")
|
AC_SUBST(PKGDATADIR,"$DATADIR/$PACKAGE")
|
||||||
AC_SUBST(ZM_PID,"$ZM_RUNDIR/zm.pid")
|
AC_SUBST(ZM_PID,"$ZM_RUNDIR/zm.pid")
|
||||||
AC_DEFINE_DIR([SYSCONFDIR],[sysconfdir],[Expanded configuration directory])
|
#AC_DEFINE_DIR([SYSCONFDIR],[sysconfdir],[Expanded configuration directory])
|
||||||
AC_SUBST(ZM_CONFIG,"$SYSCONFDIR/zm.conf")
|
#AC_SUBST(ZM_CONFIG,"$SYSCONFDIR/zm.conf")
|
||||||
|
AC_SUBST(ZM_CONFIG,"$ZM_CONFIG_DIR/zm.conf")
|
||||||
|
|
||||||
# Slight hack for non-standard perl install paths
|
# Slight hack for non-standard perl install paths
|
||||||
if test "$prefix" != "NONE"; then
|
if test "$prefix" != "NONE"; then
|
||||||
|
@ -552,7 +558,7 @@ AC_SUBST(PERL_MM_PARMS)
|
||||||
AC_SUBST(EXTRA_PERL_LIB)
|
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
|
# Create the definitions for compilation and defaults for the database
|
||||||
AC_CONFIG_COMMANDS([src/zm_config_defines.h],[perl ./zmconfgen.pl])
|
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',
|
`Enabled` tinyint(3) unsigned NOT NULL default '1',
|
||||||
`LinkedMonitors` varchar(255) NOT NULL default '',
|
`LinkedMonitors` varchar(255) NOT NULL default '',
|
||||||
`Triggers` set('X10') 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',
|
`Channel` tinyint(3) unsigned NOT NULL default '0',
|
||||||
`Format` int(10) unsigned NOT NULL default '0',
|
`Format` int(10) unsigned NOT NULL default '0',
|
||||||
`V4LMultiBuffer` tinyint(1) unsigned,
|
`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
|
# This module contains the implementation of the Trendnet TV-IP672PI IP camera control
|
||||||
# protocol. Also works or TV-IP862IC
|
# protocol. Also works or TV-IP862IC
|
||||||
#
|
#
|
||||||
#
|
|
||||||
#
|
|
||||||
# For Zoneminder 1.26+
|
# For Zoneminder 1.26+
|
||||||
#
|
#
|
||||||
# Under control capability:
|
# Under control capability:
|
||||||
|
@ -69,9 +67,10 @@ our @ISA = qw(ZoneMinder::Control);
|
||||||
#
|
#
|
||||||
# Finally, the username is the username you'd like to authenticate as.
|
# Finally, the username is the username you'd like to authenticate as.
|
||||||
#
|
#
|
||||||
our $REALM = "TV-IP862IC";
|
our $REALM = 'TV-IP862IC';
|
||||||
our $USERNAME = "admin";
|
our $USERNAME = 'admin';
|
||||||
|
our $PASSWORD = '';
|
||||||
|
our $ADDRESS = '';
|
||||||
|
|
||||||
# ==========================================================================
|
# ==========================================================================
|
||||||
#
|
#
|
||||||
|
@ -82,8 +81,6 @@ our $USERNAME = "admin";
|
||||||
use ZoneMinder::Logger qw(:all);
|
use ZoneMinder::Logger qw(:all);
|
||||||
use ZoneMinder::Config qw(:all);
|
use ZoneMinder::Config qw(:all);
|
||||||
|
|
||||||
use Time::HiRes qw( usleep );
|
|
||||||
|
|
||||||
sub new
|
sub new
|
||||||
{
|
{
|
||||||
my $class = shift;
|
my $class = shift;
|
||||||
|
@ -112,13 +109,29 @@ sub AUTOLOAD
|
||||||
sub open
|
sub open
|
||||||
{
|
{
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
$self->loadMonitor();
|
$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;
|
use LWP::UserAgent;
|
||||||
$self->{ua} = LWP::UserAgent->new;
|
$self->{ua} = LWP::UserAgent->new;
|
||||||
$self->{ua}->agent( "ZoneMinder Control Agent/".$ZoneMinder::Base::ZM_VERSION );
|
$self->{ua}->agent( "ZoneMinder Control Agent/".$ZoneMinder::Base::ZM_VERSION );
|
||||||
$self->{state} = 'open';
|
$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
|
sub close
|
||||||
|
@ -146,18 +159,10 @@ sub sendCmd
|
||||||
|
|
||||||
my $result = undef;
|
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();
|
Debug ("sendCmd command: " . $url );
|
||||||
|
|
||||||
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);
|
|
||||||
|
|
||||||
my $res = $self->{ua}->request($req);
|
my $res = $self->{ua}->request($req);
|
||||||
|
|
||||||
|
@ -165,10 +170,13 @@ sub sendCmd
|
||||||
$result = !undef;
|
$result = !undef;
|
||||||
} else {
|
} else {
|
||||||
if ( $res->status_line() eq '401 Unauthorized' ) {
|
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);
|
my $res = $self->{ua}->request($req);
|
||||||
if ( $res->is_success ) {
|
if ( $res->is_success ) {
|
||||||
$result = !undef;
|
$result = !undef;
|
||||||
|
} else {
|
||||||
|
Error("Content was " . $res->content() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ( ! $result ) {
|
if ( ! $result ) {
|
||||||
|
@ -194,7 +202,6 @@ sub sendCmdPost
|
||||||
|
|
||||||
my $result = undef;
|
my $result = undef;
|
||||||
|
|
||||||
|
|
||||||
if ($url eq undef)
|
if ($url eq undef)
|
||||||
{
|
{
|
||||||
Error ("url passed to sendCmdPost is undefined.");
|
Error ("url passed to sendCmdPost is undefined.");
|
||||||
|
@ -203,16 +210,11 @@ sub sendCmdPost
|
||||||
|
|
||||||
Debug ("sendCmdPost url: " . $url . " cmd: " . $cmd);
|
Debug ("sendCmdPost url: " . $url . " cmd: " . $cmd);
|
||||||
|
|
||||||
my $ua = LWP::UserAgent->new();
|
my $req = HTTP::Request->new(POST => "http://".$ADDRESS.$url);
|
||||||
|
|
||||||
my $req = HTTP::Request->new(POST => "http://".$self->{Monitor}->{ControlAddress}.$url);
|
|
||||||
$req->content_type('application/x-www-form-urlencoded');
|
$req->content_type('application/x-www-form-urlencoded');
|
||||||
$req->content($cmd);
|
$req->content($cmd);
|
||||||
|
|
||||||
$self->{ua}->credentials($self->{Monitor}->{ControlAddress},$REALM,$USERNAME,$self->{Monitor}->{ControlDevice});
|
Debug ( "sendCmdPost credentials control address:'".$ADDRESS."' realm:'" . $REALM . "' username:'" . $USERNAME . "' password:'".$PASSWORD."'");
|
||||||
|
|
||||||
Debug ( "sendCmdPost credentials control address:'".$self->{Monitor}->{ControlAddress}."' realm:'" . $REALM . "' username:'" . $USERNAME . "'
|
|
||||||
password:'".$self->{Monitor}->{ControlDevice}."'");
|
|
||||||
|
|
||||||
my $res = $self->{ua}->request($req);
|
my $res = $self->{ua}->request($req);
|
||||||
|
|
||||||
|
@ -222,12 +224,11 @@ password:'".$self->{Monitor}->{ControlDevice}."'");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Error( "Error check failed: USERNAME: $USERNAME realm: $REALM password: " . $self->{Monitor}->{ControlDevice} );
|
Error( "sendCmdPost Error check failed: '".$res->status_line()."' cmd:'".$cmd."'" );
|
||||||
Error( "Error check failed: '".$res->status_line()."' cmd:'".$cmd."'" );
|
|
||||||
if ( $res->status_line() eq '401 Unauthorized' ) {
|
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 {
|
} 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
|
} # endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -397,6 +397,7 @@ int RtspThread::run()
|
||||||
|
|
||||||
uint32_t rtpClock = 0;
|
uint32_t rtpClock = 0;
|
||||||
std::string trackUrl = mUrl;
|
std::string trackUrl = mUrl;
|
||||||
|
std::string controlUrl;
|
||||||
|
|
||||||
_AVCODECID codecId;
|
_AVCODECID codecId;
|
||||||
|
|
||||||
|
@ -412,7 +413,7 @@ int RtspThread::run()
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
// Check if control Url is absolute or relative
|
// 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()))
|
if (std::equal(trackUrl.begin(), trackUrl.end(), controlUrl.begin()))
|
||||||
{
|
{
|
||||||
trackUrl = controlUrl;
|
trackUrl = controlUrl;
|
||||||
|
@ -556,27 +557,51 @@ int RtspThread::run()
|
||||||
{
|
{
|
||||||
if ( ( lines[i].size() > 9 ) && ( lines[i].substr( 0, 9 ) == "RTP-Info:" ) )
|
if ( ( lines[i].size() > 9 ) && ( lines[i].substr( 0, 9 ) == "RTP-Info:" ) )
|
||||||
rtpInfo = trimSpaces( lines[i].substr( 9 ) );
|
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;
|
int seq = 0;
|
||||||
unsigned long rtpTime = 0;
|
unsigned long rtpTime = 0;
|
||||||
parts = split( rtpInfo.c_str(), ";" );
|
StringVector streams;
|
||||||
for ( size_t i = 0; i < parts.size(); i++ )
|
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], "=" );
|
// We want the stream that matches the trackUrl we are using
|
||||||
seq = strtol( subparts[1].c_str(), NULL, 10 );
|
if ( streams[i].find(controlUrl.c_str()) != std::string::npos )
|
||||||
}
|
{
|
||||||
else if ( startsWith( parts[i], "rtptime=" ) )
|
// Parse the sequence and rtptime values
|
||||||
{
|
parts = split( streams[i].c_str(), ";" );
|
||||||
StringVector subparts = split( parts[i], "=" );
|
for ( size_t j = 0; j < parts.size(); j++ )
|
||||||
rtpTime = strtol( subparts[1].c_str(), NULL, 10 );
|
{
|
||||||
|
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 },
|
{ "MP4V-ES", AVMEDIA_TYPE_VIDEO, AV_CODEC_ID_MPEG4 },
|
||||||
{ "mpeg4-generic", AVMEDIA_TYPE_AUDIO, AV_CODEC_ID_AAC },
|
{ "mpeg4-generic", AVMEDIA_TYPE_AUDIO, AV_CODEC_ID_AAC },
|
||||||
{ "H264", AVMEDIA_TYPE_VIDEO, AV_CODEC_ID_H264 },
|
{ "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
|
#else
|
||||||
SessionDescriptor::StaticPayloadDesc SessionDescriptor::smStaticPayloads[] = {
|
SessionDescriptor::StaticPayloadDesc SessionDescriptor::smStaticPayloads[] = {
|
||||||
|
@ -95,7 +96,8 @@ SessionDescriptor::DynamicPayloadDesc SessionDescriptor::smDynamicPayloads[] = {
|
||||||
{ "MP4V-ES", CODEC_TYPE_VIDEO, CODEC_ID_MPEG4 },
|
{ "MP4V-ES", CODEC_TYPE_VIDEO, CODEC_ID_MPEG4 },
|
||||||
{ "mpeg4-generic", CODEC_TYPE_AUDIO, CODEC_ID_AAC },
|
{ "mpeg4-generic", CODEC_TYPE_AUDIO, CODEC_ID_AAC },
|
||||||
{ "H264", CODEC_TYPE_VIDEO, CODEC_ID_H264 },
|
{ "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
|
#endif
|
||||||
|
|
||||||
|
@ -326,7 +328,7 @@ SessionDescriptor::SessionDescriptor( const std::string &url, const std::string
|
||||||
if ( tokens.size() < 4 )
|
if ( tokens.size() < 4 )
|
||||||
throw Exception( "Can't parse SDP media description '"+line+"'" );
|
throw Exception( "Can't parse SDP media description '"+line+"'" );
|
||||||
std::string mediaType = tokens[0];
|
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+"'" );
|
throw Exception( "Unsupported media type '"+mediaType+"' in SDP media attribute '"+line+"'" );
|
||||||
StringVector portTokens = split( tokens[1], "/" );
|
StringVector portTokens = split( tokens[1], "/" );
|
||||||
int mediaPort = atoi(portTokens[0].c_str());
|
int mediaPort = atoi(portTokens[0].c_str());
|
||||||
|
@ -383,11 +385,15 @@ AVFormatContext *SessionDescriptor::generateFormatContext() const
|
||||||
stream->codec->codec_type = AVMEDIA_TYPE_VIDEO;
|
stream->codec->codec_type = AVMEDIA_TYPE_VIDEO;
|
||||||
else if ( mediaDesc->getType() == "audio" )
|
else if ( mediaDesc->getType() == "audio" )
|
||||||
stream->codec->codec_type = AVMEDIA_TYPE_AUDIO;
|
stream->codec->codec_type = AVMEDIA_TYPE_AUDIO;
|
||||||
|
else if ( mediaDesc->getType() == "application" )
|
||||||
|
stream->codec->codec_type = AVMEDIA_TYPE_DATA;
|
||||||
#else
|
#else
|
||||||
if ( mediaDesc->getType() == "video" )
|
if ( mediaDesc->getType() == "video" )
|
||||||
stream->codec->codec_type = CODEC_TYPE_VIDEO;
|
stream->codec->codec_type = CODEC_TYPE_VIDEO;
|
||||||
else if ( mediaDesc->getType() == "audio" )
|
else if ( mediaDesc->getType() == "audio" )
|
||||||
stream->codec->codec_type = CODEC_TYPE_AUDIO;
|
stream->codec->codec_type = CODEC_TYPE_AUDIO;
|
||||||
|
else if ( mediaDesc->getType() == "application" )
|
||||||
|
stream->codec->codec_type = CODEC_TYPE_DATA;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ( mediaDesc->getPayloadType() < PAYLOAD_TYPE_DYNAMIC )
|
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, "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" );
|
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" );
|
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, " -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, " -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" );
|
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[] )
|
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];
|
self = argv[0];
|
||||||
|
|
||||||
srand( getpid() * time( 0 ) );
|
srand( getpid() * time( 0 ) );
|
||||||
|
|
|
@ -247,20 +247,20 @@ function outputVideoStream( $id, $src, $width, $height, $format, $title="" )
|
||||||
if ( isWindows() )
|
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"
|
classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95"
|
||||||
codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,0,02,902"
|
codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,0,02,902"
|
||||||
standby="Loading Microsoft Windows Media Player components..."
|
standby="Loading Microsoft Windows Media Player components..."
|
||||||
type="<?= $mimeType ?>">
|
type="<?php echo $mimeType ?>">
|
||||||
<param name="FileName" value="<?= $src ?>"/>
|
<param name="FileName" value="<?php echo $src ?>"/>
|
||||||
<param name="autoStart" value="1"/>
|
<param name="autoStart" value="1"/>
|
||||||
<param name="showControls" value="0"/>
|
<param name="showControls" value="0"/>
|
||||||
<embed type="<?= $mimeType ?>"
|
<embed type="<?php echo $mimeType ?>"
|
||||||
pluginspage="http://www.microsoft.com/Windows/MediaPlayer/"
|
pluginspage="http://www.microsoft.com/Windows/MediaPlayer/"
|
||||||
src="<?= $src ?>"
|
src="<?php echo $src ?>"
|
||||||
name="<?= validHtmlStr($title) ?>"
|
name="<?php echo validHtmlStr($title) ?>"
|
||||||
width="<?= validNum($width) ?>"
|
width="<?php echo validNum($width) ?>"
|
||||||
height="<?= validInt($height) ?>"
|
height="<?php echo validInt($height) ?>"
|
||||||
autostart="1"
|
autostart="1"
|
||||||
showcontrols="0">
|
showcontrols="0">
|
||||||
</embed>
|
</embed>
|
||||||
|
@ -273,19 +273,19 @@ showcontrols="0">
|
||||||
case "video/quicktime" :
|
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"
|
classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"
|
||||||
codebase="http://www.apple.com/qtactivex/qtplugin.cab"
|
codebase="http://www.apple.com/qtactivex/qtplugin.cab"
|
||||||
type="<?= $mimeType ?>">
|
type="<?php echo $mimeType ?>">
|
||||||
<param name="src" value="<?= $src ?>"/>
|
<param name="src" value="<?php echo $src ?>"/>
|
||||||
<param name="autoplay" VALUE="true"/>
|
<param name="autoplay" VALUE="true"/>
|
||||||
<param name="controller" VALUE="false"/>
|
<param name="controller" VALUE="false"/>
|
||||||
<embed type="<?= $mimeType ?>"
|
<embed type="<?php echo $mimeType ?>"
|
||||||
src="<?= $src ?>"
|
src="<?php echo $src ?>"
|
||||||
pluginspage="http://www.apple.com/quicktime/download/"
|
pluginspage="http://www.apple.com/quicktime/download/"
|
||||||
name="<?= validHtmlStr($title) ?>"
|
name="<?php echo validHtmlStr($title) ?>"
|
||||||
width="<?= validInt($width) ?>"
|
width="<?php echo validInt($width) ?>"
|
||||||
height="<?= validInt($height) ?>"
|
height="<?php echo validInt($height) ?>"
|
||||||
autoplay="true"
|
autoplay="true"
|
||||||
controller="true">
|
controller="true">
|
||||||
</embed>
|
</embed>
|
||||||
|
@ -297,19 +297,19 @@ controller="true">
|
||||||
case "application/x-shockwave-flash" :
|
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"
|
classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
|
||||||
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"
|
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"
|
||||||
type="<?= $mimeType ?>">
|
type="<?php echo $mimeType ?>">
|
||||||
<param name="movie" value="<?= $src ?>"/>
|
<param name="movie" value="<?php echo $src ?>"/>
|
||||||
<param name="quality" value="high"/>
|
<param name="quality" value="high"/>
|
||||||
<param name="bgcolor" value="#ffffff"/>
|
<param name="bgcolor" value="#ffffff"/>
|
||||||
<embed type="<?= $mimeType ?>"
|
<embed type="<?php echo $mimeType ?>"
|
||||||
pluginspage="http://www.macromedia.com/go/getflashplayer"
|
pluginspage="http://www.macromedia.com/go/getflashplayer"
|
||||||
src="<?= $src ?>"
|
src="<?php echo $src ?>"
|
||||||
name="<?= validHtmlStr($title) ?>"
|
name="<?php echo validHtmlStr($title) ?>"
|
||||||
width="<?= validInt($width) ?>"
|
width="<?php echo validInt($width) ?>"
|
||||||
height="<?= validInt($height) ?>"
|
height="<?php echo validInt($height) ?>"
|
||||||
quality="high"
|
quality="high"
|
||||||
bgcolor="#ffffff">
|
bgcolor="#ffffff">
|
||||||
</embed>
|
</embed>
|
||||||
|
@ -323,11 +323,11 @@ bgcolor="#ffffff">
|
||||||
if ( !$objectTag )
|
if ( !$objectTag )
|
||||||
{
|
{
|
||||||
?>
|
?>
|
||||||
<embed<?= isset($mimeType)?(' type="'.$mimeType.'"'):"" ?>
|
<embed<?php echo isset($mimeType)?(' type="'.$mimeType.'"'):"" ?>
|
||||||
src="<?= $src ?>"
|
src="<?php echo $src ?>"
|
||||||
name="<?= validHtmlStr($title) ?>"
|
name="<?php echo validHtmlStr($title) ?>"
|
||||||
width="<?= validInt($width) ?>"
|
width="<?php echo validInt($width) ?>"
|
||||||
height="<?= validInt($height) ?>"
|
height="<?php echo validInt($height) ?>"
|
||||||
autostart="1"
|
autostart="1"
|
||||||
autoplay="1"
|
autoplay="1"
|
||||||
showcontrols="0"
|
showcontrols="0"
|
||||||
|
@ -341,11 +341,11 @@ function outputImageStream( $id, $src, $width, $height, $title="" )
|
||||||
{
|
{
|
||||||
if ( canStreamIframe() ) {
|
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
|
<?php
|
||||||
} else {
|
} 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
|
<?php
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -353,9 +353,9 @@ function outputImageStream( $id, $src, $width, $height, $title="" )
|
||||||
function outputControlStream( $src, $width, $height, $monitor, $scale, $target )
|
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="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">
|
<input type="hidden" name="action" value="control">
|
||||||
<?php
|
<?php
|
||||||
if ( $monitor['CanMoveMap'] )
|
if ( $monitor['CanMoveMap'] )
|
||||||
|
@ -377,8 +377,8 @@ function outputControlStream( $src, $width, $height, $monitor, $scale, $target )
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<input type="hidden" name="scale" value="<?= $scale ?>">
|
<input type="hidden" name="scale" value="<?php echo $scale ?>">
|
||||||
<input type="image" src="<?= $src ?>" width="<?= $width ?>" height="<?= $height ?>">
|
<input type="image" src="<?php echo $src ?>" width="<?php echo $width ?>" height="<?php echo $height ?>">
|
||||||
</form>
|
</form>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
@ -386,14 +386,14 @@ function outputControlStream( $src, $width, $height, $monitor, $scale, $target )
|
||||||
function outputHelperStream( $id, $src, $width, $height, $title="" )
|
function outputHelperStream( $id, $src, $width, $height, $title="" )
|
||||||
{
|
{
|
||||||
?>
|
?>
|
||||||
<applet id="<?= $id ?>" code="com.charliemouse.cambozola.Viewer"
|
<applet id="<?php echo $id ?>" code="com.charliemouse.cambozola.Viewer"
|
||||||
archive="<?= ZM_PATH_CAMBOZOLA ?>"
|
archive="<?php echo ZM_PATH_CAMBOZOLA ?>"
|
||||||
align="middle"
|
align="middle"
|
||||||
width="<?= $width ?>"
|
width="<?php echo $width ?>"
|
||||||
height="<?= $height ?>"
|
height="<?php echo $height ?>"
|
||||||
title="<?= $title ?>">
|
title="<?php echo $title ?>">
|
||||||
<param name="accessories" value="none"/>
|
<param name="accessories" value="none"/>
|
||||||
<param name="url" value="<?= $src ?>"/>
|
<param name="url" value="<?php echo $src ?>"/>
|
||||||
</applet>
|
</applet>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
|
@ -401,16 +401,16 @@ title="<?= $title ?>">
|
||||||
function outputImageStill( $id, $src, $width, $height, $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
|
<?php
|
||||||
}
|
}
|
||||||
|
|
||||||
function outputControlStill( $src, $width, $height, $monitor, $scale, $target )
|
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="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">
|
<input type="hidden" name="action" value="control">
|
||||||
<?php
|
<?php
|
||||||
if ( $monitor['CanMoveMap'] )
|
if ( $monitor['CanMoveMap'] )
|
||||||
|
@ -432,8 +432,8 @@ function outputControlStill( $src, $width, $height, $monitor, $scale, $target )
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<input type="hidden" name="scale" value="<?= $scale ?>">
|
<input type="hidden" name="scale" value="<?php echo $scale ?>">
|
||||||
<input type="image" src="<?= $src ?>" width="<?= $width ?>" height="<?= $height ?>">
|
<input type="image" src="<?php echo $src ?>" width="<?php echo $width ?>" height="<?php echo $height ?>">
|
||||||
</form>
|
</form>
|
||||||
<?php
|
<?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
|
<?php
|
||||||
foreach ( $contents as $contentValue => $contentText )
|
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
|
<?php
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -1645,7 +1645,7 @@ function sidField()
|
||||||
{
|
{
|
||||||
list( $sessname, $sessid ) = explode( "=", SID );
|
list( $sessname, $sessid ) = explode( "=", SID );
|
||||||
?>
|
?>
|
||||||
<input type="hidden" name="<?= $sessname ?>" value="<?= $sessid ?>"/>
|
<input type="hidden" name="<?php echo $sessname ?>" value="<?php echo $sessid ?>"/>
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,6 +63,13 @@ elseif ( isset($_COOKIE['zmSkin']) )
|
||||||
else
|
else
|
||||||
$skin = "classic";
|
$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_BASE_PATH", dirname( $_SERVER['REQUEST_URI'] ) );
|
||||||
define( "ZM_SKIN_PATH", "skins/$skin" );
|
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 );
|
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/config.php' );
|
||||||
require_once( 'includes/logger.php' );
|
require_once( 'includes/logger.php' );
|
||||||
|
|
||||||
|
|
|
@ -614,6 +614,7 @@ $SLANG = array(
|
||||||
'SignalCheckColour' => 'Signal Check Colour',
|
'SignalCheckColour' => 'Signal Check Colour',
|
||||||
'Size' => 'Size',
|
'Size' => 'Size',
|
||||||
'SkinDescription' => 'Change the default skin for this computer',
|
'SkinDescription' => 'Change the default skin for this computer',
|
||||||
|
'CSSDescription' => 'Change the default css for this computer',
|
||||||
'Sleep' => 'Sleep',
|
'Sleep' => 'Sleep',
|
||||||
'SortAsc' => 'Asc',
|
'SortAsc' => 'Asc',
|
||||||
'SortBy' => 'Sort by',
|
'SortBy' => 'Sort by',
|
||||||
|
|
|
@ -15,8 +15,13 @@
|
||||||
//Suite 330, Boston, MA 02111-1307, USA. //
|
//Suite 330, Boston, MA 02111-1307, USA. //
|
||||||
|
|
||||||
// ZoneMinder estonian Translation by Seston seston@gmail.com
|
// 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.
|
// Who would care assistance to help to translate texts, and all this at all. Alone is somehow boring business....
|
||||||
// Notes for Translators
|
//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)
|
// 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
|
// 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.
|
// 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.
|
// do this by default, uncomment this if required.
|
||||||
//
|
//
|
||||||
// Example
|
// 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
|
// 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.
|
// 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
|
// Simple String Replacements
|
||||||
$SLANG = array(
|
$SLANG = array(
|
||||||
'24BitColour' => '24 bit colour',
|
'24BitColour' => '24 bit värvid',
|
||||||
'32BitColour' => '32 bit colour', // Added - 2011-06-15
|
'32BitColour' => '32 bit värvid', // Added - 2011-06-15
|
||||||
'8BitGrey' => '8 bit greyscale',
|
'8BitGrey' => '8 bit mustvalge',
|
||||||
'Action' => 'Action',
|
'Action' => 'Action',
|
||||||
'Actual' => 'Actual',
|
'Actual' => 'Aktuaalne',
|
||||||
'AddNewControl' => 'Add New Control',
|
'AddNewControl' => 'Lisa uus Kontroll',
|
||||||
'AddNewMonitor' => 'Lisa uus Monitor',
|
'AddNewMonitor' => 'Lisa uus Monitor',
|
||||||
'AddNewUser' => 'Lisa uus kasutaja',
|
'AddNewUser' => 'Lisa uus Kasutaja',
|
||||||
'AddNewZone' => 'Lisa uus tsoon',
|
'AddNewZone' => 'Lisa uus Tsoon',
|
||||||
'Alarm' => 'Alarm',
|
'Alarm' => 'Alarm',
|
||||||
'AlarmBrFrames' => 'Alarmi<br/>kaadrid',
|
'AlarmBrFrames' => 'Alarmi<br/>kaadrid',
|
||||||
'AlarmFrame' => 'Alarmi kaader',
|
'AlarmFrame' => 'Alarmi kaader',
|
||||||
'AlarmFrameCount' => 'Alarm Frame Count',
|
'AlarmFrameCount' => 'Alarmi kaadri hulk',
|
||||||
'AlarmLimits' => 'Alarm Limits',
|
'AlarmLimits' => 'Alarmi limiidid',
|
||||||
'AlarmMaximumFPS' => 'Alarm Maximum FPS',
|
'AlarmMaximumFPS' => 'Alarmi Maksimaalne FPS',
|
||||||
'AlarmPx' => 'Alarm Px',
|
'AlarmPx' => 'Alarm Px',
|
||||||
'AlarmRGBUnset' => 'You must set an alarm RGB colour',
|
'AlarmRGBUnset' => 'Sa pead panema alarmi RGB värvi',
|
||||||
'AlarmScore' => 'Alarme Score',
|
|
||||||
'Alert' => 'Hoiatus',
|
'Alert' => 'Hoiatus',
|
||||||
'All' => 'All',
|
'All' => 'All',
|
||||||
'Apply' => 'Apply',
|
'Apply' => 'Apply',
|
||||||
'ApplyingStateChange' => 'Applying State Change',
|
'ApplyingStateChange' => 'Applying State Change',
|
||||||
'ArchArchived' => 'Archived Only',
|
'ArchArchived' => 'Arhiveeritud Ainult',
|
||||||
'ArchUnarchived' => 'Unarchived Only',
|
'ArchUnarchived' => 'Arhiveerimatta Ainult',
|
||||||
'Archive' => 'Archive',
|
'Archive' => 'Arhiiv',
|
||||||
'Archived' => 'Arhiveeritud',
|
'Archived' => 'Arhiveeritud',
|
||||||
'Area' => 'Ala',
|
'Area' => 'Ala',
|
||||||
'AreaUnits' => 'Ala (px/%)',
|
'AreaUnits' => 'Ala (px/%)',
|
||||||
'AttrAlarmFrames' => 'Alarmi kaadrid',
|
'AttrAlarmFrames' => 'Alarmi kaadrid',
|
||||||
'AttrArchiveStatus' => 'Archive Status',
|
'AttrArchiveStatus' => 'Arhiivi Staatus',
|
||||||
'AttrAvgScore' => 'Avg. Score',
|
'AttrAvgScore' => 'Keskm. Skoor',
|
||||||
'AttrCause' => 'Cause',
|
'AttrCause' => 'Põhjus',
|
||||||
'AttrDate' => 'Kp.',
|
'AttrDate' => 'Kp.',
|
||||||
'AttrDateTime' => 'Kp/Kellaaeg',
|
'AttrDateTime' => 'Kp/Kellaaeg',
|
||||||
'AttrDiskBlocks' => 'Disk Blocks',
|
'AttrDiskBlocks' => 'Ketta Blokk',
|
||||||
'AttrDiskPercent' => 'Disk Percent',
|
'AttrDiskPercent' => 'Ketta Protsent',
|
||||||
'AttrDuration' => 'Kestvus',
|
'AttrDuration' => 'Kestvus',
|
||||||
'AttrFrames' => 'Kaadrid',
|
'AttrFrames' => 'Kaadrid',
|
||||||
'AttrId' => 'Id',
|
'AttrId' => 'Id',
|
||||||
'AttrMaxScore' => 'Max. Score',
|
'AttrMaxScore' => 'Maks. Skoor',
|
||||||
'AttrMonitorId' => 'Monitor Id',
|
'AttrMonitorId' => 'Monitori Id',
|
||||||
'AttrMonitorName' => 'Monitori Nimi',
|
'AttrMonitorName' => 'Monitori Nimi',
|
||||||
'AttrName' => 'Nimi',
|
'AttrName' => 'Nimi',
|
||||||
'AttrNotes' => 'Notes',
|
'AttrNotes' => 'Märkmed',
|
||||||
'AttrSystemLoad' => 'System Load',
|
'AttrSystemLoad' => 'Süsteemi Koormus',
|
||||||
'AttrTime' => 'Kellaaeg',
|
'AttrTime' => 'Kellaaeg',
|
||||||
'AttrTotalScore' => 'Total Score',
|
'AttrTotalScore' => 'Skoor Kokku',
|
||||||
'AttrWeekday' => 'Tööpäevad',
|
'AttrWeekday' => 'Tööpäevad',
|
||||||
'Auto' => 'Auto',
|
'Auto' => 'Auto',
|
||||||
'AutoStopTimeout' => 'Auto Stop Timeout',
|
'AutoStopTimeout' => 'Auto Stop Ajalimiit',
|
||||||
'Available' => 'Saadaval',
|
'Available' => 'Saadaval',
|
||||||
'AvgBrScore' => 'Avg.<br/>Score',
|
'AvgBrScore' => 'Keskm.<br/>Skoor',
|
||||||
'Background' => 'Taust',
|
'Background' => 'Taust',
|
||||||
'BackgroundFilter' => 'Käivita filter taustal',
|
'BackgroundFilter' => 'Käivita filter taustal',
|
||||||
'BadAlarmFrameCount' => 'Alarm frame count must be an integer of one or more',
|
'BadAlarmFrameCount' => 'Alarmi kaadri hulga ühik peab olema integer. Kas üks või rohkem',
|
||||||
'BadAlarmMaxFPS' => 'Alarm Maximum FPS must be a positive integer or floating point value',
|
'BadAlarmMaxFPS' => 'Alarmi maksimaalne FPS peab olema positiivne integer või floating point väärtus',
|
||||||
'BadChannel' => 'Channel must be set to an integer of zero or more',
|
'BadChannel' => 'Kanal peab olema integer, null või rohkem',
|
||||||
'BadColours' => 'Target colour must be set to a valid value', // Added - 2011-06-15
|
'BadColours' => 'Sihtmärgi värv peab olema pandud õige väärtus', // Added - 2011-06-15
|
||||||
'BadDevice' => 'Device must be set to a valid value',
|
'BadDevice' => 'Seadmel peab olema õige väärtus',
|
||||||
'BadFPSReportInterval' => 'FPS report interval buffer count must be an integer of 0 or more',
|
'BadFPSReportInterval' => 'FPS raporteerimise intervall puhvri hulk peab olema integer, null või rohkem',
|
||||||
'BadFormat' => 'Format must be set to a valid value',
|
'BadFormat' => 'Formaadiks peab olema pandud õige väärtus',
|
||||||
'BadFrameSkip' => 'Frame skip count must be an integer of zero or more',
|
'BadFrameSkip' => 'Kaadri vahelejätmise hulk peab olema integer, null või rohkem',
|
||||||
'BadMotionFrameSkip' => 'Motion Frame skip count must be an integer of zero or more',
|
'BadMotionFrameSkip' => 'Liikumise kaadri vahelejätmise hulk peab olema integer, null või rohkem',
|
||||||
'BadHeight' => 'Height must be set to a valid value',
|
'BadHeight' => 'Kõrguseks peab olema valitud õige väärtus',
|
||||||
'BadHost' => 'Host must be set to a valid ip address or hostname, do not include http://',
|
'BadHost' => 'Host ipeab olema õige. Ip aadress või hostinimi, ei tohi sisaldada http://',
|
||||||
'BadImageBufferCount' => 'Image buffer size must be an integer of 10 or more',
|
'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',
|
'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',
|
'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',
|
'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',
|
'BadWebColour' => 'Web colour must be a valid web colour string',
|
||||||
'BadWidth' => 'Width must be set to a valid value',
|
'BadWidth' => 'Width must be set to a valid value',
|
||||||
'Bandwidth' => 'Ribalaius',
|
'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',
|
'BlobPx' => 'Blob Px',
|
||||||
'BlobSizes' => 'Blob Sizes',
|
'BlobSizes' => 'Blob Sizes',
|
||||||
'Blobs' => 'Blobs',
|
'Blobs' => 'Blobs',
|
||||||
'Brightness' => 'Heledus',
|
'Brightness' => 'Heledus',
|
||||||
'Buffers' => 'Buffer',
|
'Buffers' => 'Puhver',
|
||||||
'CanAutoFocus' => 'Can Auto Focus',
|
'CanAutoFocus' => 'Can Auto Focus',
|
||||||
'CanAutoGain' => 'Can Auto Gain',
|
'CanAutoGain' => 'Can Auto Gain',
|
||||||
'CanAutoIris' => 'Can Auto Iris',
|
'CanAutoIris' => 'Can Auto Iris',
|
||||||
|
@ -209,10 +213,10 @@ $SLANG = array(
|
||||||
'ChoosePreset' => 'Choose Preset',
|
'ChoosePreset' => 'Choose Preset',
|
||||||
'Clear' => 'Clear', // Added - 2011-06-16
|
'Clear' => 'Clear', // Added - 2011-06-16
|
||||||
'Close' => 'Sule',
|
'Close' => 'Sule',
|
||||||
'Colour' => 'Colour',
|
'Colour' => 'Värv',
|
||||||
'Command' => 'Command',
|
'Command' => 'Käsk',
|
||||||
'Component' => 'Component', // Added - 2011-06-16
|
'Component' => 'Komponent', // Added - 2011-06-16
|
||||||
'Config' => 'Config',
|
'Config' => 'Seadistus',
|
||||||
'ConfiguredFor' => 'Seadistatud',
|
'ConfiguredFor' => 'Seadistatud',
|
||||||
'ConfirmDeleteEvents' => 'Oled sa kindel kustamaks valitud sündmused?',
|
'ConfirmDeleteEvents' => 'Oled sa kindel kustamaks valitud sündmused?',
|
||||||
'ConfirmPassword' => 'Kinnita salasõna',
|
'ConfirmPassword' => 'Kinnita salasõna',
|
||||||
|
@ -231,74 +235,74 @@ $SLANG = array(
|
||||||
'Controllable' => 'Controllable',
|
'Controllable' => 'Controllable',
|
||||||
'Cycle' => 'Cycle',
|
'Cycle' => 'Cycle',
|
||||||
'CycleWatch' => 'Cycle Watch',
|
'CycleWatch' => 'Cycle Watch',
|
||||||
'DateTime' => 'Date/Time', // Added - 2011-06-16
|
'DateTime' => 'Kuupäev/Aeg', // Added - 2011-06-16
|
||||||
'Day' => 'Päevas',
|
'Day' => 'Päevas',
|
||||||
'Debug' => 'Debug',
|
'Debug' => 'Debug',
|
||||||
'DefaultRate' => 'Default Rate',
|
'DefaultRate' => 'Default Kiirus',
|
||||||
'DefaultScale' => 'Default Scale',
|
'DefaultScale' => 'Default Suurus',
|
||||||
'DefaultView' => 'Default View',
|
'DefaultView' => 'Default Vaade',
|
||||||
'Delete' => 'Kustuta',
|
'Delete' => 'Kustuta',
|
||||||
'DeleteAndNext' => 'Delete & Next',
|
'DeleteAndNext' => 'Kustuta & Järgmine',
|
||||||
'DeleteAndPrev' => 'Delete & Prev',
|
'DeleteAndPrev' => 'Kustuta & Eelmine',
|
||||||
'DeleteSavedFilter' => 'Kustuta salvestatud filter',
|
'DeleteSavedFilter' => 'Kustuta salvestatud filter',
|
||||||
'Description' => 'Kirjeldus',
|
'Description' => 'Kirjeldus',
|
||||||
'DetectedCameras' => 'Tuvastatud kaamerad',
|
'DetectedCameras' => 'Tuvastatud kaamerad',
|
||||||
'Device' => 'Device',
|
'Device' => 'Seade',
|
||||||
'DeviceChannel' => 'Device Channel',
|
'DeviceChannel' => 'Seadme Kanal,
|
||||||
'DeviceFormat' => 'Device Format',
|
'DeviceFormat' => 'Seadme Formaat',
|
||||||
'DeviceNumber' => 'Device Number',
|
'DeviceNumber' => 'Seadme Number',
|
||||||
'DevicePath' => 'Device Path',
|
'DevicePath' => 'Seadme Path',
|
||||||
'Devices' => 'Devices',
|
'Devices' => 'Seadmed',
|
||||||
'Dimensions' => 'Dimensions',
|
'Dimensions' => 'Mõõdud',
|
||||||
'DisableAlarms' => 'Keela alarmid',
|
'DisableAlarms' => 'Keela alarmid',
|
||||||
'Disk' => 'Disk',
|
'Disk' => 'Ketas',
|
||||||
'Display' => 'Display', // Added - 2011-03-02
|
'Display' => 'Ekraan', // Added - 2011-03-02
|
||||||
'Displaying' => 'Displaying', // Added - 2011-06-16
|
'Displaying' => 'Väljapanek', // Added - 2011-06-16
|
||||||
'Donate' => 'Please Donate',
|
'Donate' => 'Palun Anneta',
|
||||||
'DonateAlready' => 'No, I\'ve already donated',
|
'DonateAlready' => 'EI, Ma olen juba annetanud',
|
||||||
'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.',
|
'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' => 'Not yet, remind again in 1 day',
|
'DonateRemindDay' => 'Ei veel, tuleta meelde ühe päeva pärast',
|
||||||
'DonateRemindHour' => 'Not yet, remind again in 1 hour',
|
'DonateRemindHour' => 'Ei veel, tuleta meelde ühe tunni pärast',
|
||||||
'DonateRemindMonth' => 'Not yet, remind again in 1 month',
|
'DonateRemindMonth' => 'Ei veel, tuleta meelde ühe kuu pärast',
|
||||||
'DonateRemindNever' => 'No, I don\'t want to donate, never remind',
|
'DonateRemindNever' => 'EI, Ma ei taha annetada, Vahet pole',
|
||||||
'DonateRemindWeek' => 'Not yet, remind again in 1 week',
|
'DonateRemindWeek' => 'EI veel, tuleta meelde nädala pärast,
|
||||||
'DonateYes' => 'Yes, I\'d like to donate now',
|
'DonateYes' => 'Jah, Ma soovin annetada',
|
||||||
'Download' => 'Lae alla',
|
'Download' => 'Lae alla',
|
||||||
'DuplicateMonitorName' => 'Duplicate Monitor Name',
|
'DuplicateMonitorName' => 'Dubleeri Monitori Nimi',
|
||||||
'Duration' => 'Kestvus',
|
'Duration' => 'Kestvus',
|
||||||
'Edit' => 'Edit',
|
'Edit' => 'Muuda',
|
||||||
'Email' => 'Email',
|
'Email' => 'Email',
|
||||||
'EnableAlarms' => 'Luba Alarmid',
|
'EnableAlarms' => 'Luba Alarmid',
|
||||||
'Enabled' => 'Lubatud',
|
'Enabled' => 'Lubatud',
|
||||||
'EnterNewFilterName' => 'Sisest uue filtri nimi',
|
'EnterNewFilterName' => 'Sisest uue filtri nimi',
|
||||||
'Error' => 'Viga',
|
'Error' => 'Viga',
|
||||||
'ErrorBrackets' => 'Error, please check you have an equal number of opening and closing brackets',
|
'ErrorBrackets' => 'Viga, please check you have an equal number of opening and closing brackets',
|
||||||
'ErrorValidValue' => 'Error, please check that all terms have a valid value',
|
'ErrorValidValue' => 'Viga, please check that all terms have a valid value',
|
||||||
'Etc' => 'etc',
|
'Etc' => 'etc',
|
||||||
'Event' => 'Syndmus',
|
'Event' => 'Sündmus',
|
||||||
'EventFilter' => 'Sündmuste filter',
|
'EventFilter' => 'Sündmuste filter',
|
||||||
'EventId' => 'Sündmuse Id',
|
'EventId' => 'Sündmuse Id',
|
||||||
'EventName' => 'Sündmuse nimi',
|
'EventName' => 'Sündmuse nimi',
|
||||||
'EventPrefix' => 'Event Prefix',
|
'EventPrefix' => 'Sündmuse Prefix',
|
||||||
'Events' => 'Sündmuseid',
|
'Events' => 'Sündmuseid',
|
||||||
'Exclude' => 'Exclude',
|
'Exclude' => 'Jäta välja',
|
||||||
'Execute' => 'Käivita',
|
'Execute' => 'Käivita',
|
||||||
'Export' => 'Export',
|
'Export' => 'Eksport,
|
||||||
'ExportDetails' => 'Export Event Details',
|
'ExportDetails' => 'Ekspordi Sündmuste Detailid',
|
||||||
'ExportFailed' => 'Export Failed',
|
'ExportFailed' => 'Eksportimine Ebaõnnestus',
|
||||||
'ExportFormat' => 'Export File Format',
|
'ExportFormat' => 'Ekspordi Faili Formaat',
|
||||||
'ExportFormatTar' => 'Tar',
|
'ExportFormatTar' => 'Tar',
|
||||||
'ExportFormatZip' => 'Zip',
|
'ExportFormatZip' => 'Zip',
|
||||||
'ExportFrames' => 'Export Frame Details',
|
'ExportFrames' => 'Ekspordi Kaadri Detailid',
|
||||||
'ExportImageFiles' => 'Export Image Files',
|
'ExportImageFiles' => 'Ekspordi Pildi Failid',
|
||||||
'ExportLog' => 'Export Log', // Added - 2011-06-17
|
'ExportLog' => 'Ekspordi Logi', // Added - 2011-06-17
|
||||||
'ExportMiscFiles' => 'Export Other Files (if present)',
|
'ExportMiscFiles' => 'Ekspordi Teisi Faile (kui neid on)',
|
||||||
'ExportOptions' => 'Export Options',
|
'ExportOptions' => 'Ekspordi Valikud',
|
||||||
'ExportSucceeded' => 'Export Succeeded',
|
'ExportSucceeded' => 'Eksportimine Õnnestus',
|
||||||
'ExportVideoFiles' => 'Export Video Files (if present)',
|
'ExportVideoFiles' => 'Export Video Files (kui neid on)',
|
||||||
'Exporting' => 'Exporting',
|
'Exporting' => 'Eksportimine',
|
||||||
'FPS' => 'fps',
|
'FPS' => 'fps',
|
||||||
'FPSReportInterval' => 'FPS Report Interval',
|
'FPSReportInterval' => 'FPS Raporteerimise Intervall,
|
||||||
'FTP' => 'FTP',
|
'FTP' => 'FTP',
|
||||||
'Far' => 'Far',
|
'Far' => 'Far',
|
||||||
'FastForward' => 'Fast Forward',
|
'FastForward' => 'Fast Forward',
|
||||||
|
@ -329,7 +333,7 @@ $SLANG = array(
|
||||||
'Format' => 'Format',
|
'Format' => 'Format',
|
||||||
'Frame' => 'Kaader',
|
'Frame' => 'Kaader',
|
||||||
'FrameId' => 'Frame Id',
|
'FrameId' => 'Frame Id',
|
||||||
'FrameRate' => 'Frame Rate',
|
'FrameRate' => 'Kaadri Sagedus',
|
||||||
'FrameSkip' => 'Frame Skip',
|
'FrameSkip' => 'Frame Skip',
|
||||||
'MotionFrameSkip' => 'Motion Frame Skip',
|
'MotionFrameSkip' => 'Motion Frame Skip',
|
||||||
'Frames' => 'Kaadrid',
|
'Frames' => 'Kaadrid',
|
||||||
|
@ -361,7 +365,7 @@ $SLANG = array(
|
||||||
'Hue' => 'Hue',
|
'Hue' => 'Hue',
|
||||||
'Id' => 'Id',
|
'Id' => 'Id',
|
||||||
'Idle' => 'Idle',
|
'Idle' => 'Idle',
|
||||||
'Ignore' => 'Ignore',
|
'Ignore' => 'Ignoreeri',
|
||||||
'Image' => 'Pilt',
|
'Image' => 'Pilt',
|
||||||
'ImageBufferSize' => 'Image Buffer Size (frames)',
|
'ImageBufferSize' => 'Image Buffer Size (frames)',
|
||||||
'Images' => 'Pildid',
|
'Images' => 'Pildid',
|
||||||
|
@ -384,18 +388,18 @@ $SLANG = array(
|
||||||
'List' => 'List',
|
'List' => 'List',
|
||||||
'Load' => 'Koormus',
|
'Load' => 'Koormus',
|
||||||
'Local' => 'Local',
|
'Local' => 'Local',
|
||||||
'Log' => 'Log', // Added - 2011-06-16
|
'Log' => 'Logi', // Added - 2011-06-16
|
||||||
'LoggedInAs' => 'Sisse logitud',
|
'LoggedInAs' => 'Sisse logitud',
|
||||||
'Logging' => 'Logging', // Added - 2011-06-16
|
'Logging' => 'Logimine', // Added - 2011-06-16
|
||||||
'LoggingIn' => 'Login sisse',
|
'LoggingIn' => 'Login sisse',
|
||||||
'Login' => 'Login',
|
'Login' => 'Login',
|
||||||
'Logout' => 'Logi välja',
|
'Logout' => 'Logi välja',
|
||||||
'Logs' => 'Logs', // Added - 2011-06-17
|
'Logs' => 'Logid', // Added - 2011-06-17
|
||||||
'Low' => 'Madal',
|
'Low' => 'Madal',
|
||||||
'LowBW' => 'Low B/W',
|
'LowBW' => 'Low B/W',
|
||||||
'Main' => 'Main',
|
'Main' => 'Pea',
|
||||||
'Man' => 'Man',
|
'Man' => 'Man',
|
||||||
'Manual' => 'Manual',
|
'Manual' => 'Juhend',
|
||||||
'Mark' => 'Märgi',
|
'Mark' => 'Märgi',
|
||||||
'Max' => 'Max',
|
'Max' => 'Max',
|
||||||
'MaxBandwidth' => 'Max Ribalaius',
|
'MaxBandwidth' => 'Max Ribalaius',
|
||||||
|
@ -468,53 +472,53 @@ $SLANG = array(
|
||||||
'Monitors' => 'Monitors',
|
'Monitors' => 'Monitors',
|
||||||
'Montage' => 'Montage',
|
'Montage' => 'Montage',
|
||||||
'Month' => 'Kuus',
|
'Month' => 'Kuus',
|
||||||
'More' => 'More', // Added - 2011-06-16
|
'More' => 'Veel', // Added - 2011-06-16
|
||||||
'Move' => 'Move',
|
'Move' => 'Liiguta',
|
||||||
'MtgDefault' => 'Default', // Added 2013.08.15.
|
'MtgDefault' => 'Default', // Added 2013.08.15.
|
||||||
'Mtg2widgrd' => '2-wide grid', // Added 2013.08.15.
|
'Mtg2widgrd' => '2-pildi ruudustik', // Added 2013.08.15.
|
||||||
'Mtg3widgrd' => '3-wide grid', // Added 2013.08.15.
|
'Mtg3widgrd' => '3-pildi ruudustik', // Added 2013.08.15.
|
||||||
'Mtg4widgrd' => '4-wide grid', // Added 2013.08.15.
|
'Mtg4widgrd' => '4-pildi ruudustik', // Added 2013.08.15.
|
||||||
'Mtg3widgrx' => '3-wide grid, scaled, enlarge on alarm', // Added 2013.08.15.
|
'Mtg3widgrx' => '3-pildi ruudustik, skaleeritud, suurenda kui on alarm', // Added 2013.08.15.
|
||||||
'MustBeGe' => 'must be greater than or equal to',
|
'MustBeGe' => 'peab olema suurem kui või võrdne ',
|
||||||
'MustBeLe' => 'must be less than or equal to',
|
'MustBeLe' => 'peab olema väiksem kui või võrdne',
|
||||||
'MustConfirmPassword' => 'You must confirm the password',
|
'MustConfirmPassword' => 'Sa pead kinnitama parooli',
|
||||||
'MustSupplyPassword' => 'You must supply a password',
|
'MustSupplyPassword' => 'Sa pead panema parooli',
|
||||||
'MustSupplyUsername' => 'You must supply a username',
|
'MustSupplyUsername' => 'Sa pead panema kasutaja nime',
|
||||||
'Name' => 'Sündmus',
|
'Name' => 'Sündmus',
|
||||||
'Near' => 'Near',
|
'Near' => 'Lähedal',
|
||||||
'Network' => 'Network',
|
'Network' => 'Võrk',
|
||||||
'New' => 'New',
|
'New' => 'Uus',
|
||||||
'NewGroup' => 'New Group',
|
'NewGroup' => 'Uus Krupp',
|
||||||
'NewLabel' => 'New Label',
|
'NewLabel' => 'Uus Nimi',
|
||||||
'NewPassword' => 'New Password',
|
'NewPassword' => 'Uus Parool',
|
||||||
'NewState' => 'New State',
|
'NewState' => 'Uus Olek',
|
||||||
'NewUser' => 'New User',
|
'NewUser' => 'Uus Kasutaja',
|
||||||
'Next' => 'Next',
|
'Next' => 'Järgmine',
|
||||||
'No' => 'No',
|
'No' => 'Ei',
|
||||||
'NoDetectedCameras' => 'No Detected Cameras',
|
'NoDetectedCameras' => 'Ei leidnud kaameraid',
|
||||||
'NoFramesRecorded' => 'There are no frames recorded for this event',
|
'NoFramesRecorded' => 'Ei ole kaadreid salvetatud selles sündmuses',
|
||||||
'NoGroup' => 'No Group',
|
'NoGroup' => 'Ei krupp',
|
||||||
'NoSavedFilters' => 'NoSavedFilters',
|
'NoSavedFilters' => 'EiSalvestatudFiltreid',
|
||||||
'NoStatisticsRecorded' => 'There are no statistics recorded for this event/frame',
|
'NoStatisticsRecorded' => 'Ei ole statistikat salvestatud selle sündmuse/kaadri kohta',
|
||||||
'None' => 'None',
|
'None' => 'None',
|
||||||
'NoneAvailable' => 'None available',
|
'NoneAvailable' => 'None available',
|
||||||
'Normal' => 'Normal',
|
'Normal' => 'Normaalne',
|
||||||
'Notes' => 'Notes',
|
'Notes' => 'Märkmed',
|
||||||
'NumPresets' => 'Num Presets',
|
'NumPresets' => 'Num Presets',
|
||||||
'Off' => 'Off',
|
'Off' => 'Väljas',
|
||||||
'On' => 'On',
|
'On' => 'Sees',
|
||||||
'OpEq' => 'equal to',
|
'OpEq' => 'Võrdne',
|
||||||
'OpGt' => 'greater than',
|
'OpGt' => 'Suurem kui',
|
||||||
'OpGtEq' => 'greater than or equal to',
|
'OpGtEq' => 'suurem kui või võrdne',
|
||||||
'OpIn' => 'in set',
|
'OpIn' => 'in set',
|
||||||
'OpLt' => 'less than',
|
'OpLt' => 'vähem kui',
|
||||||
'OpLtEq' => 'less than or equal to',
|
'OpLtEq' => 'vähem kui või võrdne',
|
||||||
'OpMatches' => 'matches',
|
'OpMatches' => 'klapib',
|
||||||
'OpNe' => 'not equal to',
|
'OpNe' => 'ei võrdne',
|
||||||
'OpNotIn' => 'not in set',
|
'OpNotIn' => 'not in set',
|
||||||
'OpNotMatches' => 'does not match',
|
'OpNotMatches' => 'ei klapi',
|
||||||
'Open' => 'Open',
|
'Open' => 'Ava',
|
||||||
'OptionHelp' => 'Option Help',
|
'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.',
|
'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',
|
'Options' => 'Seaded',
|
||||||
'OrEnterNewName' => 'või sisesta uus nimi',
|
'OrEnterNewName' => 'või sisesta uus nimi',
|
||||||
|
@ -532,28 +536,27 @@ $SLANG = array(
|
||||||
'PasswordsDifferent' => 'The new and confirm passwords are different',
|
'PasswordsDifferent' => 'The new and confirm passwords are different',
|
||||||
'Paths' => 'Paths',
|
'Paths' => 'Paths',
|
||||||
'Pause' => 'Pause',
|
'Pause' => 'Pause',
|
||||||
'Phone' => 'Phone',
|
'Phone' => 'Telefon',
|
||||||
'PhoneBW' => 'Phone B/W',
|
'PhoneBW' => 'Phone B/W',
|
||||||
'Pid' => 'PID', // Added - 2011-06-16
|
'Pid' => 'PID', // Added - 2011-06-16
|
||||||
'PixelDiff' => 'Pixel Diff',
|
'PixelDiff' => 'Pixel Diff',
|
||||||
'Pixels' => 'pixels',
|
'Pixels' => 'pikslid',
|
||||||
'Play' => 'Play',
|
'Play' => 'Play',
|
||||||
'PlayAll' => 'Play All',
|
'PlayAll' => 'Play Kõike',
|
||||||
'PleaseWait' => 'Please Wait',
|
'PleaseWait' => 'Palun Oota',
|
||||||
'Plugin' => 'Plugin',
|
'Plugins' => 'Pluginad',
|
||||||
'Plugins' => 'Plugins',
|
'Point' => 'Punkt',
|
||||||
'Point' => 'Point',
|
|
||||||
'PostEventImageBuffer' => 'Post Event Image Count',
|
'PostEventImageBuffer' => 'Post Event Image Count',
|
||||||
'PreEventImageBuffer' => 'Pre Event Image Count',
|
'PreEventImageBuffer' => 'Pre Event Image Count',
|
||||||
'PreserveAspect' => 'Preserve Aspect Ratio',
|
'PreserveAspect' => 'Preserve Aspect Ratio',
|
||||||
'Preset' => 'Preset',
|
'Preset' => 'Eelseatud',
|
||||||
'Presets' => 'Presets',
|
'Presets' => 'Eelseaded',
|
||||||
'Prev' => 'Prev',
|
'Prev' => 'Prev',
|
||||||
'Probe' => 'Probe',
|
'Probe' => 'Probe',
|
||||||
'Protocol' => 'Protocol',
|
'Protocol' => 'Protocol',
|
||||||
'Rate' => 'Rate',
|
'Rate' => 'Rate',
|
||||||
'Real' => 'Real',
|
'Real' => 'Reaaalne',
|
||||||
'Record' => 'Record',
|
'Record' => 'Salvesta',
|
||||||
'RefImageBlendPct' => 'Reference Image Blend %ge',
|
'RefImageBlendPct' => 'Reference Image Blend %ge',
|
||||||
'Refresh' => 'Värskenda',
|
'Refresh' => 'Värskenda',
|
||||||
'ReInitNatDet' => 'Reinit. Native Detection',
|
'ReInitNatDet' => 'Reinit. Native Detection',
|
||||||
|
@ -573,72 +576,72 @@ $SLANG = array(
|
||||||
'RequireNatDet' => 'Require Native Detection',
|
'RequireNatDet' => 'Require Native Detection',
|
||||||
'Reset' => 'Reset',
|
'Reset' => 'Reset',
|
||||||
'ResetEventCounts' => 'Reset Event Counts',
|
'ResetEventCounts' => 'Reset Event Counts',
|
||||||
'Restart' => 'Restart',
|
'Restart' => 'Taaskäivita',
|
||||||
'Restarting' => 'Restarting',
|
'Restarting' => 'Restarting',
|
||||||
'RestrictedCameraIds' => 'Restricted Camera Ids',
|
'RestrictedCameraIds' => 'Restricted Camera Ids',
|
||||||
'RestrictedMonitors' => 'Restricted Monitors',
|
'RestrictedMonitors' => 'Restricted Monitors',
|
||||||
'ReturnDelay' => 'Return Delay',
|
'ReturnDelay' => 'Return Delay',
|
||||||
'ReturnLocation' => 'Return Location',
|
'ReturnLocation' => 'Return Location',
|
||||||
'Rewind' => 'Rewind',
|
'Rewind' => 'Rewind',
|
||||||
'RotateLeft' => 'Rotate Left',
|
'RotateLeft' => 'Pööra vasakule',
|
||||||
'RotateRight' => 'Rotate Right',
|
'RotateRight' => 'Pööra paremale',
|
||||||
'RunLocalUpdate' => 'Please run zmupdate.pl to update', // Added - 2011-05-25
|
'RunLocalUpdate' => 'Please run zmupdate.pl to update', // Added - 2011-05-25
|
||||||
'RunMode' => 'Run Mode',
|
'RunMode' => 'Käimis resiim',
|
||||||
'RunState' => 'Run State',
|
'RunState' => 'Käimis olek',
|
||||||
'Running' => 'Töötab',
|
'Running' => 'Töötab',
|
||||||
'Save' => 'Save',
|
'Save' => 'Salvesta',
|
||||||
'SaveAs' => 'Save as',
|
'SaveAs' => 'Salvesta kui',
|
||||||
'SaveFilter' => 'Save Filter',
|
'SaveFilter' => 'Salvesta Filter',
|
||||||
'Scale' => 'Scale',
|
'Scale' => 'Skaala',
|
||||||
'Score' => 'Score',
|
'Score' => 'Skoor',
|
||||||
'Secs' => 'Secs',
|
'Secs' => 'Secs',
|
||||||
'Sectionlength' => 'Section length',
|
'Sectionlength' => 'Section length',
|
||||||
'Select' => 'Select',
|
'Select' => 'Selekteeri',
|
||||||
'SelectFormat' => 'Select Format', // Added - 2011-06-17
|
'SelectFormat' => 'Selekteeri Formaat', // Added - 2011-06-17
|
||||||
'SelectLog' => 'Select Log', // Added - 2011-06-17
|
'SelectLog' => 'Selekteeri logi', // Added - 2011-06-17
|
||||||
'SelectMonitors' => 'Select Monitors',
|
'SelectMonitors' => 'Selekteeri Monitorid',
|
||||||
'SelfIntersecting' => 'Polygon edges must not intersect',
|
'SelfIntersecting' => 'Polygon edges must not intersect',
|
||||||
'Set' => 'Set',
|
'Set' => 'Säti',
|
||||||
'SetNewBandwidth' => 'Set New Bandwidth',
|
'SetNewBandwidth' => 'Vali uus riba laius',
|
||||||
'SetPreset' => 'Set Preset',
|
'SetPreset' => 'Set Preset',
|
||||||
'Settings' => 'Settings',
|
'Settings' => 'Sätted',
|
||||||
'ShowFilterWindow' => 'Show Filter Window',
|
'ShowFilterWindow' => 'Näita Filtri Akent',
|
||||||
'ShowTimeline' => 'Show Timeline',
|
'ShowTimeline' => 'Näita Timeline',
|
||||||
'SignalCheckColour' => 'Signal Check Colour',
|
'SignalCheckColour' => 'Signaali Kontroll Värv',
|
||||||
'Size' => 'Size',
|
'Size' => 'Suurus',
|
||||||
'SkinDescription' => 'Change the default skin for this computer', // Added - 2011-03-02
|
'SkinDescription' => 'Vaheta veebilehe välimus selles arvutis', // Added - 2011-03-02
|
||||||
'Sleep' => 'Sleep',
|
'Sleep' => 'Maga',
|
||||||
'SortAsc' => 'Asc',
|
'SortAsc' => 'Kasvav',
|
||||||
'SortBy' => 'Sort by',
|
'SortBy' => 'Sorteeri',
|
||||||
'SortDesc' => 'Desc',
|
'SortDesc' => 'Kahanev',
|
||||||
'Source' => 'Allikas',
|
'Source' => 'Allikas',
|
||||||
'SourceColours' => 'Source Colours',
|
'SourceColours' => 'Allika Värvid',
|
||||||
'SourcePath' => 'Source Path',
|
'SourcePath' => 'Allika Path',
|
||||||
'SourceType' => 'Source Type',
|
'SourceType' => 'Allika tüüp',
|
||||||
'Speed' => 'Speed',
|
'Speed' => 'Kiirus',
|
||||||
'SpeedHigh' => 'High Speed',
|
'SpeedHigh' => 'Kiire Kiirus',
|
||||||
'SpeedLow' => 'Low Speed',
|
'SpeedLow' => 'Madal Kiirus',
|
||||||
'SpeedMedium' => 'Medium Speed',
|
'SpeedMedium' => 'Keskmine Kiirus',
|
||||||
'SpeedTurbo' => 'Turbo Speed',
|
'SpeedTurbo' => 'Turbo Kiirus',
|
||||||
'Start' => 'Start',
|
'Start' => 'Start',
|
||||||
'State' => 'State',
|
'State' => 'Olek',
|
||||||
'Stats' => 'Stats',
|
'Stats' => 'Statistika',
|
||||||
'Status' => 'Status',
|
'Status' => 'Staatus',
|
||||||
'Step' => 'Step',
|
'Step' => 'Samm',
|
||||||
'StepBack' => 'Step Back',
|
'StepBack' => 'Samm tagasi',
|
||||||
'StepForward' => 'Step Forward',
|
'StepForward' => 'Samm edasi',
|
||||||
'StepLarge' => 'Large Step',
|
'StepLarge' => 'Suur Samm',
|
||||||
'StepMedium' => 'Medium Step',
|
'StepMedium' => 'Keskmine Samm',
|
||||||
'StepNone' => 'No Step',
|
'StepNone' => 'Ei Samm',
|
||||||
'StepSmall' => 'Small Step',
|
'StepSmall' => 'Väike Samm',
|
||||||
'Stills' => 'Stills',
|
'Stills' => 'Stills',
|
||||||
'Stop' => 'Stop',
|
'Stop' => 'Stop',
|
||||||
'Stopped' => 'Stopped',
|
'Stopped' => 'Stopitud',
|
||||||
'Stream' => 'Stream',
|
'Stream' => 'Striim',
|
||||||
'StreamReplayBuffer' => 'Stream Replay Image Buffer',
|
'StreamReplayBuffer' => 'Striimi Replay Pildi Puhver',
|
||||||
'Submit' => 'Submit',
|
'Submit' => 'Submit',
|
||||||
'System' => 'System',
|
'System' => 'Süsteem',
|
||||||
'SystemLog' => 'System Log', // Added - 2011-06-16
|
'SystemLog' => 'Süsteemi Logi', // Added - 2011-06-16
|
||||||
'Tele' => 'Tele',
|
'Tele' => 'Tele',
|
||||||
'Thumbnail' => 'Thumbnail',
|
'Thumbnail' => 'Thumbnail',
|
||||||
'Tilt' => 'Tilt',
|
'Tilt' => 'Tilt',
|
||||||
|
@ -646,7 +649,7 @@ $SLANG = array(
|
||||||
'TimeDelta' => 'Time Delta',
|
'TimeDelta' => 'Time Delta',
|
||||||
'TimeStamp' => 'Time Stamp',
|
'TimeStamp' => 'Time Stamp',
|
||||||
'Timeline' => 'Timeline',
|
'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.
|
'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.
|
'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.
|
'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',
|
'TimestampLabelFormat' => 'Timestamp Label Format',
|
||||||
'TimestampLabelX' => 'Timestamp Label X',
|
'TimestampLabelX' => 'Timestamp Label X',
|
||||||
'TimestampLabelY' => 'Timestamp Label Y',
|
'TimestampLabelY' => 'Timestamp Label Y',
|
||||||
'Today' => 'Today',
|
'Today' => 'Täna',
|
||||||
'Tools' => 'Tools',
|
'Tools' => 'Tööriistad',
|
||||||
'Total' => 'Total', // Added - 2011-06-16
|
'Total' => 'Summa', // Added - 2011-06-16
|
||||||
'TotalBrScore' => 'Total<br/>Score',
|
'TotalBrScore' => 'Summa<br/>Skoor',
|
||||||
'TrackDelay' => 'Track Delay',
|
'TrackDelay' => 'Jälgimise Viide',
|
||||||
'TrackMotion' => 'Track Motion',
|
'TrackMotion' => 'Jälgi Liikumist',
|
||||||
'Triggers' => 'Triggers',
|
'Triggers' => 'Trigerid',
|
||||||
'TurboPanSpeed' => 'Turbo Pan Speed',
|
'TurboPanSpeed' => 'Turbo Pan Speed',
|
||||||
'TurboTiltSpeed' => 'Turbo Tilt Speed',
|
'TurboTiltSpeed' => 'Turbo Tilt Speed',
|
||||||
'Type' => 'Type',
|
'Type' => 'Tüüp',
|
||||||
'Unarchive' => 'Unarchive',
|
'Unarchive' => 'Eemalda Arhiivist',
|
||||||
'Undefined' => 'Undefined',
|
'Undefined' => 'Defineerimatta',
|
||||||
'Units' => 'Units',
|
'Units' => 'Ühikud',
|
||||||
'Unknown' => 'Unknown',
|
'Unknown' => 'Tundmatu',
|
||||||
'Update' => 'Update',
|
'Update' => 'Uuenda',
|
||||||
'UpdateAvailable' => 'An update to ZoneMinder is available.',
|
'UpdateAvailable' => 'Uuendus ZoneMinder-ile saadaval.',
|
||||||
'UpdateNotNecessary' => 'No update is necessary.',
|
'UpdateNotNecessary' => 'Uuendus ei ole vajalik.',
|
||||||
'Updated' => 'Updated', // Added - 2011-06-16
|
'Updated' => 'Uuendatud', // Added - 2011-06-16
|
||||||
'Upload' => 'Upload', // Added - 2011-08-23
|
'Upload' => 'Üles laadimine', // Added - 2011-08-23
|
||||||
'UsedPlugins' => 'Used Plugins',
|
'UseFilter' => 'Kasuta Filtrit',
|
||||||
'UseFilter' => 'Use Filter',
|
|
||||||
'UseFilterExprsPost' => ' filter expressions', // This is used at the end of the phrase 'use N filter expressions'
|
'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'
|
'UseFilterExprsPre' => 'Use ', // This is used at the beginning of the phrase 'use N filter expressions'
|
||||||
'User' => 'User',
|
'User' => 'Kasutaja',
|
||||||
'Username' => 'Username',
|
'Username' => 'Kasutajanimi',
|
||||||
'Users' => 'Users',
|
'Users' => 'Kasutajad',
|
||||||
'Value' => 'Value',
|
'Value' => 'Väärtus',
|
||||||
'Version' => 'Version',
|
'Version' => 'Versioon',
|
||||||
'VersionIgnore' => 'Ignore this version',
|
'VersionIgnore' => 'Ignoreeri See Versioon',
|
||||||
'VersionRemindDay' => 'Remind again in 1 day',
|
'VersionRemindDay' => 'Meenuta uuesti päeva pärast',
|
||||||
'VersionRemindHour' => 'Remind again in 1 hour',
|
'VersionRemindHour' => 'Meenuta uuesti tunni pärast',
|
||||||
'VersionRemindNever' => 'Don\'t remind about new versions',
|
'VersionRemindNever' => 'Ära Meenuta Uuest Versioonist',
|
||||||
'VersionRemindWeek' => 'Remind again in 1 week',
|
'VersionRemindWeek' => 'Meenuta uuesti nädalapärast',
|
||||||
'Video' => 'Video',
|
'Video' => 'Video',
|
||||||
'VideoFormat' => 'Video Format',
|
'VideoFormat' => 'Video Formaat',
|
||||||
'VideoGenFailed' => 'Video Generation Failed!',
|
'VideoGenFailed' => 'Video Genereerimine Ebaõnnestus!!!',
|
||||||
'VideoGenFiles' => 'Existing Video Files',
|
'VideoGenFiles' => 'Existing Video Files',
|
||||||
'VideoGenNoFiles' => 'No Video Files Found',
|
'VideoGenNoFiles' => 'Ei Leitud Video Faile',
|
||||||
'VideoGenParms' => 'Video Generation Parameters',
|
'VideoGenParms' => 'Video Genereerimise Parameetrid',
|
||||||
'VideoGenSucceeded' => 'Video Generation Succeeded!',
|
'VideoGenSucceeded' => 'Video Genereerimine Õnnestus!!!',
|
||||||
'VideoSize' => 'Video Size',
|
'VideoSize' => 'Video Suurus',
|
||||||
'View' => 'View',
|
'View' => 'Vaata',
|
||||||
'ViewAll' => 'View All',
|
'ViewAll' => 'View All',
|
||||||
'ViewEvent' => 'View Event',
|
'ViewEvent' => 'Vaata Sündmust',
|
||||||
'ViewPaged' => 'View Paged',
|
'ViewPaged' => 'View Paged',
|
||||||
'Wake' => 'Wake',
|
'Wake' => 'Wake',
|
||||||
'WarmupFrames' => 'Warmup Frames',
|
'WarmupFrames' => 'Warmup Frames',
|
||||||
'Watch' => 'Watch',
|
'Watch' => 'Vaata',
|
||||||
'Web' => 'Web',
|
'Web' => 'Veeb',
|
||||||
'WebColour' => 'Web Colour',
|
'WebColour' => 'Veebi värv',
|
||||||
'Week' => 'Nädalas',
|
'Week' => 'Nädalas',
|
||||||
'White' => 'White',
|
'White' => 'White',
|
||||||
'WhiteBalance' => 'White Balance',
|
'WhiteBalance' => 'White Balance',
|
||||||
|
@ -713,12 +715,12 @@ $SLANG = array(
|
||||||
'X10ActivationString' => 'X10 Activation String',
|
'X10ActivationString' => 'X10 Activation String',
|
||||||
'X10InputAlarmString' => 'X10 Input Alarm String',
|
'X10InputAlarmString' => 'X10 Input Alarm String',
|
||||||
'X10OutputAlarmString' => 'X10 Output Alarm String',
|
'X10OutputAlarmString' => 'X10 Output Alarm String',
|
||||||
'Y' => 'Y',
|
'Y' => 'J',
|
||||||
'Yes' => 'Yes',
|
'Yes' => 'Jah',
|
||||||
'YouNoPerms' => 'You do not have permissions to access this resource.',
|
'YouNoPerms' => 'Sul ei ole õigusi kasutada seda ressurssi.',
|
||||||
'Zone' => 'Tsoon',
|
'Zone' => 'Tsoon',
|
||||||
'ZoneAlarmColour' => 'Alarm Colour (Red/Green/Blue)',
|
'ZoneAlarmColour' => 'Alarmi Värv (Red"Punane"/Green"Roheline"/Blue"Sinine")',
|
||||||
'ZoneArea' => 'Zone Area',
|
'ZoneArea' => 'Tsooni Ala',
|
||||||
'ZoneFilterSize' => 'Filter Width/Height (pixels)',
|
'ZoneFilterSize' => 'Filter Width/Height (pixels)',
|
||||||
'ZoneMinMaxAlarmArea' => 'Min/Max Alarmed Area',
|
'ZoneMinMaxAlarmArea' => 'Min/Max Alarmed Area',
|
||||||
'ZoneMinMaxBlobArea' => 'Min/Max Blob Area',
|
'ZoneMinMaxBlobArea' => 'Min/Max Blob Area',
|
||||||
|
@ -729,9 +731,9 @@ $SLANG = array(
|
||||||
'ZoneOverloadFrames' => 'Overload Frame Ignore Count',
|
'ZoneOverloadFrames' => 'Overload Frame Ignore Count',
|
||||||
'ZoneExtendAlarmFrames' => 'Extend Alarm Frame Count',
|
'ZoneExtendAlarmFrames' => 'Extend Alarm Frame Count',
|
||||||
'Zones' => 'Tsoone',
|
'Zones' => 'Tsoone',
|
||||||
'Zoom' => 'Zoom',
|
'Zoom' => 'Suurenda',
|
||||||
'ZoomIn' => 'Zoom In',
|
'ZoomIn' => 'Suurenda lähemale',
|
||||||
'ZoomOut' => 'Zoom Out',
|
'ZoomOut' => 'Suurenda kaugemale',
|
||||||
);
|
);
|
||||||
|
|
||||||
// Complex replacements with formatting and/or placements, must be passed through sprintf
|
// Complex replacements with formatting and/or placements, must be passed through sprintf
|
||||||
|
|
|
@ -2,6 +2,5 @@ AUTOMAKE_OPTIONS = gnu
|
||||||
|
|
||||||
SUBDIRS = \
|
SUBDIRS = \
|
||||||
classic \
|
classic \
|
||||||
flat \
|
|
||||||
mobile \
|
mobile \
|
||||||
xml
|
xml
|
||||||
|
|
|
@ -2,7 +2,5 @@ AUTOMAKE_OPTIONS = gnu
|
||||||
|
|
||||||
webdir = @WEB_PREFIX@/skins/classic/css
|
webdir = @WEB_PREFIX@/skins/classic/css
|
||||||
|
|
||||||
dist_web_DATA = \
|
SUBDIRS = flat \
|
||||||
skin.css \
|
classic
|
||||||
control.css \
|
|
||||||
export.css
|
|
||||||
|
|
|
@ -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 {
|
.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 {
|
.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 {
|
.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 {
|
.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 {
|
.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 {
|
.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 {
|
.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 {
|
.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 {
|
.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 {
|
.ptzControls .controlsPanel .pantiltPanel .powerControls {
|
|
@ -1,6 +1,6 @@
|
||||||
AUTOMAKE_OPTIONS = gnu
|
AUTOMAKE_OPTIONS = gnu
|
||||||
|
|
||||||
webdir = @WEB_PREFIX@/skins/flat/views/css
|
webdir = @WEB_PREFIX@/skins/classic/css/classic/views
|
||||||
|
|
||||||
dist_web_DATA = \
|
dist_web_DATA = \
|
||||||
console.css \
|
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 {
|
#menuBar {
|
||||||
margin: 6px auto 4px;
|
margin: 6px auto 4px;
|
|
@ -1,6 +1,8 @@
|
||||||
AUTOMAKE_OPTIONS = gnu
|
AUTOMAKE_OPTIONS = gnu
|
||||||
|
|
||||||
webdir = @WEB_PREFIX@/skins/flat/css
|
webdir = @WEB_PREFIX@/skins/classic/css/flat
|
||||||
|
|
||||||
|
SUBDIRS = views
|
||||||
|
|
||||||
dist_web_DATA = \
|
dist_web_DATA = \
|
||||||
skin.css \
|
skin.css \
|
|
@ -91,39 +91,39 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.ptzControls .controlsPanel .pantiltPanel .pantiltControls .upLeftBtn {
|
.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 {
|
.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 {
|
.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 {
|
.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 {
|
.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 {
|
.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 {
|
.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 {
|
.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 {
|
.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 {
|
.ptzControls .controlsPanel .pantiltPanel .powerControls {
|
|
@ -1,6 +1,6 @@
|
||||||
AUTOMAKE_OPTIONS = gnu
|
AUTOMAKE_OPTIONS = gnu
|
||||||
|
|
||||||
webdir = @WEB_PREFIX@/skins/classic/views/css
|
webdir = @WEB_PREFIX@/skins/classic/css/flat/views
|
||||||
|
|
||||||
dist_web_DATA = \
|
dist_web_DATA = \
|
||||||
console.css \
|
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