Как управлять IconBit?

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
НадеждаЯ
Сообщения: 47
Зарегистрирован: Пн сен 04, 2017 5:52 pm
Благодарил (а): 25 раз
Поблагодарили: 1 раз

Как управлять IconBit?

Сообщение НадеждаЯ » Вс сен 24, 2017 1:00 pm

Помогите, пожалуйста.
Есть у меня IconBit XDS1003D - старенький, но очень классный медиаплеер.
И вот в попытках сделать весь дом умным, я полезла ковырять, не получится ли управлять им из МД. Ну то есть ИК пультом через Broadlink он, понятно, управляется, но мне кажется, что он может больше.
Я откопала, что можно получить доступ к настройкам через браузер (по IP плеера), там, кроме прочего, есть пунктик, который выводит что-то типа пульта, позволяющего удаленно запускать киношки и немного управлять этим процессом.
Внутри там...Показать
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Remote Control</title>

<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=2.0; user-scalable=no;"/>
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
</head>


<script>

var global_slider;
var auto_moved = false;

var isIE = (document.all) ? true : false;

var $ = function (id) {
return "string" == typeof id ? document.getElementById(id) : id;
};

var Class = {
create: function() {
return function() { this.initialize.apply(this, arguments); }
}
}

var Extend = function(destination, source) {
for (var property in source) {
destination[property] = source[property];
}
}

var Bind = function(object, fun) {
var args = Array.prototype.slice.call(arguments).slice(2);
return function() {
return fun.apply(object, args);
}
}

var BindAsEventListener = function(object, fun) {
return function(event) {
return fun.call(object, Event(event));
}
}

function Event(e){
var oEvent = isIE ? window.event : e;
if (isIE) {
oEvent.pageX = oEvent.clientX + document.documentElement.scrollLeft;
oEvent.pageY = oEvent.clientY + document.documentElement.scrollTop;
oEvent.preventDefault = function () { this.returnValue = false; };
oEvent.detail = oEvent.wheelDelta / (-40);
oEvent.stopPropagation = function(){ this.cancelBubble = true; };
}
return oEvent;
}

var CurrentStyle = function(element){
return element.currentStyle || document.defaultView.getComputedStyle(element, null);
}

function addEventHandler(oTarget, sEventType, fnHandler) {
if (oTarget.addEventListener) {
oTarget.addEventListener(sEventType, fnHandler, false);
} else if (oTarget.attachEvent) {
oTarget.attachEvent("on" + sEventType, fnHandler);
} else {
oTarget["on" + sEventType] = fnHandler;
}
};


function removeEventHandler(oTarget, sEventType, fnHandler) {
if (oTarget.removeEventListener) {
oTarget.removeEventListener(sEventType, fnHandler, false);
} else if (oTarget.detachEvent) {
oTarget.detachEvent("on" + sEventType, fnHandler);
} else {
oTarget["on" + sEventType] = null;
}
};


//»¬¶ЇМхіМРт
var Slider = Class.create();
Slider.prototype = {
//ИЭЖч¶ФП󣬻¬їй
initialize: function(container, bar, options) {
this.Bar = $(bar);
this.Container = $(container);
this._timer = null;//ЧФ¶Ї»¬ТЖµД¶ЁК±Жч
this._ondrag = false;//ЅвѕцieµДclickОКМв
//КЗ·сЧоРЎЦµЎўЧоґуЦµЎўЦРјдЦµ
this._IsMin = this._IsMax = this._IsMid = false;
//КµАэ»ЇТ»ёцНП·Е¶ФПуЈ¬ІўПЮ¶Ё·¶О§
this._drag = new Drag(this.Bar, { Limit: true, mxContainer: this.Container,
onStart: Bind(this, this.DragStart), onStop: Bind(this, this.DragStop), onMove: Bind(this, this.Move)
});

this.SetOptions(options);

this.WheelSpeed = Math.max(0, this.options.WheelSpeed);
this.KeySpeed = Math.max(0, this.options.KeySpeed);

this.MinValue = this.options.MinValue;
this.MaxValue = this.options.MaxValue;

this.RunTime = Math.max(1, this.options.RunTime);
this.RunStep = Math.max(1, this.options.RunStep);

this.Ease = !!this.options.Ease;
this.EaseStep = Math.max(1, this.options.EaseStep);

this.onMin = this.options.onMin;
this.onMax = this.options.onMax;
this.onMid = this.options.onMid;

this.onDragStart = this.options.onDragStart;
this.onDragStop = this.options.onDragStop;

this.onMove = this.options.onMove;

this._horizontal = !!this.options.Horizontal;//Т»°гІ»ФКРнРЮёД

//Лш¶ЁНП·Е·ЅПт
this._drag[this._horizontal ? "LockY" : "LockX"] = true;

//µг»чїШЦЖ
addEventHandler(this.Container, "click", BindAsEventListener(this, function(e){ this._ondrag || this.ClickCtrl(e);}));
//ИЎПыГ°ЕЭЈ¬·АЦ№ёъContainerµДclickіеН»
addEventHandler(this.Bar, "click", BindAsEventListener(this, function(e){ e.stopPropagation(); }));

//ЙиЦГКу±к№цВЦїШЦЖ
this.WheelBind(this.Container);
//ЙиЦГ·ЅПтјьїШЦЖ
this.KeyBind(this.Container);
//РЮХэ»сИЎЅ№µг
var oFocus = isIE ? (this.KeyBind(this.Bar), this.Bar) : this.Container;
addEventHandler(this.Bar, "mousedown", function(){ oFocus.focus(); });
//ieКу±кІ¶»сєНffµДИЎПыД¬ИП¶ЇЧч¶јІ»ДЬ»сµГЅ№µгЈ¬ЛщТФТЄКЦ¶Ї»сИЎ
//Из№ыie°СfocusЙиЦГµЅContainerЈ¬ДЗГґФЪіцПЦ№ц¶ЇМхК±ieµДfocusїЙДЬ»бµјЦВЧФ¶Ї№цЖБ
},
//ЙиЦГД¬ИПКфРФ
SetOptions: function(options) {
this.options = {//Д¬ИПЦµ
MinValue: 0,//ЧоРЎЦµ
MaxValue: 100,//ЧоґуЦµ
WheelSpeed: 5,//Ку±к№цВЦЛЩ¶И,ФЅґуФЅїм(0ФтИЎПыКу±к№цВЦїШЦЖ)
KeySpeed: 50,//·ЅПтјь№ц¶ЇЛЩ¶И,ФЅґуФЅВэ(0ФтИЎПы·ЅПтјьїШЦЖ)
Horizontal: true,//КЗ·сЛ®ЖЅ»¬¶Ї
RunTime: 20,//ЧФ¶Ї»¬ТЖµДСУК±К±јд,ФЅґуФЅВэ
RunStep: 2,//ЧФ¶Ї»¬ТЖГїґО»¬¶ЇµД°Щ·Ц±И
Ease: false,//КЗ·с»є¶Ї
EaseStep: 5,//»є¶ЇµИј¶,ФЅґуФЅВэ
onMin: function(){},//ЧоРЎЦµК±ЦґРР
onMax: function(){},//ЧоґуЦµК±ЦґРР
onMid: function(){},//ЦРјдЦµК±ЦґРР
onDragStart:function(){},//НП¶ЇїЄКјК±ЦґРР
onDragStop: function(){},//НП¶ЇЅбКшК±ЦґРР
onMove: function(){}//»¬¶ЇК±ЦґРР
};
Extend(this.options, options || {});
},
//їЄКјНП·Е»¬¶Ї
DragStart: function() {
this.Stop();
this.onDragStart();
this._ondrag = true;
},
//ЅбКшНП·Е»¬¶Ї
DragStop: function() {
this.onDragStop();
setTimeout(Bind(this, function(){ this._ondrag = false; }), 10);
},
//»¬¶ЇЦР
Move: function() {
this.onMove();

var percent = this.GetPercent();
//ЧоРЎЦµЕР¶П
if(percent > 0){
this._IsMin = false;
}else{
if(!this._IsMin){ this.onMin(); this._IsMin = true; }
}
//ЧоґуЦµЕР¶П
if(percent < 1){
this._IsMax = false;
}else{
if(!this._IsMax){ this.onMax(); this._IsMax = true; }
}
//ЦРјдЦµЕР¶П
if(percent > 0 && percent < 1){
if(!this._IsMid){ this.onMid(); this._IsMid = true; }
}else{
this._IsMid = false;
}
},
//Ку±кµг»чїШЦЖ
ClickCtrl: function(e) {
var o = this.Container, iLeft = o.offsetLeft, iTop = o.offsetTop;
while (o.offsetParent) { o = o.offsetParent; iLeft += o.offsetLeft; iTop += o.offsetTop; }
//їјВЗУР№ц¶ЇМхЈ¬ТЄУГpageXєНpageY
this.EasePos(e.pageX - iLeft - this.Bar.offsetWidth / 2, e.pageY - iTop - this.Bar.offsetHeight / 2);
},
//Ку±к№цВЦїШЦЖ
WheelCtrl: function(e) {
var i = this.WheelSpeed * e.detail;
this.SetPos(this.Bar.offsetLeft + i, this.Bar.offsetTop + i);
//·АЦ№ґҐ·ўЖдЛы№ц¶ЇМх
e.preventDefault();
},
//°у¶ЁКу±к№цВЦ
WheelBind: function(o) {
//Ку±к№цВЦїШЦЖ
addEventHandler(o, isIE ? "mousewheel" : "DOMMouseScroll", BindAsEventListener(this, this.WheelCtrl));
},
//·ЅПтјьїШЦЖ
KeyCtrl: function(e) {
if(this.KeySpeed){
var iLeft = this.Bar.offsetLeft, iWidth = (this.Container.clientWidth - this.Bar.offsetWidth) / this.KeySpeed
, iTop = this.Bar.offsetTop, iHeight = (this.Container.clientHeight - this.Bar.offsetHeight) / this.KeySpeed;
//ёщѕЭ°ґјьЙиЦГЦµ
switch (e.keyCode) {
case 37 ://Чу
iLeft -= iWidth; break;
case 38 ://ЙП
iTop -= iHeight; break;
case 39 ://УТ
iLeft += iWidth; break;
case 40 ://ПВ
iTop += iHeight; break;
default :
return;//І»КЗ·ЅПт°ґјь·µ»Ш
}
this.SetPos(iLeft, iTop);
//·АЦ№ґҐ·ўЖдЛы№ц¶ЇМх
e.preventDefault();
}
},
//°у¶Ё·ЅПтјь
KeyBind: function(o) {
addEventHandler(o, "keydown", BindAsEventListener(this, this.KeyCtrl));
//ЙиЦГtabIndexК№ЙиЦГ¶ФПуДЬЦ§іЦfocus
o.tabIndex = -1;
//ИЎПыfocusК±іцПЦµДРйПЯїт
isIE || (o.style.outline = "none");
},
//»сИЎµ±З°Цµ
GetValue: function() {
//ёщѕЭЧоґуЧоРЎЦµєН»¬¶Ї°Щ·Ц±ИИЎЦµ
return this.MinValue + this.GetPercent() * (this.MaxValue - this.MinValue);
},
//ЙиЦГЦµО»ЦГ
SetValue: function(value) {
//ёщѕЭЧоґуЧоРЎЦµєНІОКэЦµЙиЦГ»¬їйО»ЦГ
this.SetPercent((value- this.MinValue)/(this.MaxValue - this.MinValue));
},
//»сИЎ°Щ·Ц±И
GetPercent: function() {
//ёщѕЭ»¬¶ЇМх»¬їйИЎ°Щ·Ц±И
return this._horizontal ? this.Bar.offsetLeft / (this.Container.clientWidth - this.Bar.offsetWidth)
: this.Bar.offsetTop / (this.Container.clientHeight - this.Bar.offsetHeight)
},
//ЙиЦГ°Щ·Ц±ИО»ЦГ
SetPercent: function(value) {
//ёщѕЭ°Щ·Ц±ИЙиЦГ»¬їйО»ЦГ
this.EasePos((this.Container.clientWidth - this.Bar.offsetWidth) * value, (this.Container.clientHeight - this.Bar.offsetHeight) * value);
},
//ЧФ¶Ї»¬ТЖ(КЗ·сµЭФц)
Run: function(bIncrease) {
this.Stop();
//РЮХэТ»ПВbIncrease
bIncrease = !!bIncrease;
//ёщѕЭКЗ·сµЭФцАґЙиЦГЦµ
var percent = this.GetPercent() + (bIncrease ? 1 : -1) * this.RunStep / 100;
this.SetPos((this.Container.clientWidth - this.Bar.offsetWidth) * percent, (this.Container.clientHeight - this.Bar.offsetHeight) * percent);
//Из№ыГ»УРµЅј«ПЮЦµѕНјМРш»¬ТЖ
if(!(bIncrease ? this._IsMax : this._IsMin)){
this._timer = setTimeout(Bind(this, this.Run, bIncrease), this.RunTime);
}
},
//НЈЦ№»¬ТЖ
Stop: function() {
clearTimeout(this._timer);
},
//»є¶Ї»¬ТЖ
EasePos: function(iLeftT, iTopT) {
this.Stop();
//±ШРлКЗХыКэЈ¬·сФтїЙДЬЛАС­»·
iLeftT = Math.round(iLeftT); iTopT = Math.round(iTopT);
//Из№ыГ»УРЙиЦГ»є¶Ї
if(!this.Ease){ this.SetPos(iLeftT, iTopT); return; }
//»сИЎ»є¶ЇІОКэ
var iLeftN = this.Bar.offsetLeft, iLeftS = this.GetStep(iLeftT, iLeftN)
, iTopN = this.Bar.offsetTop, iTopS = this.GetStep(iTopT, iTopN);
//Из№ыІОКэУРЦµ
if(this._horizontal ? iLeftS : iTopS){
//ЙиЦГО»ЦГ
this.SetPos(iLeftN + iLeftS, iTopN + iTopS);
//Из№ыГ»УРµЅј«ПЮЦµФтјМРш»є¶Ї
if(this._IsMid){ this._timer = setTimeout(Bind(this, this.EasePos, iLeftT, iTopT), this.RunTime); }
}
},
//»сИЎІЅі¤
GetStep: function(iTarget, iNow) {
var iStep = (iTarget - iNow) / this.EaseStep;
if (iStep == 0) return 0;
if (Math.abs(iStep) < 1) return (iStep > 0 ? 1 : -1);
return iStep;
},
//ЙиЦГ»¬їйО»ЦГ
SetPos: function(iLeft, iTop) {
this.Stop();
this._drag.SetPos(iLeft, iTop);
}
};
</script>

<script type="text/javascript" src="Drag.js"></script>

<script>
function createPgBar(){

// document.getElementById("idSlider3").setAttribute("class", "slider3");
// document.getElementById("idBar3").setAttribute("class", "bar3");
global_slider = new Slider("idSlider3", "idBar3", {
//onMin: function(){ $("idCurrentState").innerHTML = "µЅґпїЄКјЦµ"; },
//onMax: function(){ $("idCurrentState").innerHTML = "µЅґпЅбКшЦµ"; },
//onMid: function(){ $("idCurrentState").innerHTML = "»¬¶ЇЦР"; },
onMove: function(){
$("command_desc").innerHTML = Math.round(this.GetValue());
if(auto_moved == false){
arr = current_ap_subcontext.split("/");
var aa = parseInt(arr[1]);
var bb = Math.round(this.GetValue());
var time = Math.round(aa*bb/100);

var cmd = "playattime " + time;
sendCommand(cmd);
}

},

onDragStop: function(){

$("desc").innerHTML = Math.round(this.GetValue());
},

onDragStart: function(){
alert("aaa");
}

});



}
</script>



<style type="text/css">
.slider3{height:32px; width:316px; background-color:#000000; border:2px solid #EAE6DD; margin:-8px;}
.bar3 {height:28px; width:10px; border:2px outset buttonhighlight; background-color:#D4D0C8;_font-size:0; }
</style>


<script type="text/javascript">

var current_ap_context = "unknown";
var current_ap_subcontext = "unknown";
var command_xmlhttp;
var status_xmlhttp;


function getXmlHttpRequestObject()
{
var xmlhttp;
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
return xmlhttp;
}

function handleCommand()
{
if(command_xmlhttp.readyState==4)
{
if(command_xmlhttp.status == 200){
showDiscription(command_xmlhttp.responseText);
}
}
}

function sendCommand(command)
{
command_xmlhttp = getXmlHttpRequestObject();
command_xmlhttp.onreadystatechange = handleCommand;
var url="./cgi-bin/IpodCGI.cgi?id=0&command=" + command;
command_xmlhttp.open("GET", url ,true);
command_xmlhttp.send(null);
sendCommand_print(command);
}

function handleStatus()
{
if(status_xmlhttp.readyState==4)
{
if(status_xmlhttp.status == 200){
var xmlDoc = status_xmlhttp.responseXML;
var context = xmlDoc.getElementsByTagName("Context").item(0);
var appstatus = context.getElementsByTagName("appStatus")[0].firstChild.nodeValue;
var substatus = context.getElementsByTagName("subStatus")[0].firstChild.nodeValue;
showOptionMenu(appstatus,substatus);
}
}
}

function sendStatus(status1,status2)
{
status_xmlhttp = getXmlHttpRequestObject();
status_xmlhttp.onreadystatechange = handleStatus;
var url="./cgi-bin/IpodCGI.cgi?id=1&status=" + status1 + "&substatus=" + status2;
status_xmlhttp.open("GET", url ,true);
status_xmlhttp.send(null);
}


function sendCommand_print(command)
{
document.getElementById("command_desc").innerHTML="Send: " + command;
}

function showDiscription(text)
{
document.getElementById("desc").innerHTML=text;
}

function addButton(title, command, div)
{
var newButton = document.createElement("button");
buttonText = document.createTextNode(title);
newButton.setAttribute("TYPE", "button");
newButton.setAttribute("VALUE", command);
newButton.setAttribute("name", command);
newButton.setAttribute("style","background-image: url('image/button320_45.png'); background-repeat: no-repeat; background-color:black; height: 45px; margin-left: -8px; width: 320px; font-size:25px; font-family:Times; color:white");

tmp= "sendCommand('" + command + "')";
//alert(tmp);
//newButton.setAttribute("onClick", tmp);
newButton.onclick = new Function(tmp);

newButton.appendChild(buttonText);

div.appendChild(newButton);

br = document.createElement("br");
div.appendChild(br);
}

function addButton2(title, command, div)
{
var newButton = document.createElement("button");
buttonText = document.createTextNode(title);
newButton.setAttribute("TYPE", "button");
newButton.setAttribute("VALUE", command);
newButton.setAttribute("name", command);
newButton.setAttribute("style","background-image: url('image/button320_45.png'); background-repeat: no-repeat; background-color:black; height: 45px; margin-left: -8px; width: 320px; font-size:25px; font-family:Times; color:white");

tmp= "createPgBar();";
//alert(tmp);
//newButton.setAttribute("onClick", tmp);
newButton.onclick = new Function(tmp);

newButton.appendChild(buttonText);

div.appendChild(newButton);

br = document.createElement("br");
div.appendChild(br);
}




function addSerachForm(title, div)
{

var p = document.createElement("p");
var pText = document.createTextNode("Enter Below");
p.appendChild(pText);
div.appendChild(p);

var inputtext = document.createElement("input");
inputtext.setAttribute("TYPE", "text");
inputtext.setAttribute("VALUE", "");
inputtext.setAttribute("name", "SearchKeyword");
inputtext.setAttribute("style","height: 40px; width: 280px; font-size:25px; font-family:Times");
tmp = "sendCommand('search ' + this.value);"
inputtext.onchange = new Function(tmp);


br = document.createElement("br");
div.appendChild(br);


div.appendChild(inputtext);
div.appendChild(br);
}

function showOptionMenu(appstatus,substatus)
{

var container = document.getElementById("optionContainer");
var div = document.getElementById("optionDiv");
var sliderdiv = document.getElementById("idSlider3");
var bardiv = document.getElementById("idBar3");

//if((appstatus == "IMSAP") &&(substatus == "keyboard") &&

if((current_ap_context == appstatus) &&(current_ap_subcontext == substatus))
{
sendStatus(current_ap_context,current_ap_subcontext);
return;
}

if((current_ap_context == appstatus) && (appstatus == "video_playback") && (substatus != "unknown"))
{
//alert(substatus);
showDiscription(substatus);

current_ap_subcontext = substatus;
arr = substatus.split("/");
var aa = parseInt(arr[0]);
var bb = parseInt(arr[1]);
var cc = Math.round(aa*100/bb);

auto_moved = true;
global_slider.SetValue(cc);
auto_moved = false;
sendStatus(current_ap_context,current_ap_subcontext);
// alert(current_ap_context + " " + current_ap_subcontext);
return;
}


if (bardiv != null) {
sliderdiv.removeChild(bardiv);
bardiv = null;
}

if (sliderdiv != null) {
container.removeChild(sliderdiv);
sliderdiv = null;
}

if (div != null) {
container.removeChild(div);
div = null;
}

//document.getElementById("desc").innerHTML=text;
//document.getElementById("idSlider3").innerHTML = "";
//document.getElementById("idBar3").innerHTML = "aaaa";


div =document.createElement("div");
div.setAttribute("id", "optionDiv");

sliderdiv =document.createElement("div");
sliderdiv.setAttribute("id", "idSlider3");
sliderdiv.setAttribute("class", "slider3");

bardiv =document.createElement("div");
bardiv.setAttribute("id", "idBar3");
bardiv.setAttribute("class", "bar3");

// *************************************************
// Add option for each context here <---------------

if (appstatus =="home_menu") {

}
else if (appstatus=="music_playback") {
addButton("Prev", "prev", div);
addButton("Next", "next", div);
addButton("Play", "play", div);
addButton("Pause", "pause", div);
addButton("Mute", "mute", div);
addButton("Stop", "stop", div);
}
else if (appstatus=="picture_playback") {
addButton("Prev", "prev", div);
addButton("Next", "next", div);
addButton("Zoom", "zoom", div);
addButton("Rotate Right 90","rotate right",div);
addButton("Rotate Left 90","rotate left",div);
addButton("Stop", "stop", div);
}
else if (appstatus =="video_playback"){
addButton("Prev", "prev_file", div);
addButton("Next", "next_file", div);
addButton("Play/Pause", "play", div);
addButton("FastForward", "ffwd", div);
addButton("FastRewind", "frwd", div);
addButton("Stop", "stop", div);
addButton("Mute", "mute", div);
container.appendChild(sliderdiv);
sliderdiv.appendChild(bardiv);
createPgBar();

}
else if (appstatus =="keyboard")
{
addSerachForm("Search:",div);
}
else if (appstatus == "IMSAP"){
if (substatus =="audio") {
addButton("Prev", "prev_file", div);
addButton("Next", "next_file", div);
addButton("Play/Pause", "play", div);
addButton("Mute", "mute", div);
addButton("Stop", "stop", div);
}
else if (substatus =="picture") {
addButton("Prev", "prev", div);
addButton("Next", "next", div);
addButton("Zoom", "zoom", div);
addButton("Rotate Right 90","rotate right",div);
addButton("Rotate Left 90","rotate left",div);
addButton("Stop", "stop", div);
}
else if (substatus =="video"){
addButton("Prev", "prev_file", div);
addButton("Next", "next_file", div);
addButton("Play/Pause", "play", div);
addButton("FastForward", "ffwd", div);
addButton("FastRewind", "frwd", div);
addButton("Stop", "stop", div);
addButton("Mute", "mute", div);
}
else if (substatus =="keyboard"){
addSerachForm("Search:",div);


}
}
// End of option
// --------------------------------------------------

container.appendChild(div);
current_ap_context = appstatus;
current_ap_subcontext = substatus;
sendStatus(current_ap_context,current_ap_subcontext);
}


</script>
</head>

<body bgcolor=black text=yellow onload="sendStatus(current_ap_context,current_ap_subcontext);">
<!-- Below is the remote control main section, which contains the mapping to up/down/lef/right/select/guide/return -->
<img src ="image/remote.jpg" width ="320" height ="287" alt="Menu" usemap="#planetmap" />

<map name="planetmap">
<area shape ="rect" coords ="22,9,82,69"
onMouseOver="showDiscription('move over Menu')"
onClick="sendCommand('menu')"
target ="_blank" alt="Menu" />

<area shape ="rect" coords ="232,9,292,69"
onMouseOver="showDiscription('move over Return')"
onClick="sendCommand('return')"
target ="_blank" alt="Return" />

<area shape ="rect" coords ="96,43,222,103"
onMouseOver="showDiscription('move over Up')"
onClick="sendCommand('up')"
target ="_blank" alt="Up" />

<area shape ="rect" coords ="96,226,222,286"
onMouseOver="showDiscription('move over Down')"
onClick="sendCommand('down')"
target ="_blank" alt="Down" />

<area shape ="rect" coords ="32,89,92,219"
onMouseOver="showDiscription('move over Left')"
onClick="sendCommand('left')"
target ="_blank" alt="Down" />

<area shape ="rect" coords ="222,89,282,219"
onClick="sendCommand('right')"
onMouseOver="showDiscription('move over right')"
target ="_blank" alt="Down" />


<area shape ="circle" coords ="163,163,45"
onClick="sendCommand('select')"
onMouseOver="showDiscription('move over Select')"
target ="_blank" alt="Select" />

<area shape ="rect" coords ="24,244,60,280"
onClick="sendCommand('guide')"
onMouseOver="showDiscription('move over guide')"
target ="_blank" alt="Guide" />

</map>

<br/>
<div id="optionContainer" align="left">
<!--
<div id="idSlider3">
<div id="idBar3"></div><br /></div>
-->
</div>
<br/>

<p id="desc"></p>
<p id="command_desc"></p>


</body>
</html>
Дальше не понимаю что делать. :oops:
Ну посмотрела я код странички, которая рисует в браузере пультик, но как оттуда что добыть...
Может, это уже есть все давно?

*** Сообщение запрещено. Сообщение похоже на спам. ***
Logrus
Сообщения: 2084
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: Как управлять IconBit?

Сообщение Logrus » Вт сен 26, 2017 3:49 pm

оффтопик, вот честно восхищаюсь Надеждой.
http://4pda.ru/forum/index.php?showtopi ... ry37109743
а пульты что отличаются функционалом?
п.с. я в этом ни бельмес, но там же есть функция отправки комманд var url="./cgi-bin/IpodCGI.cgi?id=0&command=" + command;
За это сообщение автора Logrus поблагодарил:
НадеждаЯ (Пт сен 29, 2017 9:05 pm)
Рейтинг: 1.16%
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Как управлять IconBit?

Сообщение sergejey » Вт сен 26, 2017 7:14 pm

Logrus писал(а):п.с. я в этом ни бельмес, но там же есть функция отправки комманд var url="./cgi-bin/IpodCGI.cgi?id=0&command=" + command;
если работает управление по ссылке, то управлять можно из МД так:

Код: Выделить всё

$command = '<cmd>';
getURL('http://<IP>/cgi-bin/IpodCGI.cgi?id=0&command='.urlencode($command)); 
вместо <cmd> одна из команд:

Код: Выделить всё

playattime <time>
prev
next
play
pause
mute
stop
zoom
rotate right
rotate left
prev_file
next_file
ffwd
frwd
search <text> 
За это сообщение автора sergejey поблагодарил:
НадеждаЯ (Пт сен 29, 2017 9:05 pm)
Рейтинг: 1.16%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
НадеждаЯ
Сообщения: 47
Зарегистрирован: Пн сен 04, 2017 5:52 pm
Благодарил (а): 25 раз
Поблагодарили: 1 раз

Re: Как управлять IconBit?

Сообщение НадеждаЯ » Пт сен 29, 2017 9:14 pm

Спасибо! Направление для мысли получила. Я в том коде не рассмотрела то, во что меня носом ткнули
Ответить