diff --git a/specs/Guez_Ausbilderterminal.iss b/specs/Guez_Ausbilderterminal.iss new file mode 100755 index 000000000..b2a067c79 --- /dev/null +++ b/specs/Guez_Ausbilderterminal.iss @@ -0,0 +1,146 @@ +; Script generated by the Inno Setup Script Wizard. +; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! + +[Setup] +; NOTE: The value of AppId uniquely identifies this application. +; Do not use the same AppId value in installers for other applications. +; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) +#ifndef sourceDir + #define sourceDir='T:\Jenkins\workspace\TDS-OC-64-Trunk\TDS-rpm' +#endif + +#ifndef buildDir + #define buildDir='T:\Jenkins\workspace\TDS-OC-64-Trunk\TDS-build-rpm' +#endif + +#ifndef instDir + #define instDir='T:\Jenkins\workspace\TDS-OC-64-Trunk\TDS-inst' +#endif + +#ifndef licenceDir + #define licenceDir='T:\Jenkins\workspace\TDS-OC-64-Trunk\TDS-rpm\Lts\Projects\Guez' +#endif + +#ifndef helpDir + #define helpDir='T:\OnlineHelp\guez' +#endif + +#ifndef dbname + #define dbName='guez_pro_db.sql' +#endif + +#ifndef Version + #define Version="7.2" +#endif + +AppId={{3F4F4542-E83F-4414-8D3D-AF18E2F795F6} +AppName=GÜZ Ausbilderterminal +AppVersion={#Version} +AppPublisher=LifeMaps GmbH +AppPublisherURL=life-maps.com/de/lifemaps/company/divisions_and_subsidiaries/lifemaps/index.php +AppSupportURL=life-maps.com/de/lifemaps/company/divisions_and_subsidiaries/lifemaps/index.php +AppUpdatesURL=life-maps.com/de/lifemaps/company/divisions_and_subsidiaries/lifemaps/index.php +Compression=lzma +DefaultDirName=C:\LifeMaps\Lts +DisableDirPage=yes +DefaultGroupName=GÜZ Ausbilderterminal +DisableProgramGroupPage=yes +OutputBaseFilename=GÜZ_Ausbilderterminal_{#SetupSetting("AppVersion")} +SetupIconFile={#sourceDir}\Lts\Plugins\Styles\Light\resources\icons\16x16\rde.ico +SolidCompression=yes +UsePreviousAppDir=no +UsePreviousGroup=no + + +[Languages] +Name: "english"; MessagesFile: "compiler:Default.isl" +Name: "german"; MessagesFile: "compiler:Languages\German.isl" + +[Types] +Name: full; Description: "Full installation"; +Name: custom; Description: "Custom installation"; Flags: isCustom + +[Components] +Name: ABT; Description: ABT Application; Types: full +#ifndef noHelp +Name: HELP; Description: Online Help; Types: full +#endif + +#ifndef noSV +Name: SV; Description: Server Services; Types: full +#endif + +#ifndef noDB +Name: DB; Description: Database; Types: full +#endif +[Files] +;Component WS +Source: "{#instDir}\srt\*"; DestDir: "{app}\WS"; Components: ABT; Flags: ignoreversion recursesubdirs createallsubdirs +Source: "{#buildDir}\lts-cc.conf"; DestDir: "{app}\"; Components: ABT; Flags: ignoreversion + +#ifndef noSV +;Component SV +Source: "{#instDir}\srv\*"; DestDir: "{app}\SV\"; Components: SV; Flags: ignoreversion recursesubdirs createallsubdirs +;Source: "{#buildDir}\lts-cc.conf"; DestDir: "{app}\"; Components: SV; Flags: ignoreversion ; Do not copy on SV +Source: "{#sourceDir}\Lts\Proxies\TrainingAreaBaseOC\taboc.dat"; DestDir: "{app}\SV\"; Components: SV; Flags: ignoreversion +Source: "{#licenceDir}\oc_licence_file.crl"; DestDir: "{app}\SV\share\Lts\Licence"; Components: SV; Flags: ignoreversion +Source: "{#licenceDir}\licence_file.crl"; DestDir: "{app}\SV\share\Lts\Licence"; Components: SV; Flags: ignoreversion +#endif + +#ifndef noHelp +;Component HELP +Source: "{#helpDir}\share\*"; DestDir: "{app}\WS\share"; Components: HELP; Flags: ignoreversion recursesubdirs createallsubdirs +#endif + +;Component DB +#ifndef noDB +Source: "{#buildDir}\bin\test\create_excon_db.py"; DestDir: "{app}\DB"; Components: DB; Flags: ignoreversion +Source: "{#buildDir}\bin\test\init_db_users_grants.sql"; DestDir: "{app}\DB"; Components: DB; Flags: ignoreversion +Source: "{#buildDir}\bin\test\init_db_procedures.sql"; DestDir: "{app}\DB"; Components: DB; Flags: ignoreversion +Source: "{#instDir}\{#dbName}"; DestDir: "{app}\DB"; Components: DB; Flags: ignoreversion +Source: "{#buildDir}\lts-cc.conf"; DestDir: "{app}\DB"; Components: DB; Flags: ignoreversion +#endif + +;Source: "Redist\vc_redist.x64.exe"; DestDir: {tmp}; Flags: deleteafterinstall + +; NOTE: Don't use "Flags: ignoreversion" on any shared system files + +[Icons] +Name: "{group}\Legatus EXCON"; Filename: "{app}\OperatorApplication.exe" + +[Run] +Filename: "{app}\WS\vc_redist.x64.exe"; Check: VCRedistNeedsInstall +[Run] +#ifndef noDB +Filename: "cmd"; Parameters: "/c{app}\DB\create_excon_db.py -d lts_ets_pro -p guez -f {#dbName}"; WorkingDir: "{app}\DB"; Components: DB; Flags: waituntilterminated +#endif + +[Code] +#IFDEF UNICODE + #DEFINE AW "W" +#ELSE + #DEFINE AW "A" +#ENDIF +type + INSTALLSTATE = Longint; +const + INSTALLSTATE_INVALIDARG = -2; { An invalid parameter was passed to the function. } + INSTALLSTATE_UNKNOWN = -1; { The product is neither advertised or installed. } + INSTALLSTATE_ADVERTISED = 1; { The product is advertised but not installed. } + INSTALLSTATE_ABSENT = 2; { The product is installed for a different user. } + INSTALLSTATE_DEFAULT = 5; { The product is installed for the current user. } + + VC_2017_REDIST_X64 = '{F106B700-BFF8-3065-B305-14D36AD40539}'; + +function MsiQueryProductState(szProduct: string): INSTALLSTATE; + external 'MsiQueryProductState{#AW}@msi.dll stdcall'; + +function VCVersionInstalled(const ProductID: string): Boolean; +begin + Result := MsiQueryProductState(ProductID) = INSTALLSTATE_DEFAULT; +end; + +function VCRedistNeedsInstall: Boolean; +begin + Result := VCVersionInstalled(VC_2017_REDIST_X64); +end; diff --git a/specs/external/GeographicLib-1.49.spec b/specs/external/GeographicLib-1.49.spec new file mode 100755 index 000000000..ac0e3bb7f --- /dev/null +++ b/specs/external/GeographicLib-1.49.spec @@ -0,0 +1,87 @@ +# +# spec file for package GeographicLib +# $Revision$ +# $Date$ +# $Id$ +# + +%define real_name GeographicLib +%define ctc_name ctc_%{real_name} + +Name: %{ctc_name} +#BuildRequires: - +Provides: %{ctc_name} +Url: http://geographiclib.sourceforge.net/ +License: MIT/X11 License +Group: System/Libraries +Summary: Coordinate conversion library +Version: 1.49 +Release: 1 +Source: %{real_name}-%{version}.tar.gz +%if 0%{?suse_version} < 1120 +BuildRoot: %{_tmppath}/%{real_name}-%{version}-build +%endif +AutoReqProv: no + +%debug_package + +%description +GeographicLib is a small set of C++ classes for performing conversions between geographic, UTM, UPS, MGRS, geocentric, and local cartesian coordinates, for geoid height calculations, and for solving geodesic problems. It is a suitable replacement for the core functionality provided by geotrans. + +%package devel +#BuildRequires: - +Requires: %{ctc_name} +Provides: %{ctc_name}-devel +License: LGPL v3 +Group: Development/Libraries +Summary: Coordinate conersion library + +%description devel +You need this package, if you want to compile programs with GeographicLib. + +%prep +%setup -q -n %{real_name}-%{version} + +%build +export CURRENT_ROOT=`pwd` + +rm -fr $CURRENT_ROOT/../build-%{name}-%{version} +mkdir $CURRENT_ROOT/../build-%{name}-%{version} +cd $CURRENT_ROOT/../build-%{name}-%{version} +cmake $CURRENT_ROOT \ + -DLIB_SUFFIX=64 \ + -DCMAKE_INSTALL_PREFIX=%{_prefix} +make %{?_smp_mflags} + +%install +export CURRENT_ROOT=`pwd` +export DONT_STRIP=1 + +cd $CURRENT_ROOT/../build-%{name}-%{version} +make DESTDIR=%{?buildroot:%{buildroot}} install + +%if 0%{?suse_version} < 1120 +%clean +%{__rm} -rf '%{buildroot}' +%endif + +%files +%defattr(-,root,root,755) +%{_prefix}/bin/ +%{_prefix}/sbin/geographiclib-get-geoids +%{_prefix}/sbin/geographiclib-get-gravity +%{_prefix}/sbin/geographiclib-get-magnetic +%{_prefix}/lib64/ +%exclude %{_prefix}/lib64/python +%{_prefix}/share/man/ +%{_prefix}/share/matlab/ + +%files devel +%defattr(-,root,root,755) +%{_prefix}/include/ +%{_prefix}/lib64/cmake/ +%{_prefix}/share/doc/ + +%changelog +* Sun Jan 23 2011 Christian Ehrlicher +- initial version diff --git a/specs/external/OpenSceneGraph-3.2.3.spec b/specs/external/OpenSceneGraph-3.2.3.spec new file mode 100755 index 000000000..9bc220909 --- /dev/null +++ b/specs/external/OpenSceneGraph-3.2.3.spec @@ -0,0 +1,78 @@ +# +# spec file for package OpenSceneGraph (Version 3.1.7) +# $Revision$ +# $Date$ +# $Id$ +# + +%define real_name OpenSceneGraph +%define ctc_name ctc_%{real_name} + +Name: %{ctc_name} +BuildRequires: cmake +Provides: %{ctc_name} +Url: http://www.openscenegraph.org/ +License: OpenSceneGraph Public License +Group: System/Libraries +Summary: The OpenSceneGraph is an open source high performance 3D graphics toolkit +Version: 3.2.3 +Release: 2 +Source: %{real_name}-%{version}.zip +%if 0%{?suse_version} < 1120 +BuildRoot: %{_tmppath}/%{real_name}-%{version}-build +%endif +BuildRoot: %{_tmppath}/%{name}-%{version}-build +AutoReqProv: no + +%debug_package + +%description +The OpenSceneGraph is an open source high performance 3D graphics toolkit, used by application developers in fields such as visual simulation, games, virtual reality, scientific visualization and modelling. Written entirely in Standard C++ and OpenGL it runs on all Windows platforms, OSX, GNU/Linux, IRIX, Solaris, HP-Ux, AIX and FreeBSD operating systems. The OpenSceneGraph is now well established as the world leading scene graph technology, used widely in the vis-sim, space, scientific, oil-gas, games and virtual reality industries. + +%package devel +#BuildRequires: - +Requires: %{name} +Provides: ctc_%{name}-devel +License: OpenSceneGraph Public License +Group: Development/Libraries +Summary: The OpenSceneGraph is an open source high performance 3D graphics toolkit + +%description devel +You need this package, if you want to compile programs with OSG. + +%prep +%setup -q -n %{real_name}-%{version} + +%build +export CURRENT_ROOT=`pwd` + +rm -fr $CURRENT_ROOT/../build-%{name}-%{version} +mkdir $CURRENT_ROOT/../build-%{name}-%{version} +cd $CURRENT_ROOT/../build-%{name}-%{version} +cmake $CURRENT_ROOT -DDESIRED_QT_VERSION=5 -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_RELWITHDEBINFO_POSTFIX="" -DCMAKE_INSTALL_PREFIX=%{_prefix} +make %{?_smp_mflags} + +%install +export CURRENT_ROOT=`pwd` +export DONT_STRIP=1 + +cd $CURRENT_ROOT/../build-%{name}-%{version} +make DESTDIR=%{?buildroot:%{buildroot}} install + +%if 0%{?suse_version} < 1120 +%clean +%{__rm} -rf '%{buildroot}' +%endif + +%files +%defattr(-,root,root,755) +%{_prefix}/bin/ +%{_prefix}/lib64/ + +%files devel +%defattr(-,root,root,755) +%{_prefix}/include/ + +%changelog +* Sun Jan 23 2011 Christian Ehrlicher +- initial version diff --git a/specs/external/avs_conf/avs_conf-if.spec.in b/specs/external/avs_conf/avs_conf-if.spec.in new file mode 100755 index 000000000..d3119904d --- /dev/null +++ b/specs/external/avs_conf/avs_conf-if.spec.in @@ -0,0 +1,76 @@ +# +# $Id$ +# $HeadURL$ +# + +%define conf_dir /opt/AVS/etc +%define project @PROJECT@ + +Name: %{project}_avs_conf-if +Summary: AVS configuration for AVS-CNR-Interface for CNR (RadioStations) +Version: @VERSION@ +Release: @RELEASE@ +Vendor: LifeMaps GmbH +URL: http://www.life-maps.de +Packager: ctc +Group: Applications/Configuration +License: proprietary +Source0: avs_conf.tgz +Requires: %{project}_AVS_Interface +Requires: %{project}_AVS_Root +BuildArch: noarch +#BuildRequires: + +%description +AVS configuration for AVS-CNR-Interface for CNR (RadioStations) + +%changelog +#* LANG=en_US.UTF-8 date +"%a %b %d %Y" text +* Wed May 22 2019 cf + added Vendor, changed URL. + postinstall script differentiates between projects. +* Thu Sep 27 2018 cf + initial version + + + +# -c: create toplevel directory and extract contents there +%prep +%setup -q -c + + +# nothing to build +%build + + +%install +mkdir -p %{buildroot}%{conf_dir} +cp %{project}/if/*.conf %{buildroot}%{conf_dir}/ +cp %{project}/if/*.conf.in %{buildroot}%{conf_dir}/ + + +%files +%defattr(-,ctc,ctc) +%{conf_dir}/AVS_Config.conf +%{conf_dir}/AVS_Interface.conf.in +%{conf_dir}/AVS_Root.conf + +%post +# For GÜZ we need to adjust the AVS_Interface.conf for each IF separately. +%if "%{project}" == "guez" + let stationId=$(hostname | tr a-z A-Z | sed 's/^CEF0\([0-9]\)IFR[0-9]\{2\}$/\1/') + let fuadNet="171 + $stationId" + fuadInterface="10.7.${fuadNet}.100" + exconInterface="10.7.150.19${stationId}" + sed -e s,@FUAD_INTERFACE@,${fuadInterface},g \ + -e s,@EXCON_INTERFACE@,${exconInterface},g \ + %{conf_dir}/AVS_Interface.conf.in > %{conf_dir}/AVS_Interface.conf +%else + cp %{conf_dir}/AVS_Interface.conf.in | %{conf_dir}/AVS_Interface.conf +%endif +chown ctc:ctc %{conf_dir}/AVS_Interface.conf + +%preun +if [ $1 -eq 0 ]; then + rm -f %{conf_dir}/AVS_Interface.conf +fi diff --git a/specs/external/avs_conf/avs_conf-legacy-ws.spec.in b/specs/external/avs_conf/avs_conf-legacy-ws.spec.in new file mode 100755 index 000000000..6895da25c --- /dev/null +++ b/specs/external/avs_conf/avs_conf-legacy-ws.spec.in @@ -0,0 +1,56 @@ +# +# $Id: avs_conf.spec.in 49636 2020-01-28 11:13:06Z wille_m $ +# $HeadURL: svn://slssvn/TDS/branches/product/devel/trunk/specs/external/avs_conf/avs_conf.spec.in $ +# + +%define conf_dir /opt/AVS/etc +%define project @PROJECT@ + +Name: %{project}_avs_conf-legacy-ws +Summary: AVS configuration for legacy workstations +Version: @VERSION@ +Release: @RELEASE@ +Vendor: LifeMaps GmbH +URL: http://www.life-maps.de +Packager: ctc +Group: Applications/Configuration +License: proprietary +Source0: avs_conf.tgz +BuildArch: noarch +Requires: %{project}_AVS_Workstation +Conflicts: %{project}_avs_conf-ws +#BuildRequires: + + +%description +AVS configuration for legacy workstations + + +%changelog +#* LANG=en_US.UTF-8 date +"%a %b %d %Y" text +* Tue Jan 28 2020 mw + added package for legacy machines for project ahtc + + +# -c: create toplevel directory and extract contents there +%prep +%setup -q -c + + +# nothing to build +%build + + +%install +mkdir -p %{buildroot}%{conf_dir} +cp %{project}/AVS_Config.conf %{project}/AVS_DB.conf %{project}/AVS_Export.conf %{project}/AVS_Mixer.conf %{buildroot}%{conf_dir}/ +cp %{project}/AVS_Workstation_legacy.conf %{buildroot}%{conf_dir}/AVS_Workstation.conf + + +%files +%defattr(-,ctc,ctc) +%{conf_dir}/AVS_Config.conf +%{conf_dir}/AVS_DB.conf +%{conf_dir}/AVS_Export.conf +%{conf_dir}/AVS_Mixer.conf +%{conf_dir}/AVS_Workstation.conf diff --git a/specs/external/avs_conf/avs_conf.spec.in b/specs/external/avs_conf/avs_conf.spec.in new file mode 100755 index 000000000..c318dbd0f --- /dev/null +++ b/specs/external/avs_conf/avs_conf.spec.in @@ -0,0 +1,131 @@ +# +# $Id$ +# $HeadURL$ +# + +%define conf_dir /opt/AVS/etc +%define project @PROJECT@ + +Name: %{project}_avs_conf +Summary: AVS configuration +Version: @VERSION@ +Release: @RELEASE@ +Vendor: LifeMaps GmbH +URL: http://www.life-maps.de +Packager: ctc +Group: Applications/Configuration +License: proprietary +Source0: avs_conf.tgz +BuildArch: noarch +#Requires: +#BuildRequires: + + +%description +dummy -- we build sub-packages only + + +%changelog +#* LANG=en_US.UTF-8 date +"%a %b %d %Y" text +* Wed May 22 2019 cf + added Vendor, changed URL +* Fri Apr 27 2018 cf + initial version + + + +# -c: create toplevel directory and extract contents there +%prep +%setup -q -c + + +# nothing to build +%build + + +%install +mkdir -p %{buildroot}%{conf_dir} +# copy all config files but legacy conf +find %{project}/ ! -name AVS_Workstation_legacy.conf -name *.conf -maxdepth 1 -exec cp -t %{buildroot}%{conf_dir}/ {} + + + +# no %files section -- we build sub-packages only +#%files + + +%package ws +Summary: AVS configuration for workstations +Requires: %{project}_AVS_Workstation +Conflicts: %{project}_avs_conf-aar +Conflicts: %{project}_avs_conf-legacy-ws +%description ws +AVS configuration for workstations +%files ws +%defattr(-,ctc,ctc) +%{conf_dir}/AVS_Config.conf +%{conf_dir}/AVS_DB.conf +%{conf_dir}/AVS_Export.conf +%{conf_dir}/AVS_Mixer.conf +%{conf_dir}/AVS_Workstation.conf + +%package aar +Summary: AVS configuration for AAR workstations +Requires: %{project}_AVS_Workstation +Requires: %{project}_AVS_Root +Requires: %{project}_AVS_Server +Conflicts: %{project}_avs_conf-ws +Conflicts: %{project}_avs_conf-sv +Conflicts: %{project}_avs_conf-legacy-ws +%description aar +AVS configuration for AAR workstations +%files aar +%defattr(-,ctc,ctc) +%{conf_dir}/AVS_Config.conf +%{conf_dir}/AVS_DB.conf +%{conf_dir}/AVS_Export.conf +%{conf_dir}/AVS_Mixer.conf +%{conf_dir}/AVS_Root.conf +%{conf_dir}/AVS_Server.aar.conf +%{conf_dir}/AVS_Workstation.conf + +%post aar +/sbin/ldconfig +if [ $1 -eq 1 ] || [ $1 -eq 2 ]; then + ln -sf %{conf_dir}/AVS_Server.aar.conf %{conf_dir}/AVS_Server.conf + if [ ! -e /data ]; then + mkdir /data; + fi + chown ctc_ws:ctc /data +fi + +%preun aar +if [ $1 -eq 0 ]; then + rm -f %{conf_dir}/AVS_Server.conf + rm -rf /data +fi + + +%package sv +Summary: AVS configuration for AVS-server +Requires: %{project}_AVS_Config +Requires: %{project}_AVS_Interface +Requires: %{project}_AVS_MotionRecorder +Requires: %{project}_AVS_Root +Requires: %{project}_AVS_Server +Requires: %{project}_AVS_TimelineConverter +# A conditional require depending on a specific project can be done like this: +%if "%{project}" == "some_future_project" + Requires: %{project}_AVS_Mobilegate +%endif +%description sv +AVS configuration for AVS-server +%files sv +%defattr(-,ctc,ctc) +%{conf_dir}/AVS_Config.conf +%{conf_dir}/AVS_DB.conf +%{conf_dir}/AVS_Interface.conf +%{conf_dir}/AVS_Mobilegate.conf +%{conf_dir}/AVS_MotionRecorder.conf +%{conf_dir}/AVS_Root.conf +%{conf_dir}/AVS_Server.conf +%{conf_dir}/AVS_TimelineConverter.conf diff --git a/specs/external/avs_conf/build_rpm.sh b/specs/external/avs_conf/build_rpm.sh new file mode 100755 index 000000000..904a2ea44 --- /dev/null +++ b/specs/external/avs_conf/build_rpm.sh @@ -0,0 +1,118 @@ +#! /bin/bash + +# +# Dieses Skript soll sowohl lokal in einer Working Copy als auch über Jenkins ausführbar sein. +# Unter Jenkins soll nur dieser Ordner ausgecheckt werden. +# Die gebauten RPMs werden von rpmbuild unter ~/rpmbuild/RPMS abgelegt. +# Wenn sie für Jenkins zugreifbar sein sollen (für die Artefacts), müssen sie jedoch +# irgendwo im Workspace liegen. Daher ist für die Verwendung über Jenkins ein optionaler +# Kopier- bzw. Move-Schritt am Ende notwendig. +# + +determine_info_cmd() +{ + # check whether svn or git (svn-bridge) is used: + local is_svn=1 + local info_cmd='svn info' + svn info >> /dev/null 2>&1 || is_svn=0 + + if [ $is_svn -eq 0 ]; then + info_cmd='git svn info' + fi + + echo $info_cmd +} + +determine_revision() +{ + info_cmd=$(determine_info_cmd) + + local revision=$($info_cmd | grep "Last Changed Rev:" | cut -d ' ' -f 4) + if [[ ! $revision -gt 0 ]]; then + echo "Failed_to_determine_revision" + exit 1 + fi + + echo $revision +} + +copy_rpms() +{ + if [[ ! -d $outdir ]]; then + mkdir -p "$outdir" + fi + + rpms=($(find $rpm_builddir/RPMS -name "${project}_avs_conf-*-${version}-${revision}.*.rpm")) + mv "${rpms[@]}" "$outdir" +} + +usage() +{ + echo "usage: $0 [-p ] [-v ] [-o ]" +} + +LANG=en_US + +project=guez +version=1.0 +outdir= +while getopts p:v:o:h opt_name +do + case $opt_name in + p) project="$OPTARG";; + v) version="$OPTARG";; + o) outdir="$OPTARG";; + h) usage; exit 0;; + ?) usage; exit 1;; + esac +done + +if [[ ! -d "$project" ]]; then + echo "Missing folder for project $project!" + exit 1 +fi + +revision=$(determine_revision) +spec_file=avs_conf.spec +spec_file_legacy=avs_conf-legacy-ws.spec +spec_file_if=avs_conf-if.spec + +echo "Project: ${project}, Version: ${version}.${revision}" + +rpm_builddir=$HOME/rpmbuild +src_dir=$rpm_builddir/SOURCES + +[ ! -d "$src_dir" ] && mkdir -p "$src_dir" + +# We use the same project tarball for both packages +tar czf "$src_dir/avs_conf.tgz" $project +cp "$src_dir/avs_conf.tgz" "$src_dir/avs_conf-if.tgz" + +# Some projects don't need/have an AVS interface workstation and thus don't need avs_conf-if. +spec_files_to_build=("$spec_file") +if [[ $project != qatar ]]; then + spec_files_to_build+=("$spec_file_if") +fi +if [[ $project == ahtc ]]; then + spec_files_to_build+=("$spec_file_legacy") +fi + +for f in "${spec_files_to_build[@]}"; do + sed -e s,@PROJECT@,${project},g \ + -e s,@VERSION@,${version},g \ + -e s,@RELEASE@,${revision},g \ + ${f}.in > $f + + rpmbuild -bb $f + if [ $? -ne 0 ]; then + exit $?; + fi +done + +if [[ -n $outdir ]]; then + copy_rpms +fi + +for f in "${spec_files_to_build[@]}"; do + rm $f; +done diff --git a/specs/external/avs_conf/build_rpm_git.sh b/specs/external/avs_conf/build_rpm_git.sh new file mode 100755 index 000000000..056f2e981 --- /dev/null +++ b/specs/external/avs_conf/build_rpm_git.sh @@ -0,0 +1,92 @@ +#! /bin/bash + +# +# Dieses Skript soll sowohl lokal in einer Working Copy als auch über Jenkins ausführbar sein. +# Unter Jenkins soll nur dieser Ordner ausgecheckt werden. +# Die gebauten RPMs werden von rpmbuild unter ~/rpmbuild/RPMS abgelegt. +# Wenn sie für Jenkins zugreifbar sein sollen (für die Artefacts), müssen sie jedoch +# irgendwo im Workspace liegen. Daher ist für die Verwendung über Jenkins ein optionaler +# Kopier- bzw. Move-Schritt am Ende notwendig. +# + + +copy_rpms() +{ + if [[ ! -d $outdir ]]; then + mkdir -p "$outdir" + fi + + rpms=($(find $rpm_builddir/RPMS -name "${project}_avs_conf-*-${version}-${revision}.*.rpm")) + mv "${rpms[@]}" "$outdir" +} + +usage() +{ + echo "usage: $0 [-p ] [-v ] [-o ]" +} + +LANG=en_US + +project=guez +version=1.0 +outdir= +while getopts p:v:o:h opt_name +do + case $opt_name in + p) project="$OPTARG";; + v) version="$OPTARG";; + o) outdir="$OPTARG";; + h) usage; exit 0;; + ?) usage; exit 1;; + esac +done + +if [[ ! -d "$project" ]]; then + echo "Missing folder for project $project!" + exit 1 +fi + +revision="$BUILD_NUMBER" +spec_file=avs_conf.spec +spec_file_legacy=avs_conf-legacy-ws.spec +spec_file_if=avs_conf-if.spec + +echo "Project: ${project}, Version: ${version}.${revision}" + +rpm_builddir=$HOME/rpmbuild +src_dir=$rpm_builddir/SOURCES + +[ ! -d "$src_dir" ] && mkdir -p "$src_dir" + +# We use the same project tarball for both packages +tar czf "$src_dir/avs_conf.tgz" $project +cp "$src_dir/avs_conf.tgz" "$src_dir/avs_conf-if.tgz" + +# Some projects don't need/have an AVS interface workstation and thus don't need avs_conf-if. +spec_files_to_build=("$spec_file") +if [[ $project != qatar ]]; then + spec_files_to_build+=("$spec_file_if") +fi +if [[ $project == ahtc ]]; then + spec_files_to_build+=("$spec_file_legacy") +fi + +for f in "${spec_files_to_build[@]}"; do + sed -e s,@PROJECT@,${project},g \ + -e s,@VERSION@,${version},g \ + -e s,@RELEASE@,${revision},g \ + ${f}.in > $f + + rpmbuild -bb $f + if [ $? -ne 0 ]; then + exit $?; + fi +done + +if [[ -n $outdir ]]; then + copy_rpms +fi + +for f in "${spec_files_to_build[@]}"; do + rm $f; +done diff --git a/specs/external/avs_conf/guez/AVS_Config.conf b/specs/external/avs_conf/guez/AVS_Config.conf new file mode 100755 index 000000000..17bfe3cf1 --- /dev/null +++ b/specs/external/avs_conf/guez/AVS_Config.conf @@ -0,0 +1,22 @@ +[Bridge] +ServerPort=7000 +ServerHost=localhost +IAmServer=false + +[ConfigServer] +Port=8888 + +[Announcements] +DontAnnounce=true + +[ConfigClient] +Server1=EXCAVS01 8888 +ListenToAnnouncements=false +; 0.0.0.0 = any interface +; MulticastInterface=0.0.0.0 +; AliveEnabled=true ; default false +; AliveInterval=10 ; in s + +[Logging] +;Level=Fatal, Critical, Warning, Debug +Level=Fatal, Critical, Warning diff --git a/specs/external/avs_conf/guez/AVS_DB.conf b/specs/external/avs_conf/guez/AVS_DB.conf new file mode 100755 index 000000000..7475141cb --- /dev/null +++ b/specs/external/avs_conf/guez/AVS_DB.conf @@ -0,0 +1,9 @@ +[Database] +user=ets_avm +passwd=ctc11de +;dbType=QSQLITE +dbType=QPSQL +host=EXCDBS01 +dbName=lts_ets_pro +scheme=avm +prePartContext=ex_ diff --git a/specs/external/avs_conf/guez/AVS_Export.conf b/specs/external/avs_conf/guez/AVS_Export.conf new file mode 100755 index 000000000..a836a466f --- /dev/null +++ b/specs/external/avs_conf/guez/AVS_Export.conf @@ -0,0 +1,10 @@ +[%General] +;FilePath=/tmp/export + +[RcpExport] +Autostart=1 +OperatorTCPPort=6380 + +[Logging] +;Level=Fatal, Critical, Warning, Debug +Level=Fatal, Critical, Warning diff --git a/specs/external/avs_conf/guez/AVS_Interface.conf b/specs/external/avs_conf/guez/AVS_Interface.conf new file mode 100755 index 000000000..a95276952 --- /dev/null +++ b/specs/external/avs_conf/guez/AVS_Interface.conf @@ -0,0 +1,86 @@ +[TETRA] +Enable=1 +GatewayTCPAddress=CCSTSW01 +GatewayTCPPort=52044 +GatewayRTPInterface=0.0.0.0 +ElokaSignalPath=/opt/AVS/data/eloka +DownstreamRTPMulticastInterface=EXCAVS01 +RtpOutputPacketSize=240 +;SilenceDetectionThreshold=0x14 used in TetraSession.cpp +;MulticastAddressRangeBegin=224.0.1.2 used in TetraSession.cpp +;MulticastAddressRangeEnd=239.255.255.255 used in TetraSession.cpp +;RecordingDataAccuSeconds=1 used in TetraSession.cpp *1000 +;GatewayRTPOutAddress=0.0.0.0 used in TetraSession.cpp +; +;General/DownstreamRTPMulticastInterface ??? used in TetraSession.cpp +; +; ACHTUNG: Werte fuer CNR_G711 sind nur fuer Tests und muessen angepasst werden !!! +[CNR_G711] +Enable=0 +GatewayTCPAddress=172.25.140.10 +GatewayTCPPort=52044 +GatewayRTPInterface=0.0.0.0 +ElokaSignalPath=/opt/AVS/data/eloka +DownstreamRTPMulticastInterface=EXCAVS01 +RtpOutputPortOffset=100 + +[CNR_GUEZ] +MaxRecordBufferSeconds=-1 +Enable=0 +OperatorTCPPort=3281 +StReFu1TCPAddress=CEVMSRF01 +StReFu1TCPPort=8300 +StReFu2TCPAddress=CEVMSRF02 +StReFu2TCPPort=8300 +FUALinkRTPOutPort=8000 +FUALinkRTPInPort=8001 +FUALinkKeepAlivePort=9001 +FUALinkRTPInterface=10.7.150.33 +FUALinkRTPOutPacketSize=320 +DownstreamRTPMulticastInterface=EXCAVS01 +SilenceDetectionThreshold=0x14 +ElokaSignalPath=/opt/AVS/data/eloka + +[ADDAC] +Enable=0 +RtChannelDigitalIOMapping=9: PTT[1A-0] SND[1B-0] SQU[2B-0], 10: PTT[1A-1] SND[1B-1] SQU[2B-1], 11: PTT[1A-2] SND[1B-2] SQU[2B-2], 12: PTT[1A-3] SND[1B-3] SQU[2B-3], 13: PTT[1A-4] SND[1B-4] SQU[2B-4], 14: PTT[1A-5] SND[1B-5] SQU[2B-5], 15: PTT[1A-6] SND[1B-6] SQU[2B-6], 16: PTT[1A-7] SND[1B-7] SQU[2B-7] + +[AXISV] +Enable=1 +Monitoring=1 + +[AXISA] +Enable=1 +Monitoring=1 +ElokaSignalPath=/opt/AVS/data/eloka +SilenceDetectionThreshold=-1 + +[ONVIFV] +MaxRecordBufferSeconds=-1 +Enable=1 +Monitoring=1 +EventTimeout=5 + +[ONVIFA] +MaxRecordBufferSeconds=-1 +Enable=1 +Monitoring=1 +EventTimeout=5 +ElokaSignalPath=/opt/AVS/data/eloka +SilenceDetectionThreshold=-1 + +[DEKTEC] +Enable=1 +MaxRecordBufferSeconds=-1 +DektecDeviceRTPInterface=10.7.152.133 +DektecDeviceMulticastAddress=239.16.33.254 + +[TEST] +Enable=0 + +[%General] +FdLimit=65000 + +[Logging] +;Level=Fatal, Critical, Warning, Debug +Level=Fatal, Critical, Warning diff --git a/specs/external/avs_conf/guez/AVS_Mixer.conf b/specs/external/avs_conf/guez/AVS_Mixer.conf new file mode 100755 index 000000000..265c2af6a --- /dev/null +++ b/specs/external/avs_conf/guez/AVS_Mixer.conf @@ -0,0 +1,22 @@ +[Mixer] +input="hw:0,0" +output="hw:0,0" +Resample=0 +LocalFeedback="Rear Mic" +; LocalFeedbackVolume is no longer used, we trust asound.state instead +LocalFeedbackVolume=40 +CaptureDevice="Capture" +InputSource="Input Source" +MulticastInteface=0.0.0.0 + +; sounds are relative to datadir +[Sounds] +Busy=sounds/Busy.wav +Incoming=sounds/IncomingCall.wav +Outgoing=sounds/OutgoingCall.wav +INTOutgoing=sounds/INTOutgoingCall.wav +RTOutgoing=sounds/RTOutgoingCall.wav + +[Logging] +;Level=Fatal, Critical, Warning, Debug +Level=Fatal, Critical, Warning diff --git a/specs/external/avs_conf/guez/AVS_Mobilegate.conf b/specs/external/avs_conf/guez/AVS_Mobilegate.conf new file mode 100755 index 000000000..358b429ad --- /dev/null +++ b/specs/external/avs_conf/guez/AVS_Mobilegate.conf @@ -0,0 +1,54 @@ +[General] +; if not set, the default AVS_MG- will be used +;name=MG1 + +[Transcoding] +; e.g.: 25fps à 5 fps +LowBandwidth/framerateDivisor=5 +; best encoding quality = 0, worst encoding quality = 32 +LowBandwidth/quality=20 +; will not affect DAR (display aspect ratio), dimensions must be multiple of 16 +LowBandwidth/resolution=176x144 +; default gop size is 25, only used for live streaming +LowBandwidth/gopSize=25 +LowBandwidth/multithreaded=false +; The sending of udp packets is spread over the duration time for each frame. +; This will lead to a delay of 1/fps. You can limit this delay here. +; Works only if liveBitRateLimit is not set. Only used for live streaming. +LowBandwidth/maxSendDelayMs=1000 +; 0 = no limit, limit is achieved by delaying sends and dropping frames. +; bitRateLimit is of higher priority than maxSendDelayMs. +; This option helps to fight udp packets bursts when sending I-frames. +; Only used for live streaming. +LowBandwidth/liveBitRateLimit=0 +; Must be >= 2, greater values might lead to greater delay/jitter but may reduce frame drops +; recommended 3 +; Only used for live streaming. +LowBandwidth/liveFrameQueueSize=3 + +LowFramerateHighQuality/framerateDivisor=20 +LowFramerateHighQuality/quality=1 +LowFramerateHighQuality/resolution=720x576 +LowFramerateHighQuality/gopSize=30 +LowFramerateHighQuality/multithreaded=false +LowFramerateHighQuality/maxSendDelayMs=1000 +LowFramerateHighQuality/liveBitRateLimit=0 +LowFramerateHighQuality/liveFrameQueueSize=3 + +WhatEverName/framerateDivisor=2 +WhatEverName/quality=4 +WhatEverName/resolution=704x288 +WhatEverName/gopSize=20 +WhatEverName/multithreaded=false +WhatEverName/maxSendDelayMs=1000 +WhatEverName/liveBitRateLimit=0 +WhatEverName/liveFrameQueueSize=3 + +WhatEverName2/framerateDivisor=1 +WhatEverName2/quality=4 +WhatEverName2/resolution=704x288 +WhatEverName2/gopSize=100 +WhatEverName2/multithreaded=false +WhatEverName2/maxSendDelayMs=1000 +WhatEverName2/liveBitRateLimit=100000 +WhatEverName2/liveFrameQueueSize=3 diff --git a/specs/external/avs_conf/guez/AVS_MotionRecorder.conf b/specs/external/avs_conf/guez/AVS_MotionRecorder.conf new file mode 100755 index 000000000..35e402ac6 --- /dev/null +++ b/specs/external/avs_conf/guez/AVS_MotionRecorder.conf @@ -0,0 +1,14 @@ +[Recorder] +OperatorTCPPort=6390 +LeadRecordingTime=30 +FollowUpRecordingTime=10 + + +[Logging] +;Level=Fatal, Critical, Warning, Debug +Level=Fatal, Critical, Warning + +DebugTraceEnableMotionRecorder=false +; LogCode MREC: MotionRecorder +DebugTraceEnableDataBaseHandling=false +; LogCode MREC:DBH: DataBaseHandling diff --git a/specs/external/avs_conf/guez/AVS_Root.conf b/specs/external/avs_conf/guez/AVS_Root.conf new file mode 100755 index 000000000..d49bcae5a --- /dev/null +++ b/specs/external/avs_conf/guez/AVS_Root.conf @@ -0,0 +1,23 @@ +[%General] +start_config = true +HaveInterface = true +HaveServer = true +HaveWorkstation = false +HaveExport = false +;WorkstationUsers = ,,.. +EnableFMServer = true +HaveMotionRecorder = true +HaveTimelineConverter = true +HaveMobilegateLive = false +HaveMobilegatePlayback = false + +[Management] +halt = /sbin/shutdown -h now +reboot = /sbin/shutdown -r now + +[RcpFM] +OperatorTCPPort=6360 + +[RcpAVE] +OperatorTCPPort=6350 + diff --git a/specs/external/avs_conf/guez/AVS_Server.aar.conf b/specs/external/avs_conf/guez/AVS_Server.aar.conf new file mode 100755 index 000000000..546cf9c34 --- /dev/null +++ b/specs/external/avs_conf/guez/AVS_Server.aar.conf @@ -0,0 +1,14 @@ +[RECORD] +Enable=1 + +[PLAYBACK] +Enable=1 + +[%General] +PrivateServer=1 +PrivateRootFilePath=/data +;FdLimit=65000 + +[Logging] +;Level=Fatal, Critical, Warning, Debug +Level=Fatal, Critical, Warning diff --git a/specs/external/avs_conf/guez/AVS_Server.conf b/specs/external/avs_conf/guez/AVS_Server.conf new file mode 100755 index 000000000..7e66a9162 --- /dev/null +++ b/specs/external/avs_conf/guez/AVS_Server.conf @@ -0,0 +1,12 @@ +[RECORD] +Enable=1 + +[PLAYBACK] +Enable=1 + +[%General] +;FdLimit=65000 + +[Logging] +;Level=Fatal, Critical, Warning, Debug +Level=Fatal, Critical, Warning diff --git a/specs/external/avs_conf/guez/AVS_TimelineConverter.conf b/specs/external/avs_conf/guez/AVS_TimelineConverter.conf new file mode 100755 index 000000000..39b292919 --- /dev/null +++ b/specs/external/avs_conf/guez/AVS_TimelineConverter.conf @@ -0,0 +1,6 @@ +[WebSocket] +Port=7020 + +[Logging] +;Level=Fatal, Critical, Warning, Debug +Level=Fatal, Critical, Warning diff --git a/specs/external/avs_conf/guez/AVS_Workstation.conf b/specs/external/avs_conf/guez/AVS_Workstation.conf new file mode 100755 index 000000000..21db9ec63 --- /dev/null +++ b/specs/external/avs_conf/guez/AVS_Workstation.conf @@ -0,0 +1,325 @@ +MaximumVideoDialogs=12 +[%General] +windowMode=decorated +; decorated - with decoration and resizable +; normal - without decoration and fixed size +interlacingMode = verticalsmoothing +language=de_DE +;FdLimit=65000 + +importPath=/opt/RDE_AVS_NGL/import + + +[AudioWindow] +screen=0 +size=@Size(1060 755) +corner=@Point(0 325) +title=Audio +windowMode=normal +visible=true +statusLine=false +; shows radio traffic in a circuit +trafficColor=#FFFF00 +; show electronic warfare traffic in a circuit +ewColor=#FF0000 +; blinking color for radio buttons +radioBlinkColor=#FFFF00 +; blinking color for incoming intercom calls +intercomBlinkColor=#FFFF00 +; color of a voice channel button while sending +airtimeColor=#00FF00 +; color of a voice channel button when sending is denied +deniedColor=#FF0000 +; color of an overridden button +overrideColor=#0000FF + +[VideoWindows] +; After switching from overview to a single video the overview will be removed after x seconds +overviewTimeout=10 + +; Video Live +CTCVideo-1\screen=1 +CTCVideo-1\size=@Size(1920 1080) +CTCVideo-1\corner=@Point(0 0) +CTCVideo-1\vectorColor=#FFFFFF +CTCVideo-1\backgroundColor=#202000 +CTCVideo-1\videoBackgroundColor=#000080 +CTCVideo-1\videoStandByColor=#000040 +CTCVideo-1\liveFrameColor=#404040 +CTCVideo-1\liveTextColor=#FFFFFF +CTCVideo-1\playbackFrameColor=#800080 +CTCVideo-1\playbackTextColor=#FFFFFF +CTCVideo-1\importFrameColor=#808000 +CTCVideo-1\importTextColor=#000000 +CTCVideo-1\visible=false +CTCVideo-1\title=Video 1 +CTCVideo-1\windowMode=normal +CTCVideo-1\statusLine=true +CTCVideo-1\timeFormat=dtg + +; Video Playback +CTCPlayback-1\screen=2 +CTCPlayback-1\size=@Size(1920 1080) +CTCPlayback-1\corner=@Point(0 0) +CTCPlayback-1\vectorColor=#FFFFFF +CTCPlayback-1\backgroundColor=#202000 +CTCPlayback-1\videoBackgroundColor=#000080 +CTCPlayback-1\videoStandByColor=#000040 +CTCPlayback-1\liveFrameColor=#404040 +CTCPlayback-1\liveTextColor=#FFFFFF +CTCPlayback-1\playbackFrameColor=#800080 +CTCPlayback-1\playbackTextColor=#FFFFFF +CTCPlayback-1\importFrameColor=#808000 +CTCPlayback-1\importTextColor=#000000 +CTCPlayback-1\visible=false +CTCPlayback-1\title=Playback 1 +CTCPlayback-1\windowMode=normal +CTCPlayback-1\statusLine=true +CTCPlayback-1\timeFormat=dtg + +; CTCPlayback-2 is used for Audio Playback. +; Not configured here as it will never be visible. + +; Video Playback for Presentation +CTCPresentation-1\screen=0 +CTCPresentation-1\size=@Size(1920 1080) +CTCPresentation-1\corner=@Point(0 0) +CTCPresentation-1\vectorColor=#FFFFFF +CTCPresentation-1\backgroundColor=#202000 +CTCPresentation-1\videoBackgroundColor=#000080 +CTCPresentation-1\videoStandByColor=#000040 +CTCPresentation-1\liveFrameColor=#404040 +CTCPresentation-1\liveTextColor=#FFFFFF +CTCPresentation-1\playbackFrameColor=#800080 +CTCPresentation-1\playbackTextColor=#FFFFFF +CTCPresentation-1\importFrameColor=#808000 +CTCPresentation-1\importTextColor=#000000 +CTCPresentation-1\visible=false +CTCPresentation-1\title=Playback 1 +CTCPresentation-1\windowMode=normal +CTCPresentation-1\statusLine=true +CTCPresentation-1\timeFormat=dtg + +; CTCPresentation-2 is used for Audio Presentation. +; Not configured here as it will never be visible. + +; Video Live +CTCVideo-2\screen=0 +CTCVideo-2\size=@Size(1920 325) +CTCVideo-2\corner=@Point(0 0) +CTCVideo-2\vectorColor=#FFFFFF +CTCVideo-2\backgroundColor=#202000 +CTCVideo-2\videoBackgroundColor=#000080 +CTCVideo-2\videoStandByColor=#000040 +CTCVideo-2\liveFrameColor=#404040 +CTCVideo-2\liveTextColor=#FFFFFF +CTCVideo-2\playbackFrameColor=#800080 +CTCVideo-2\playbackTextColor=#FFFFFF +CTCVideo-2\importFrameColor=#808000 +CTCVideo-2\importTextColor=#000000 +CTCVideo-2\visible=true +CTCVideo-2\title=Video 2 +CTCVideo-2\windowMode=normal +CTCVideo-2\statusLine=true +CTCVideo-2\timeFormat=dtg + +; Video Live +CTCVideo-3\screen=0 +CTCVideo-3\size=@Size(860 755) +CTCVideo-3\corner=@Point(1060 325) +CTCVideo-3\vectorColor=#FFFFFF +CTCVideo-3\backgroundColor=#202000 +CTCVideo-3\videoBackgroundColor=#000080 +CTCVideo-3\videoStandByColor=#000040 +CTCVideo-3\liveFrameColor=#404040 +CTCVideo-3\liveTextColor=#FFFFFF +CTCVideo-3\playbackFrameColor=#800080 +CTCVideo-3\playbackTextColor=#FFFFFF +CTCVideo-3\importFrameColor=#808000 +CTCVideo-3\importTextColor=#000000 +CTCVideo-3\visible=true +CTCVideo-3\title=Video 3 +CTCVideo-3\windowMode=normal +CTCVideo-3\statusLine=true +CTCVideo-3\timeFormat=dtg + +; Video Live +CTCVideo-4\screen=0 +CTCVideo-4\size=@Size(1060 755) +CTCVideo-4\corner=@Point(0 325) +CTCVideo-4\vectorColor=#FFFFFF +CTCVideo-4\backgroundColor=#202000 +CTCVideo-4\videoBackgroundColor=#000080 +CTCVideo-4\videoStandByColor=#000040 +CTCVideo-4\liveFrameColor=#404040 +CTCVideo-4\liveTextColor=#FFFFFF +CTCVideo-4\playbackFrameColor=#800080 +CTCVideo-4\playbackTextColor=#FFFFFF +CTCVideo-4\importFrameColor=#808000 +CTCVideo-4\importTextColor=#000000 +CTCVideo-4\visible=false +CTCVideo-4\title=Video 4 +CTCVideo-4\windowMode=normal +CTCVideo-4\statusLine=true +CTCVideo-4\timeFormat=dtg + +; Import +CTCImport\screen=0 +CTCImport\size=@Size(860 755) +CTCImport\corner=@Point(1060 325) +CTCImport\vectorColor=#FFFFFF +CTCImport\backgroundColor=#202000 +CTCImport\videoBackgroundColor=#000080 +CTCImport\videoStandByColor=#000040 +CTCImport\liveFrameColor=#404040 +CTCImport\liveTextColor=#FFFFFF +CTCImport\playbackFrameColor=#800080 +CTCImport\playbackTextColor=#FFFFFF +CTCImport\importFrameColor=#808000 +CTCImport\importTextColor=#000000 +CTCImport\visible=false +CTCImport\title=Video Import +CTCImport\windowMode=normal +CTCImport\statusLine=true +CTCImport\timeFormat=dtg + +[PedalSwitch] +interface=/dev/ttyS0 + +[Intercom] +port=8000 + +[AVS_Interface] +radioAddressType=unicast +videoAddressType=unicast + +[AVS_MotionRecorder] +;MotionRecorder Settings +Host="EXCAVS01" +Port=6390 + +[AVS_Mixer] +;Factors for weighting the volume of these channels; range => 0.0 .. 1.0 +avChannelFactor=1.0 +signalToneFactor=0.5 +rtChannelFactor=1.0 +announcementChannelFactor=1.0 +intercomFactor=1.0 + +[TextOverlayTemplates] +; +; topleft +; +; +; this template is called "topleft". Template names +; must not contain special characters like '";, \n\t' and so on. + +topleft/initiallyVisible=true + +; text will be drawn inside margin, +; margin is given in pixels +topleft/margin/top=20 +topleft/margin/left=20 +topleft/margin/right=20 +topleft/margin/bottom=20 + +; normalized position coordinates are in the range [0.0-1.0] +topleft/posX=0.0 +topleft/posY=0.0 +topleft/width=1.0 ; entire margin + +; colors are given in #aarrggbb with each of a, r, g and b are +; given as a hexadecimal digit +topleft/clrText=#ffffffff ;opaque white +topleft/clrBack=#a00a0a0a ;transparent dark grey + +; break lines on word boundaries +topleft/wordbreak=true + +; following alignFlags can be x-ored +; alignLeft=0x1 +; alignRight=0x2 +; alignHCenter=0x4 +; alignTop=0x8 +; alignBottom=0x10 +; alignVCenter=0x20 +topleft/alignFlags=0x9 + +; Default, Helvetica, Times, ... +topleft/font/family=Default +; possible values for weight: light, normal, demibold, bold, black +topleft/font/weight=normal + +; normalized (1.0 = margin height), will be superseded +; by