mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-27 23:42:58 +02:00
our current experimental Neutrino branch
git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@27 e54a6e83-5905-42d5-8d5c-058d10e6a962
This commit is contained in:
316
lib/controldclient/controldclient.cpp
Normal file
316
lib/controldclient/controldclient.cpp
Normal file
@@ -0,0 +1,316 @@
|
||||
/*
|
||||
Neutrino-GUI - DBoxII-Project
|
||||
|
||||
Copyright (C) 2001 Steffen Hehn 'McClean'
|
||||
Homepage: http://dbox.cyberphoria.org/
|
||||
|
||||
Kommentar:
|
||||
|
||||
Diese GUI wurde von Grund auf neu programmiert und sollte nun vom
|
||||
Aufbau und auch den Ausbaumoeglichkeiten gut aussehen. Neutrino basiert
|
||||
auf der Client-Server Idee, diese GUI ist also von der direkten DBox-
|
||||
Steuerung getrennt. Diese wird dann von Daemons uebernommen.
|
||||
|
||||
|
||||
License: GPL
|
||||
|
||||
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; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include <eventserver.h>
|
||||
#include <controldclient/controldclient.h>
|
||||
|
||||
|
||||
const unsigned char CControldClient::getVersion () const
|
||||
{
|
||||
return CControldMsg::ACTVERSION;
|
||||
}
|
||||
|
||||
const char * CControldClient::getSocketName() const
|
||||
{
|
||||
return CONTROLD_UDS_NAME;
|
||||
}
|
||||
|
||||
void CControldClient::shutdown()
|
||||
{
|
||||
send(CControldMsg::CMD_SHUTDOWN);
|
||||
close_connection();
|
||||
}
|
||||
|
||||
void CControldClient::setBoxType(CControld::tuxbox_maker_t type)
|
||||
{
|
||||
CControldMsg::commandBoxType msg2;
|
||||
|
||||
msg2.boxtype = type;
|
||||
|
||||
send(CControldMsg::CMD_SETBOXTYPE, (char*)&msg2, sizeof(msg2));
|
||||
|
||||
close_connection();
|
||||
}
|
||||
|
||||
CControld::tuxbox_maker_t CControldClient::getBoxType()
|
||||
{
|
||||
CControldMsg::responseBoxType rmsg;
|
||||
|
||||
send(CControldMsg::CMD_GETBOXTYPE);
|
||||
|
||||
if (!receive_data((char*)&rmsg, sizeof(rmsg)))
|
||||
rmsg.boxtype = CControld::TUXBOX_MAKER_UNKNOWN;
|
||||
|
||||
close_connection();
|
||||
|
||||
return rmsg.boxtype;
|
||||
}
|
||||
|
||||
void CControldClient::setScartMode(bool mode)
|
||||
{
|
||||
CControldMsg::commandScartMode msg2;
|
||||
|
||||
msg2.mode = mode;
|
||||
|
||||
send(CControldMsg::CMD_SETSCARTMODE, (char*)&msg2, sizeof(msg2));
|
||||
|
||||
close_connection();
|
||||
}
|
||||
|
||||
char CControldClient::getScartMode()
|
||||
{
|
||||
CControldMsg::responseScartMode rmsg;
|
||||
send(CControldMsg::CMD_GETSCARTMODE);
|
||||
receive_data((char*)&rmsg, sizeof(rmsg));
|
||||
close_connection();
|
||||
|
||||
return rmsg.mode;
|
||||
}
|
||||
|
||||
void CControldClient::setVolume(const char volume, const CControld::volume_type volume_type)
|
||||
{
|
||||
CControldMsg::commandVolume msg2;
|
||||
msg2.type = volume_type;
|
||||
msg2.volume = volume;
|
||||
send(CControldMsg::CMD_SETVOLUME, (char*)&msg2, sizeof(msg2));
|
||||
close_connection();
|
||||
}
|
||||
|
||||
char CControldClient::getVolume(const CControld::volume_type volume_type)
|
||||
{
|
||||
CControldMsg::commandVolume rmsg;
|
||||
rmsg.type = volume_type;
|
||||
send(CControldMsg::CMD_GETVOLUME, (char*)&rmsg, sizeof(rmsg));
|
||||
receive_data((char*)&rmsg, sizeof(rmsg));
|
||||
close_connection();
|
||||
|
||||
return rmsg.volume;
|
||||
}
|
||||
|
||||
void CControldClient::setVideoFormat(char format)
|
||||
{
|
||||
CControldMsg::commandVideoFormat msg2;
|
||||
|
||||
msg2.format = format;
|
||||
|
||||
send(CControldMsg::CMD_SETVIDEOFORMAT, (char*)&msg2, sizeof(msg2));
|
||||
|
||||
close_connection();
|
||||
}
|
||||
|
||||
char CControldClient::getAspectRatio()
|
||||
{
|
||||
CControldMsg::responseAspectRatio rmsg;
|
||||
|
||||
send(CControldMsg::CMD_GETASPECTRATIO);
|
||||
|
||||
receive_data((char*)&rmsg, sizeof(rmsg));
|
||||
|
||||
close_connection();
|
||||
|
||||
return rmsg.aspectRatio;
|
||||
}
|
||||
|
||||
char CControldClient::getVideoFormat()
|
||||
{
|
||||
CControldMsg::responseVideoFormat rmsg;
|
||||
|
||||
send(CControldMsg::CMD_GETVIDEOFORMAT);
|
||||
|
||||
bool success = receive_data((char*)&rmsg, sizeof(rmsg));
|
||||
|
||||
close_connection();
|
||||
|
||||
return success ? rmsg.format : 2; /* default value is 2 (cf. controld.cpp) */
|
||||
}
|
||||
|
||||
void CControldClient::setVideoOutput(char output)
|
||||
{
|
||||
CControldMsg::commandVideoOutput msg2;
|
||||
|
||||
msg2.output = output;
|
||||
|
||||
send(CControldMsg::CMD_SETVIDEOOUTPUT, (char*)&msg2, sizeof(msg2));
|
||||
|
||||
close_connection();
|
||||
}
|
||||
|
||||
void CControldClient::setVCROutput(char output)
|
||||
{
|
||||
CControldMsg::commandVCROutput msg2;
|
||||
|
||||
msg2.vcr_output = output;
|
||||
|
||||
send(CControldMsg::CMD_SETVCROUTPUT, (char*)&msg2, sizeof(msg2));
|
||||
|
||||
close_connection();
|
||||
}
|
||||
|
||||
char CControldClient::getVideoOutput()
|
||||
{
|
||||
CControldMsg::responseVideoOutput rmsg;
|
||||
|
||||
send(CControldMsg::CMD_GETVIDEOOUTPUT);
|
||||
|
||||
bool success = receive_data((char*)&rmsg, sizeof(rmsg));
|
||||
|
||||
close_connection();
|
||||
|
||||
return success ? rmsg.output : 1; /* default value is 1 (cf. controld.cpp) */
|
||||
}
|
||||
|
||||
char CControldClient::getVCROutput()
|
||||
{
|
||||
CControldMsg::responseVCROutput rmsg;
|
||||
|
||||
send(CControldMsg::CMD_GETVCROUTPUT);
|
||||
|
||||
bool success = receive_data((char*)&rmsg, sizeof(rmsg));
|
||||
|
||||
close_connection();
|
||||
|
||||
return success ? rmsg.vcr_output : 1; /* default value is 1 (cf. controld.cpp) */
|
||||
}
|
||||
|
||||
void CControldClient::Mute(const CControld::volume_type volume_type)
|
||||
{
|
||||
setMute(true,volume_type);
|
||||
}
|
||||
|
||||
void CControldClient::UnMute(const CControld::volume_type volume_type)
|
||||
{
|
||||
setMute(false,volume_type);
|
||||
}
|
||||
|
||||
void CControldClient::setMute(const bool mute, const CControld::volume_type volume_type)
|
||||
{
|
||||
CControldMsg::commandMute msg;
|
||||
msg.mute = mute;
|
||||
msg.type = volume_type;
|
||||
send(CControldMsg::CMD_SETMUTE, (char*)&msg, sizeof(msg));
|
||||
close_connection();
|
||||
}
|
||||
|
||||
bool CControldClient::getMute(const CControld::volume_type volume_type)
|
||||
{
|
||||
CControldMsg::commandMute rmsg;
|
||||
rmsg.type = volume_type;
|
||||
send(CControldMsg::CMD_GETMUTESTATUS, (char*)&rmsg, sizeof(rmsg));
|
||||
receive_data((char*)&rmsg, sizeof(rmsg));
|
||||
close_connection();
|
||||
return rmsg.mute;
|
||||
}
|
||||
|
||||
void CControldClient::registerEvent(unsigned int eventID, unsigned int clientID, const char * const udsName)
|
||||
{
|
||||
CEventServer::commandRegisterEvent msg2;
|
||||
|
||||
msg2.eventID = eventID;
|
||||
msg2.clientID = clientID;
|
||||
strcpy(msg2.udsName, udsName);
|
||||
|
||||
send(CControldMsg::CMD_REGISTEREVENT, (char*)&msg2, sizeof(msg2));
|
||||
|
||||
close_connection();
|
||||
}
|
||||
|
||||
void CControldClient::unRegisterEvent(unsigned int eventID, unsigned int clientID)
|
||||
{
|
||||
CEventServer::commandUnRegisterEvent msg2;
|
||||
|
||||
msg2.eventID = eventID;
|
||||
msg2.clientID = clientID;
|
||||
|
||||
send(CControldMsg::CMD_UNREGISTEREVENT, (char*)&msg2, sizeof(msg2));
|
||||
|
||||
close_connection();
|
||||
}
|
||||
|
||||
void CControldClient::videoPowerDown(bool powerdown)
|
||||
{
|
||||
CControldMsg::commandVideoPowerSave msg2;
|
||||
|
||||
msg2.powerdown = powerdown;
|
||||
|
||||
send(CControldMsg::CMD_SETVIDEOPOWERDOWN, (char*)&msg2, sizeof(msg2));
|
||||
|
||||
close_connection();
|
||||
}
|
||||
|
||||
bool CControldClient::getVideoPowerDown()
|
||||
{
|
||||
CControldMsg::responseVideoPowerSave msg;
|
||||
send(CControldMsg::CMD_GETVIDEOPOWERDOWN);
|
||||
receive_data((char*) &msg, sizeof(msg));
|
||||
close_connection();
|
||||
return msg.videoPowerSave;
|
||||
}
|
||||
|
||||
void CControldClient::saveSettings()
|
||||
{
|
||||
send(CControldMsg::CMD_SAVECONFIG);
|
||||
close_connection();
|
||||
}
|
||||
|
||||
void CControldClient::setRGBCsync(char val)
|
||||
{
|
||||
CControldMsg::commandCsync msg;
|
||||
msg.csync = val;
|
||||
send(CControldMsg::CMD_SETCSYNC, (char*) &msg, sizeof(msg));
|
||||
close_connection();
|
||||
}
|
||||
|
||||
char CControldClient::getRGBCsync()
|
||||
{
|
||||
CControldMsg::commandCsync msg;
|
||||
send(CControldMsg::CMD_GETCSYNC);
|
||||
receive_data((char*) &msg, sizeof(msg));
|
||||
close_connection();
|
||||
return msg.csync;
|
||||
}
|
||||
char CControldClient::getVideoMode()
|
||||
{
|
||||
CControldMsg::responseVideoFormat rmsg;
|
||||
send(CControldMsg::CMD_GETVIDEOMODE);
|
||||
bool success = receive_data((char*)&rmsg, sizeof(rmsg));
|
||||
close_connection();
|
||||
return success ? rmsg.format : 1; /* default value is 2 (cf. controld.cpp) */
|
||||
}
|
||||
void CControldClient::setVideoMode(char format)
|
||||
{
|
||||
CControldMsg::commandVideoFormat msg2;
|
||||
msg2.format = format;
|
||||
send(CControldMsg::CMD_SETVIDEOMODE, (char*)&msg2, sizeof(msg2));
|
||||
close_connection();
|
||||
}
|
||||
|
Reference in New Issue
Block a user