aboutsummaryrefslogtreecommitdiff
path: root/bin/arctica-testserver-pa-create-remap
diff options
context:
space:
mode:
authorGZNGET FOSS Team <opensource@gznianguan.com>2017-06-27 09:31:10 +0200
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2017-06-27 09:31:22 +0200
commitf507dc87ca223240acbae2435be091f92b6a4a4e (patch)
tree23210b600558be603f3a542b1563c0d2ba8a1057 /bin/arctica-testserver-pa-create-remap
parent7baa60e6301ddf74c20d161650e147a7314100b3 (diff)
downloadperl-Arctica-Services-Audio-Server-PulseAudio-f507dc87ca223240acbae2435be091f92b6a4a4e.tar.gz
perl-Arctica-Services-Audio-Server-PulseAudio-f507dc87ca223240acbae2435be091f92b6a4a4e.tar.bz2
perl-Arctica-Services-Audio-Server-PulseAudio-f507dc87ca223240acbae2435be091f92b6a4a4e.zip
Add helpe script: arctica-testserver-pa-create-remap.
Diffstat (limited to 'bin/arctica-testserver-pa-create-remap')
-rwxr-xr-xbin/arctica-testserver-pa-create-remap96
1 files changed, 96 insertions, 0 deletions
diff --git a/bin/arctica-testserver-pa-create-remap b/bin/arctica-testserver-pa-create-remap
new file mode 100755
index 0000000..d487d7f
--- /dev/null
+++ b/bin/arctica-testserver-pa-create-remap
@@ -0,0 +1,96 @@
+#!/usr/bin/perl
+
+################################################################################
+# _____ _
+# |_ _| |_ ___
+# | | | ' \/ -_)
+# |_| |_||_\___|
+# _ _ ____ _ _
+# / \ _ __ ___| |_(_) ___ __ _ | _ \ _ __ ___ (_) ___ ___| |_
+# / _ \ | '__/ __| __| |/ __/ _` | | |_) | '__/ _ \| |/ _ \/ __| __|
+# / ___ \| | | (__| |_| | (_| (_| | | __/| | | (_) | | __/ (__| |_
+# /_/ \_\_| \___|\__|_|\___\__,_| |_| |_| \___// |\___|\___|\__|
+# |__/
+# The Arctica Modular Remote Computing Framework
+#
+################################################################################
+#
+# Copyright (C) 2015-2016 The Arctica Project
+# http://arctica-project.org/
+#
+# This code is dual licensed: strictly GPL-2 or AGPL-3+
+#
+# GPL-2
+# -----
+# This program 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; version 2 of the License.
+#
+# This program 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 program; if not, write to the
+# Free Software Foundation, Inc.,
+#
+# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# AGPL-3+
+# -------
+# This programm is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This programm 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 Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program; if not, write to the
+# Free Software Foundation, Inc.,
+# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Copyright (C) 2015-2017 Guangzhou Nianguan Electronics Technology Co.Ltd.
+# <opensource@gznianguan.com>
+# Copyright (C) 2015-2017 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+#
+################################################################################
+
+use GStreamer1;
+use Glib qw( TRUE FALSE );
+use Time::HiRes qw( usleep );
+GStreamer1::init([ $0 ]);# Initiate GST
+
+$ENV{'DISPLAY'} = ":9";
+my $gotit = 0;
+open(PACTL, "-|", "/usr/bin/pactl","list","sources","short");
+while (<PACTL>) {
+ if ($_ =~ /arctica\.mic0/) {
+ $gotit = 1;
+ }
+}
+close(PACTL);
+
+
+if ($gotit ne 1) {
+system("pactl load-module module-null-sink sink_name=arctica.output0 channels=2 sink_properties=device.description=\"VirtualOutput\"");
+system("pactl load-module module-null-sink sink_name=arctica.input0 channels=1 sink_properties=device.description=\".VirtualInputSink\"");
+
+ my $pipeline = GStreamer1::Pipeline->new( 'pipeline' );
+ my $src = GStreamer1::ElementFactory::make( pulsesrc => 'src' );
+ $src->set( 'device' => "arctica.input0.monitor" );
+ my $sink = GStreamer1::ElementFactory::make( fakesink => 'sink' );
+ $pipeline->add( $src );
+ $pipeline->add( $sink );
+ $src->link($sink);
+ $pipeline->set_state( "playing" );
+ usleep(100000);
+ system("/usr/bin/pactl load-module module-remap-source master=arctica.input0.monitor source_name=arctica.mic0 source_properties=device.description=\"VirtualMicrophone\" remix=0");
+ usleep(1000000);
+ $pipeline->set_state( "paused" );
+ $pipeline->set_state( "null" );
+}