#include "xinemacontrol.h"
-XinemaControl::XinemaControl()
+XinemaControl::XinemaControl():
+ playback_state(STOPPED),
+ duration(0.0f),
+ position(0.0f)
{
QObject::connect(&socket, &QAbstractSocket::connected, this, &XinemaControl::connected);
QObject::connect(&socket, &QAbstractSocket::disconnected, this, &XinemaControl::disconnected);
send_request("play_file "+fn);
}
+void XinemaControl::play()
+{
+ send_request("play");
+}
+
+void XinemaControl::seek(float time)
+{
+ send_request(QString("seek %1").arg(time));
+}
+
+void XinemaControl::pause()
+{
+ send_request("pause");
+}
+
+void XinemaControl::stop()
+{
+ send_request("stop");
+}
+
void XinemaControl::send_request(const QString &req)
{
socket.write(req.toUtf8());
void XinemaControl::data_available()
{
- char rbuf[1024];
- int len = socket.read(rbuf, sizeof(rbuf));
- if(len<0)
- return;
+ while(socket.bytesAvailable())
+ {
+ char rbuf[1024];
+ int len = socket.read(rbuf, sizeof(rbuf));
+ if(len<0)
+ break;
+
+ buffer.append(rbuf, len);
+ }
- buffer.append(rbuf, len);
unsigned start = 0;
while(1)
{
emit subdirectory_added(args);
else if(keyword=="file")
emit file_added(args);
+ else if(keyword=="state")
+ {
+ if(args=="STOPPED")
+ playback_state = STOPPED;
+ else if(args=="PAUSED")
+ playback_state = PAUSED;
+ else if(args=="PLAYING")
+ playback_state = PLAYING;
+ emit playback_state_changed(playback_state);
+ }
else if(keyword=="title")
{
title = args;