M README.md => README.md +15 -4
@@ 10,22 10,29 @@ Installation
Install the pyatem protocol module::
+ setup.py build
sudo setup.py install
-Build and install the gtk application::
+Build and install the gtk application and proxy::
meson build
- cd build
- ninja
- sudo ninja install
+ meson compile -C build
+ sudo meson install -C build
Run the application::
switcher-control
+There is also the `openswitcher-install.sh` script which will install the library, proxy and gtk application in
+/usr/local for a quick installation of all components.
+
Developing
----------
+To work on the `pyatem` library the quickest way to get up and running is using the `openswitcher-develop.sh` script
+that will install the `pyatem` library in devel mode where the files are symlinked to the git repository. It will also
+install the proxy and gtk application in /usr/local which will use the symlinked library.
+
Development happens on matrix on #openatem:brixit.nl
Proxy
@@ 39,6 46,10 @@ It can be run by starting the module::
python3 -m openswitcher_proxy --config /etc/myconfigfile.toml
+Or if the software installed it can be started using the launcher script::
+
+ openswitcher-proxy --config /etc/myconfigfile.toml
+
The default config location is /etc/openswitcher/proxy.conf if not specified. Here's an example config:
[[hardware]]
M meson.build => meson.build +8 -2
@@ 5,7 5,13 @@ project('switcher',
dependency('libhandy-1', version: '>=1.0.0')
-subdir('data')
-subdir('gtk_switcher')
+if get_option('with_gtk_app')
+ subdir('data')
+ subdir('gtk_switcher')
+endif
+
+if get_option('with_proxy')
+ subdir('openswitcher_proxy')
+endif
meson.add_install_script('build-aux/meson/postinstall.py')
A meson_options.txt => meson_options.txt +2 -0
@@ 0,0 1,2 @@
+option('with_proxy', type : 'boolean', value : true)
+option('with_gtk_app', type : 'boolean', value : true)<
\ No newline at end of file
A openswitcher-develop.sh => openswitcher-develop.sh +18 -0
@@ 0,0 1,18 @@
+#!/bin/sh
+
+# This tool sets up openswitcher and pyatem to run from the source files in the git repository. This requires root
+# permissions to install the software using symlinks to the source.
+
+printf "Installing the pyatem module using setup.py develop\n"
+sudo python3 setup.py develop
+
+printf "Installing the openswitcher application to /usr/local/\n"
+meson _build
+meson compile -C _build
+sudo meson install -C _build
+
+printf "*------------------------------------*\n"
+printf "Development installation done\n"
+printf "The python module is now available system-wide as 'pyatem'\n"
+printf "The GTK application is now available as 'switcher-control'\n"
+printf "The proxy application is now available as 'openswitcher-proxy'\n"<
\ No newline at end of file
A openswitcher-install.sh => openswitcher-install.sh +18 -0
@@ 0,0 1,18 @@
+#!/bin/sh
+
+# This scripts installs the openswitcher components on the local system.
+
+printf "Installing the pyatem module using setup.py install\n"
+python3 setup.py build
+sudo python3 setup.py install
+
+printf "Installing the openswitcher application to /usr/local/\n"
+meson _build
+meson compile -C _build
+sudo meson install -C _build
+
+printf "*------------------------------------*\n"
+printf "Installnstallation done\n"
+printf "The python module is now available system-wide as 'pyatem'\n"
+printf "The GTK application is now available as 'switcher-control'\n"
+printf "The proxy application is now available as 'openswitcher-proxy'\n"<
\ No newline at end of file
A openswitcher_proxy/meson.build => openswitcher_proxy/meson.build +33 -0
@@ 0,0 1,33 @@
+pkgdatadir = join_paths(get_option('prefix'), get_option('datadir'), meson.project_name())
+moduledir = join_paths(pkgdatadir, 'openswitcher_proxy')
+
+python = import('python')
+
+conf = configuration_data()
+conf.set('PYTHON', python.find_installation('python3').path())
+conf.set('VERSION', meson.project_version())
+conf.set('localedir', join_paths(get_option('prefix'), get_option('localedir')))
+conf.set('pkgdatadir', pkgdatadir)
+
+configure_file(
+ input: 'openswitcher-proxy.in',
+ output: 'openswitcher-proxy',
+ configuration: conf,
+ install: true,
+ install_dir: get_option('bindir')
+)
+
+proxy_sources = [
+ '__init__.py',
+ '__main__.py',
+ 'frontend.py',
+ 'frontend_status.py',
+ 'frontend_tcp.py',
+ 'frontend_httpapi.py',
+ 'frontend_mqtt.py',
+ 'hardware.py',
+ 'error.py',
+
+]
+
+install_data(proxy_sources, install_dir: moduledir)
A openswitcher_proxy/openswitcher-proxy.in => openswitcher_proxy/openswitcher-proxy.in +17 -0
@@ 0,0 1,17 @@
+#!@PYTHON@
+
+import os
+import sys
+import signal
+import gettext
+
+VERSION = '@VERSION@'
+pkgdatadir = '@pkgdatadir@'
+localedir = '@localedir@'
+
+sys.path.insert(1, pkgdatadir)
+signal.signal(signal.SIGINT, signal.SIG_DFL)
+
+if __name__ == '__main__':
+ from openswitcher_proxy import __main__
+ sys.exit(__main__.main())