Communications and Network, 2013, 5, 73-77
doi:10.4236/cn.2013.51B017 Published Online February 2013 (http://www.scirp.org/journal/cn)
The Design and Implementation of Qt-based
Cross-platform Video Conferencing Remote Control
Hua Yuan, Huixin Du
School of Computer Science and Engineering, South China University of Technology, Guangzhou, China
Email: hyuan@scut.edu.cn, qingyumini@foxmail.com
Received 2012
ABSTRACT
In order to overcome the defects of the dedicated video conference remote control, this paper designs and implements a
Qt-based cross-platform video conferencing remote control. The remote control not only implements a full range of
video conferencing control functions with an easy-to-use visual interface; but also implement cross-platform feature to
allow users to use remote control software on their own equipment. It is economic, convenient and stylish for users.
This paper mainly describes the design and implementation of remote control system framework and cross-platform
features. Finally, the result in the paper shows: This remote control is reliable and easy to use.
Keywords: Video Conferencing Remote Control; Cross-platform; Visualization
1. Introduction
As the direct display in front of users, video conferencing
remote control is in close contact with the particip ants. It
has a direct impact on the use of users. At present, most
of video conferencing remote controls are dedicated in-
frared remote controls, such as Polycom. This kind of
remote control sends the control instruction to terminals
via infrared. Although the speed of its communication
is fast, there are some shortcomings, such as less versa-
tile, weak video conferencing supporting function, dis-
tance limitations and lack of visual interface.
In recent years, with the development of smart mobile
devices, there are many attempts of developing remote
control software on smart mobile devices [1, 2], such as
FLPR Universal Remote made by App Cessory. An IOS
product with FLPR Universal Remote connects to other
appliances by infrared transmitter, and then downloads
remote commands for 46000 different appliances. So the
user can use such an IOS product to remote appliances.
However, most of this remote control software are plat-
form dependence and dedicated. They limit users’ choic-
es on the remote control hardware.
If we can generate remote control software, which can
turn any smart mobile devices to a remote control by
installing it, it will bring great convenience for users to
start their video conferencing control. It will be eco-
nomical and fashion to use such a remote control.
Therefore, this paper presents a program about design
and implementation the cross-platform video conferenc-
ing remote based on Qt. Qt is a cross-platform develop-
ment framework. To ensure the realization of cross-
platform remote control system, we need to develop re-
mote control system based on Qt with some specialized
design and coding work. The modular design is also
needed for reducing the coupling of the system, so that
the remote control system will have good scalability.
2. Design of Remote Control System
As an independent system, remote control is responsible
for obtaining the relevant meeting information and con-
trolling video conferencing terminal. So it needs to use
multiple protocols to communicate with multiple objects.
It may lead to the information handling confusion. Due
to the diversity of the remote control function, multi-
interface is used for user-friendly operation. And the im-
plementation of cross-platform and scalability also asks
for a modular structure. Therefore, the architecture de-
sign of remote control system should be based on modu-
lar as the standard.
The remote control system framework design is shown
as Figure 1. The remote control system framework is
divided into three layers: UI layer, logic layer and com-
munication layer.
The UI layer is mainly used to provide users with a
friendly visual interface. The interface module contains a
number of user interfaces, such as login interface, con-
ference list interface, meeting-place interface and termi-
nal control interface.
Logic layer is similar to a dispatcher. It is responsible
for processing the signal from the upper or lower layer
Copyright © 2013 SciRes. CN
H. YUAN, H. X. DU
74
and then sending the data of the signal to the corre-
sponding module. It makes the UI layer and communica-
tion layer not need to consider whether their signal is
correctly passed to the corresponding module and how to
deal with. They only need to consider their own func-
tions. The logic layer itself does not deal with data but
only distribute the data. When the logic layer receives
control signal from UI layer, logic layer calls corre-
sponding slot to transfer the data to relevant communica-
tion module, so that the data transfer from UI is com-
pleted. The transfer from communication layer is similar
to the transfer from UI layer. Communication layer just
needs to send out a signal when it receives a data packet
from the server or terminal. Logic layer will catch this
signal by relevant slot and send out an update UI signal
automatically to trigger the interface update.
As a key part of communication work, communication
layer is responsible for establishing a connection, encap-
sulating and decapsulating data, sending and receiving
packets. This layer contains two modules, server com-
munication module and terminal communication module.
The server communication module is handling for the
server-related communication work, such as meeting
information acquisition, identity authentication, confer-
ences login and logout. Because of the communication
with server using two different protocols, this module
also includes two sub-modules, Sip sub-module and Http
sub-module. Sip protocol [3] is the basis of video con-
ferencing systems. All the conference control data is
transmitted through Sip protocol. Http protocol [4] is
used to get those kinds of conference information whose
data is huge. So that even in the face of bad hardware
conditions, remote control can still get integrated and
reliable data in high speed.
Figure 1. Framework design of remote control system.
Terminal communication module is used to handle all
the communications for controlling terminal, including
control of terminal audio and video stream, volume con-
trol, terminal mouse control and state synchronization.
System uses Tcp socket connection for the communica-
tion between remote control and terminal. Json is used to
encapsulate data. The Magic Packet module is used to
send the magic packet to the LAN, in order to enab le the
wake-up function.
Signal and slot mechanism is used for the interface
between layers. It is a Qt unique mechanism. It is de-
signed specifically for communication between objects.
Its big advantage is that both sides of communication
don’t need to know who the object communicates with.
So using signal and slot mechanism as the interface in-
creases cohesion and reduces coupling. It’s a great help
the system to implement architecture modular.
3. Implement of Remote Control System
The remote control in this paper uses a cross-platform
development framework Qt and C++ programming lan-
guage. Qt provides developers with the graphic related
class libraries and the connection management class li-
braries such as QWidget and QNetwork Access Manager
[5], using Qt can be easily implemented most of the
functionality of the remote control. The Sip module of
our remote control is based on the OSIP class lib rary and
is programming in C++ language .
The workflow of the remote control is showed as Fig-
ure 2. When the user operates the interface of the remote
control, the interface will send a signal for triggering the
slot function in the logic layer. The slot function on logic
layer will analyze this signal and send out a new signal
which is bound with the corresponding communication
module. As the signal and the slot function is mutually
bound, the slot corresponding to the communication
module will be able to successfully trigger, then the slot
encapsulates the data and sends the data packet to the
correspo nding com municat i o n o b j ect.
In contrast, when the communication object sends a
message to the remote control, the corresponding com-
munication module receives and parses the packet, then
sends out the signal which contains the relevant data. The
logic layer receives the signal and triggers the slot func-
tion, and then the signal will be send to the UI layer by
the slot function. When the interface components of the
UI layer detects the signal which is bound to its own slot
function, it will be updated automatically according to
the signal data.
4. Implement of Cross-platform Feature
To implementation cross-platform feature, the cross-
platform ideas should be implemented throughout the
Copyright © 2013 SciRes. CN
H. YUAN, H. X. DU
Copyright © 2013 SciRes. CN
75
User Action
UI layer sends
out signal
Is the signal
related to terminal
control functions?
Terminal control
module
yes
Conference control
module
no
Terminal
communication
module encapsulate
data
Server
communication
module encapsulate
data
Send data
packet
Receive packet
from server
Terminal
communication
module decapsulate
data
Server
communication
module decapsulate
data
Send out
signal
Is the signal
related to terminal
control functions?
Receive packet
from terminal
yes
Terminal control
module sends out
update UI signal
Conference
control module
sends out update
UI signal
no
UI layer
update
Figure 2. Workflow of the remote control system.
development cycle. In this paper, we realize the cross-
platform characteristics by choosing a cross-platform
language , de signing , c od ing and compiling.
4.1. Cross-platform Language
This paper chooses Qt as a program development lan-
guage. Qt is a high-level C + + based language. It has a
good cross-platform feature, supporting for embedded
Linux, Windows, Linux/X11, the W indows CE, Symbian,
MeeGo and other embedded and PC operating systems
[5]. Qt has a set of corresponding underlying class li-
braries for each suppor ted operating system platform, but
the interface of each is entirely consistent, so the pro-
gram developed by Qt can be compiled and used under
different operations. Qt can do as much as possible to
help developer to implementation cross-platform features
at the bottom.
4.2. Code Modification for Cross-platform
Feature
Modify the framework and code according to the opera-
tion of the different platforms. As the previously men-
tioned, the Qt cross-platform framework has been im-
plement the basic cross-platform functionality for the
developers, but It can only guarantee to properly run the
program on different platforms, cannot guarantee that no
functional differences.
The Sip protocol is specifically designed for the mul-
timedia conferencing; therefore, it contains all the basic
conference control function. However, it maintains a
same “seq num” on the server and the remote control for
synchronization. When receiving a large amount of con-
ferencing data on a remote control whose performance is
poor, it may cause the server and the remote out of sync,
resulting in the packet loss and return the error massage
“500 Request out of Order”. To avoid this, the HTTP
module is added in the communication layer, it’s used to
receive the large amount of conferencing data such as
conference list and member list.
4.3. Adaptive Interface Design for Different
Devices
The Qt provides developers with a variety of platform-
style [6]: Windows, Motif, Mac etc. When develop ers do
not have a certain style settings for the interface, the Qt
will use the corresponding platform interface style.
H. YUAN, H. X. DU
76
However, different interface styles may bring the risk of
cross-platform interface differences. For the above rea-
sons, most of the components use custom styles or re-
drew their appearance, in order to avoid different plat-
forms to show differently. Qt provides the user with style
description syntax which is similar with the CSS Style
Sheet, so that user can set the components to custom
style by using the “set Style Sheet” function in the code
and set the style settings by using the style editing win-
dow which is provided by th e Qt Designer[7].
The differences between the portable devices and PC
equipment also cause operational differences, so we add
the drag Action to avoid the double-click action. For
example, when choosing the receive user’s video stream,
the design on PC is double-click the user to receive the
video, however, if the system is ported to a portable de-
vice the user cannot operate. Therefore, we change the
video receive operation to drag the user to the corre-
sponding in the preview box. In this, regardless of the
platform, user can very easy and intuitive to operate.
4.4. Compiler
Qt provides a tool – Qmake, which is specifically for
transferring the platform-independent project code to the
platform-dependent Makefile. Each project contains
a .pro file for telling Qmake to create the details of the
application make file, such as the list of header files and
source files of the program, the specific configuration of
the application, the additional libraries or additional in-
clude paths, etc. After the developer completed the cod-
ing, using the Qmake command will generate the corre-
sponding Make file, make file.release, makefile.debug
and the debug, release directory according to the. ro file.
Makefile is the platform-dependent file, is used to define
a series of rules to tell the platform compiler which files
need to compile, even some complex operations. Make-
file has two versions: debug and release. The debug ver-
sion will be some additional processing, printing more
log for debugging. The release version is generally used
for the release of the program. It will turn off unneces-
sary log. But both are able to generate an executable
program. Thus using Make file and the corresponding
complier can generate the executable program of the
corresponding platform in the debug and release direc-
tory. This process is shown in Figure 3.
Qt provides the integrated development environment
Qt Creator which supports Window, Linux and Mac op-
erating system. Qt Creator is not only to provide users
with the code edito r, file browser and class diagram tool,
but also integrates Qmake build tool and the correspond-
ing platform compiler. So, using Qt Creator will be able
to complete all of the compiled work. For embedded
platforms, the code cannot be compiled on the embedded
platform, therefore, cross-compiler is used to complete
the generation of the platform executable. Cross-com-
piler is to generate the executable code for the target
platform on another platform. The remote control for
embedded Linux platform is use the Scratchbox cross
compiler.
5. Testing Result
Our remote control is a cross-platform for the PC plat-
form and embedded platforms. The remote control can
satisfy all the requirements for the video conferencing,
and provides users with a rich and intuitive user interface,
allowing users to operate smoothly without mouse, key-
board and other peripherals.
The meeting-place interface is the main control inter-
face of the video conferencing, it contains three parts.
From top to bottom, the first one is the preview window
which is used to show the screen layout state of the cur-
rent controlled terminal; the second part is the terminal
member list which is used to show the state of member
and provides a free drag and drop functionality between
the preview window and the list of members; the last one
is the control button bar provides the necessary operation
of video conferencing.
The terminal control interface is used for connecting,
waking up and closing the target terminal.
It can run on the PC platform and the embedded plat-
forms, including Win XP, Vista, Win 7, Linux and em-
bedded Linux operating system. The experiments show
that the remote control can be installed and run in a vari-
ety of smart mobile devices such as smart phones, elec-
tronic tablet, laptop computers, etc.
Figure 3. Compile process.
6. Conclusions
The remote control system developed in this paper has
implemented the video conferencing functions and
cross-platform feature. It can run on Win XP, Vista, Win
7, Linux and embedded Linux with no difference. Now it
has been put into use in video conferencing systems.
REFERENCES
[1] Win8 Metro Testbed. http://www.splashtop.com/win8
[2] FLPR. http://www.newpotatotech.com/FLPR/flpr.html
[3] J. Rosenberg, “A Framework for Conferencing with the
Session Initiation Protocol (SIP),” RFC 4353, 2006.
[4] A. S. Tanenbaum, Computer Networks, 4th ed., Tsinghua
University, 2004, pp.651-656
Copyright © 2013 SciRes. CN
H. YUAN, H. X. DU
Copyright © 2013 SciRes. CN
77
[5] Qt-Cross-platform Application and UI Framework.
http://qt.nokia.com/
[6] H. D. Liu, J. W. Rui, Y. D. Yao and J. Wu, “Design and
Implementation of Internationalized Graphical User In-
terface Based on Qt,” Journal of Chinese Information
Processing, Vol. 20, 2006, pp. 95-99.
[7] J. Blanchette and M. Summerfield, “C++ GUI Program-
ming with Qt4,” 2nd., Publishing House of Electronics
Industry, 2008.