498 lines
15 KiB
PHP
498 lines
15 KiB
PHP
|
<?php
|
|||
|
include( "head.php" );
|
|||
|
?>
|
|||
|
<div id="alert"></div>
|
|||
|
<div class="thin2">
|
|||
|
<div class="row">
|
|||
|
<div class="col-md-6">
|
|||
|
<div class="row ">
|
|||
|
<div class="col-xs-3">
|
|||
|
<div class="panel panel-default">
|
|||
|
<div class="title">
|
|||
|
<h3 class="panel-title text-center">
|
|||
|
offline
|
|||
|
</h3>
|
|||
|
</div>
|
|||
|
<div class="panel-body text-center">
|
|||
|
<div id="did1" class="intercomBtn"><i class="fa fa-microphone hide"></i>1</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="col-xs-3">
|
|||
|
<div class="panel panel-default">
|
|||
|
<div class="title">
|
|||
|
<h3 class="panel-title text-center">
|
|||
|
offline
|
|||
|
</h3>
|
|||
|
</div>
|
|||
|
<div class="panel-body text-center">
|
|||
|
<div id="did2" class="intercomBtn"><i class="fa fa-microphone hide"></i>2</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="col-xs-3">
|
|||
|
<div class="panel panel-default">
|
|||
|
<div class="title">
|
|||
|
<h3 class="panel-title text-center">
|
|||
|
offline
|
|||
|
</h3>
|
|||
|
</div>
|
|||
|
<div class="panel-body text-center">
|
|||
|
<div id="did3" class="intercomBtn "><i class="fa fa-microphone hide"></i>3</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="col-xs-3">
|
|||
|
<div class="panel panel-default">
|
|||
|
<div class="title">
|
|||
|
<h3 class="panel-title text-center">
|
|||
|
offline
|
|||
|
</h3>
|
|||
|
</div>
|
|||
|
<div class="panel-body text-center">
|
|||
|
<div id="did4" class="intercomBtn"><i class="fa fa-microphone hide"></i>4</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="col-md-6">
|
|||
|
<div class="row ">
|
|||
|
<div class="col-xs-3">
|
|||
|
<div class="panel panel-default">
|
|||
|
<div class="title">
|
|||
|
<h3 class="panel-title text-center">
|
|||
|
offline
|
|||
|
</h3>
|
|||
|
</div>
|
|||
|
<div class="panel-body text-center">
|
|||
|
<div id="did5" class="intercomBtn"><i class="fa fa-microphone hide"></i>5</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="col-xs-3">
|
|||
|
<div class="panel panel-default">
|
|||
|
<div class="title">
|
|||
|
<h3 class="panel-title text-center">
|
|||
|
offline
|
|||
|
</h3>
|
|||
|
</div>
|
|||
|
<div class="panel-body text-center">
|
|||
|
<div id="did6" class="intercomBtn"><i class="fa fa-microphone hide"></i>6</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="col-xs-3">
|
|||
|
<div class="panel panel-default">
|
|||
|
<div class="title">
|
|||
|
<h3 class="panel-title text-center">
|
|||
|
offline
|
|||
|
</h3>
|
|||
|
</div>
|
|||
|
<div class="panel-body text-center">
|
|||
|
<div id="did7" class="intercomBtn"><i class="fa fa-microphone hide"></i>7</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="col-xs-3">
|
|||
|
<div class="panel panel-default">
|
|||
|
<div class="title">
|
|||
|
<h3 class="panel-title text-center">
|
|||
|
offline
|
|||
|
</h3>
|
|||
|
</div>
|
|||
|
<div class="panel-body text-center">
|
|||
|
<div id="did8" class="intercomBtn"><i class="fa fa-microphone hide"></i>8</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="col-xs-3" style="display:none;">
|
|||
|
<div class="panel panel-default">
|
|||
|
<div class="title">
|
|||
|
<h3 class="panel-title text-center">
|
|||
|
offline
|
|||
|
</h3>
|
|||
|
</div>
|
|||
|
<div class="panel-body text-center">
|
|||
|
<div id="did0" class="intercomBtn"><i class="fa fa-microphone hide"></i>0</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="row">
|
|||
|
<div class="col-md-6">
|
|||
|
<div class="panel panel-default">
|
|||
|
<div class="title">
|
|||
|
<h3 class="panel-title">
|
|||
|
<cn>集成通信设置</cn>
|
|||
|
<en>Intercom config</en>
|
|||
|
</h3>
|
|||
|
</div>
|
|||
|
<div class="panel-body">
|
|||
|
<form class="form-horizontal" id="intercom" role="form">
|
|||
|
<div class="form-group">
|
|||
|
<label class="col-md-3 col-sm-4 control-label">
|
|||
|
<cn>开关</cn><en>Enable</en>
|
|||
|
</label>
|
|||
|
<div class="col-md-6 col-sm-8">
|
|||
|
<input type="checkbox" zcfg="enable" class="switch form-control">
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="form-group">
|
|||
|
<label class="col-md-3 col-sm-4 control-label"><cn>服务器IP</cn><en>Server IP</en></label>
|
|||
|
<div class="col-md-6 col-sm-8">
|
|||
|
<input zcfg="ip" type="text" class="form-control">
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="form-group">
|
|||
|
<label class="col-md-3 col-sm-4 control-label"><cn>服务器端口</cn><en>Server port</en></label>
|
|||
|
<div class="col-md-6 col-sm-8">
|
|||
|
<input zcfg="port" type="text" class="form-control">
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="form-group">
|
|||
|
<label class="col-md-3 col-sm-4 control-label"><cn>名称</cn><en>Name</en></label>
|
|||
|
<div class="col-md-6 col-sm-8">
|
|||
|
<input zcfg="name" type="text" class="form-control">
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="form-group">
|
|||
|
<label class="col-md-3 col-sm-4 control-label"><cn>本机ID</cn><en>Device ID</en></label>
|
|||
|
<div class="col-md-6 col-sm-8">
|
|||
|
<select zcfg="did" class="form-control">
|
|||
|
<option value="0">0</option>
|
|||
|
<option value="1">1</option>
|
|||
|
<option value="2">2</option>
|
|||
|
<option value="3">3</option>
|
|||
|
<option value="4">4</option>
|
|||
|
<option value="5">5</option>
|
|||
|
<option value="6">6</option>
|
|||
|
<option value="7">7</option>
|
|||
|
<option value="8">8</option>
|
|||
|
</select>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="form-group">
|
|||
|
<label class="col-md-3 col-sm-4 control-label"><cn>目标ID</cn><en>Target ID</en></label>
|
|||
|
<div class="col-md-6 col-sm-8">
|
|||
|
<select zcfg="tid" class="form-control">
|
|||
|
<option value="-1">ALL</option>
|
|||
|
<option value="0">0</option>
|
|||
|
<option value="1">1</option>
|
|||
|
<option value="2">2</option>
|
|||
|
<option value="3">3</option>
|
|||
|
<option value="4">4</option>
|
|||
|
<option value="5">5</option>
|
|||
|
<option value="6">6</option>
|
|||
|
<option value="7">7</option>
|
|||
|
<option value="8">8</option>
|
|||
|
</select>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="form-group">
|
|||
|
<label class="col-md-3 col-sm-4 control-label"><cn>缓冲时间</cn><en>Buffer time</en></label>
|
|||
|
<div class="col-md-6 col-sm-8">
|
|||
|
<select zcfg="buf" class="form-control">
|
|||
|
<option value="8">200ms</option>
|
|||
|
<option value="16">400ms</option>
|
|||
|
<option value="24">600ms</option>
|
|||
|
<option value="32">800ms</option>
|
|||
|
</select>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="form-group">
|
|||
|
<label class="col-md-3 col-sm-4 control-label"><cn>麦克增益</cn><en>Mic gain</en></label>
|
|||
|
<div class="col-md-6 col-sm-8">
|
|||
|
<select zcfg="gain" class="form-control">
|
|||
|
<option value="24">+24db</option>
|
|||
|
<option value="18">+18db</option>
|
|||
|
<option value="12">+12db</option>
|
|||
|
<option value="6">+6db</option>
|
|||
|
<option value="0">+0db</option>
|
|||
|
</select>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="form-group">
|
|||
|
<label class="col-md-3 col-sm-4 control-label"><cn>自动静音</cn><en>Auto mute</en></label>
|
|||
|
<div class="col-md-6 col-sm-8">
|
|||
|
<select zcfg="vad" class="form-control">
|
|||
|
<option value="-1" cn="按键发言" en="Press to speak"></option>
|
|||
|
<option value="0" cn="常开" en="Keep open"></option>
|
|||
|
<option value="40" cn="低" en="Low"></option>
|
|||
|
<option value="50" cn="中" en="Mid"></option>
|
|||
|
<option value="65" cn="高" en="High"></option>
|
|||
|
</select>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</form>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="col-md-6">
|
|||
|
<div class="panel panel-default">
|
|||
|
<div class="title">
|
|||
|
<h3 class="panel-title">
|
|||
|
<cn>导播软件对接</cn>
|
|||
|
<en>Director software hook</en>
|
|||
|
</h3>
|
|||
|
</div>
|
|||
|
<div class="panel-body">
|
|||
|
<form class="form-horizontal" id="vmix" role="form">
|
|||
|
<div class="form-group">
|
|||
|
<label class="col-md-3 col-sm-4 control-label">
|
|||
|
<cn>开关</cn><en>Enable</en>
|
|||
|
</label>
|
|||
|
<div class="col-md-6 col-sm-8">
|
|||
|
<input type="checkbox" zcfg="enable" class="switch form-control">
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="form-group">
|
|||
|
<label class="col-md-3 col-sm-4 control-label"><cn>模式</cn><en>Mode</en></label>
|
|||
|
<div class="col-md-6 col-sm-8">
|
|||
|
<select zcfg="mode" class="form-control">
|
|||
|
<option value="vmix">vMix</option>
|
|||
|
<option value="sinsam">Sinsam</option>
|
|||
|
<option value="rs232">RS232</option>
|
|||
|
</select>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="form-group">
|
|||
|
<label class="col-md-3 col-sm-4 control-label"><cn>导播IP</cn><en>Director IP</en></label>
|
|||
|
<div class="col-md-6 col-sm-8">
|
|||
|
<input zcfg="ip" type="text" class="form-control">
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</form>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="panel panel-default">
|
|||
|
<div class="title">
|
|||
|
<h3 class="panel-title">
|
|||
|
<cn>集成通信服务端</cn>
|
|||
|
<en>Intercom server</en>
|
|||
|
</h3>
|
|||
|
</div>
|
|||
|
<div class="panel-body">
|
|||
|
<form class="form-horizontal" id="server" role="form">
|
|||
|
<div class="form-group">
|
|||
|
<label class="col-md-3 col-sm-4 control-label">
|
|||
|
<cn>开关</cn><en>Enable</en>
|
|||
|
</label>
|
|||
|
<div class="col-md-6 col-sm-8">
|
|||
|
<input type="checkbox" zcfg="enable" class="switch form-control">
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</form>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="panel panel-default">
|
|||
|
<div class="title">
|
|||
|
<h3 class="panel-title">
|
|||
|
<cn>Tally灯控制</cn>
|
|||
|
<en>Tally light control</en>
|
|||
|
</h3>
|
|||
|
</div>
|
|||
|
<div class="panel-body">
|
|||
|
<form class="form-horizontal" id="tally" role="form">
|
|||
|
<div class="form-group">
|
|||
|
<label class="col-md-3 col-sm-4 control-label">
|
|||
|
<cn>开关</cn><en>Enable</en>
|
|||
|
</label>
|
|||
|
<div class="col-md-4 col-sm-8">
|
|||
|
<input type="checkbox" zcfg="enable" class="switch form-control">
|
|||
|
</div>
|
|||
|
|
|||
|
<button type="button" class="btn btn-warning" data-toggle="modal" data-target="#modalTest">
|
|||
|
<cn>测试</cn>
|
|||
|
<en>Test</en>
|
|||
|
</button>
|
|||
|
</div>
|
|||
|
</form>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<hr style="margin-top:10px; margin-bottom: 10px;"/>
|
|||
|
<div class="text-center">
|
|||
|
<button type="button" id="save" class="btn btn-warning col-xs-4 col-xs-offset-4 col-md-2 col-md-offset-5">
|
|||
|
<cn>保存</cn>
|
|||
|
<en>Save</en>
|
|||
|
</button>
|
|||
|
</div>
|
|||
|
|
|||
|
|
|||
|
<div class="modal fade" id="modalTest" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
|
|||
|
<div class="modal-dialog" role="document">
|
|||
|
<div class="modal-content">
|
|||
|
<div class="modal-header">
|
|||
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
|||
|
</div>
|
|||
|
<div class="modal-body" id="test">
|
|||
|
<div class="row">
|
|||
|
<form class="form-horizontal" id="tallyTest" role="form">
|
|||
|
<div class="form-group">
|
|||
|
<label class="col-sm-2 col-xs-6 control-label">PVM</label>
|
|||
|
<div class="col-sm-2 col-xs-6">
|
|||
|
<select id="tally_PVM" class="form-control">
|
|||
|
<option value="1">1</option>
|
|||
|
<option value="2">2</option>
|
|||
|
<option value="3">3</option>
|
|||
|
<option value="4">4</option>
|
|||
|
<option value="5">5</option>
|
|||
|
<option value="6">6</option>
|
|||
|
<option value="7">7</option>
|
|||
|
<option value="8">8</option>
|
|||
|
</select>
|
|||
|
</div>
|
|||
|
|
|||
|
<label class="col-sm-2 col-xs-6 control-label">PGM</label>
|
|||
|
<div class="col-sm-2 col-xs-6">
|
|||
|
<select id="tally_PGM" class="form-control">
|
|||
|
<option value="1">1</option>
|
|||
|
<option value="2">2</option>
|
|||
|
<option value="3">3</option>
|
|||
|
<option value="4">4</option>
|
|||
|
<option value="5">5</option>
|
|||
|
<option value="6">6</option>
|
|||
|
<option value="7">7</option>
|
|||
|
<option value="8">8</option>
|
|||
|
</select>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</form>
|
|||
|
<div class="row">
|
|||
|
<button type="button" id="tally_test" class="btn btn-warning col-md-4 col-md-offset-3">
|
|||
|
<cn>测试</cn>
|
|||
|
<en>Test</en>
|
|||
|
</button>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
|
|||
|
<script src="vendor/switch/bootstrap-switch.min.js"></script>
|
|||
|
<script src="js/zcfg.js"></script>
|
|||
|
<script>
|
|||
|
$( function () {
|
|||
|
navIndex( 4 );
|
|||
|
$.fn.bootstrapSwitch.defaults.size = 'small';
|
|||
|
$.fn.bootstrapSwitch.defaults.onColor = 'warning';
|
|||
|
|
|||
|
var config;
|
|||
|
var myid;
|
|||
|
var myname;
|
|||
|
|
|||
|
$.getJSON( "config/intercom.json", function ( res ) {
|
|||
|
config=res;
|
|||
|
myid=config.intercom.did;
|
|||
|
myname=config.intercom.name;
|
|||
|
zcfg( "#intercom", config.intercom );
|
|||
|
zcfg( "#vmix", config.vmix );
|
|||
|
zcfg( "#tally", config.tally );
|
|||
|
zcfg( "#server", config.server );
|
|||
|
} );
|
|||
|
|
|||
|
$( "#save" ).click( function (){
|
|||
|
rpc( "intercom.update", [config], function ( res ) {
|
|||
|
if ( typeof ( res.error ) != "undefined" ) {
|
|||
|
htmlAlert( "#alert", "danger", "<cn>保存设置失败</cn><en>Save config failed</en>!", "", 2000 );
|
|||
|
} else {
|
|||
|
myid=config.intercom.did;
|
|||
|
myname=config.intercom.name;
|
|||
|
htmlAlert( "#alert", "success", "<cn>保存设置成功</cn><en>Save config success</en>!", "", 2000 );
|
|||
|
}
|
|||
|
} );
|
|||
|
});
|
|||
|
|
|||
|
$( "#tally_test" ).click( function (){
|
|||
|
var list=[];
|
|||
|
for(var i=1;i<=8;i++)
|
|||
|
{
|
|||
|
var v=0;
|
|||
|
if($("#tally_PVM").val()==i)
|
|||
|
v=2;
|
|||
|
if($("#tally_PGM").val()==i)
|
|||
|
v=1;
|
|||
|
list.push(v);
|
|||
|
}
|
|||
|
rpc( "intercom.setTally", [list]);
|
|||
|
});
|
|||
|
|
|||
|
function getState()
|
|||
|
{
|
|||
|
$("#did"+myid).parent().parent().find("h3").text(myname);
|
|||
|
rpc( "intercom.getState", null, function ( res ) {
|
|||
|
//console.log(res);
|
|||
|
var intercom=res.intercom;
|
|||
|
var tally=res.tally;
|
|||
|
var ids=[];
|
|||
|
ids.push(myid);
|
|||
|
$("#did"+myid).addClass("alive");
|
|||
|
$("#did"+myid).parent().parent().find("h3").text(myname);
|
|||
|
if(res.talking)
|
|||
|
$("#did"+myid+" i").removeClass("hide");
|
|||
|
else
|
|||
|
$("#did"+myid+" i").addClass("hide");
|
|||
|
|
|||
|
for(var i=0;i<intercom.length;i++)
|
|||
|
{
|
|||
|
var chn=intercom[i];
|
|||
|
ids.push(chn.id);
|
|||
|
$("#did"+chn.id).parent().parent().find("h3").text(chn.name);
|
|||
|
$("#did"+chn.id).addClass("alive");
|
|||
|
if(chn.talking)
|
|||
|
$("#did"+chn.id+" i").removeClass("hide");
|
|||
|
else
|
|||
|
$("#did"+chn.id+" i").addClass("hide");
|
|||
|
}
|
|||
|
|
|||
|
for(var i=0;i<=8;i++)
|
|||
|
{
|
|||
|
if(ids.indexOf(i)<0)
|
|||
|
{
|
|||
|
$("#did"+i).parent().parent().find("h3").text("offline");
|
|||
|
$("#did"+i).removeClass("alive");
|
|||
|
$("#did"+i+" i").addClass("hide");
|
|||
|
}
|
|||
|
|
|||
|
if(i<8)
|
|||
|
{
|
|||
|
if(tally && i<tally.length && tally[i]>0)
|
|||
|
{
|
|||
|
var x=tally[i];
|
|||
|
|
|||
|
if(x==1)
|
|||
|
{
|
|||
|
$("#did"+(i+1)).removeClass("green");
|
|||
|
$("#did"+(i+1)).addClass("red");
|
|||
|
}
|
|||
|
else if(x==2)
|
|||
|
{
|
|||
|
$("#did"+(i+1)).removeClass("red");
|
|||
|
$("#did"+(i+1)).addClass("green");
|
|||
|
}
|
|||
|
}
|
|||
|
else{
|
|||
|
$("#did"+(i+1)).removeClass("green");
|
|||
|
$("#did"+(i+1)).removeClass("red");
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
setTimeout(getState, 500);
|
|||
|
} );
|
|||
|
}
|
|||
|
getState();
|
|||
|
} );
|
|||
|
</script>
|
|||
|
<?php
|
|||
|
include( "foot.php" );
|
|||
|
?>
|