Skip to content

Commit

Permalink
Play to all visible players WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
hgy29 committed Aug 28, 2015
1 parent 4698c98 commit bd752bd
Show file tree
Hide file tree
Showing 4 changed files with 85 additions and 10 deletions.
4 changes: 4 additions & 0 deletions scripts/GidQtWin.mk
Expand Up @@ -99,6 +99,10 @@ plugins.install: buildplugins $(addsuffix .plugin.install,$(PLUGINS_WIN))
cd $(ROOT)/$*; $(QMAKE) $*.pro
cd $(ROOT)/$*; $(MINGWMAKE) release

%.qmake.dbg:
cd $(ROOT)/$*; $(QMAKE) $*.pro
cd $(ROOT)/$*; $(MINGWMAKE) debug

%.qmake5.rel:
cd $(ROOT)/$*; $(QMAKE) $*_qt5.pro
cd $(ROOT)/$*; $(MINGWMAKE) release
Expand Down
70 changes: 61 additions & 9 deletions ui/mainwindow.cpp
Expand Up @@ -104,6 +104,10 @@ MainWindow::MainWindow(QWidget *parent)
ui.actionStart->setEnabled(false);
connect(ui.actionStart, SIGNAL(triggered()), this, SLOT(start()));

ui.actionStartAll->setIcon(IconLibrary::instance().icon(0, "startall"));
ui.actionStartAll->setEnabled(true);
connect(ui.actionStartAll, SIGNAL(triggered()), this, SLOT(startAllPlayers()));

ui.actionStop->setIcon(IconLibrary::instance().icon(0, "stop"));
ui.actionStop->setEnabled(false);
connect(ui.actionStop, SIGNAL(triggered()), this, SLOT(stop()));
Expand Down Expand Up @@ -451,16 +455,14 @@ void MainWindow::playerChanged(const QString & text)

void MainWindow::start()
{
if (client_->isConnected() == false)
return;
if (prepareStartOnPlayer())
startOnPlayer();
}

bool MainWindow::prepareStartOnPlayer()
{
if (projectFileName_.isEmpty() == true)
return;

if (isTransferring_ == true)
return;

isTransferring_ = true;
return false;

saveAll();

Expand All @@ -483,11 +485,56 @@ void MainWindow::start()

if (!updateMD5().empty())
saveMD5();
return true;
}

void MainWindow::startOnPlayer()
{
if (client_->isConnected() == false)
return;

if (isTransferring_ == true)
return;

isTransferring_ = true;

client_->sendStop();
client_->sendProjectName(QFileInfo(projectFileName_).baseName());
client_->sendGetFileList();
}

void MainWindow::startAllPlayers()
{
if (!prepareStartOnPlayer())
return;
int pc=players_->count();
int pi=players_->currentIndex();
allPlayersPlayList.push_back(players_->currentData().toString());
for (int k=0;k<pc;k++)
if (k!=pi)
allPlayersPlayList.push_back(players_->itemData(k).toString());
startNextPlayer();
}

void MainWindow::startNextPlayer()
{
if (allPlayersPlayList.empty())
return;

QString hostData=allPlayersPlayList.back();
QStringList parts=hostData.split(':');
if (parts.count()==1)
client_->connectToHost(parts[0],15000);
else
client_->connectToHost(parts[0],parts[1].toInt());
}

void MainWindow::playStarted()
{
if (allPlayersPlayList.empty())
return;
allPlayersPlayList.pop_back();
startNextPlayer();
}

#if 0
Expand Down Expand Up @@ -784,7 +831,9 @@ unsigned int MainWindow::sendPlayMessage(const QStringList& luafiles)
char play = 2;
client_->sendData(&play, sizeof(char));
#else
return client_->sendPlay(luafiles);
unsigned int code=client_->sendPlay(luafiles);
playStarted();
return code;
#endif
}

Expand Down Expand Up @@ -1819,6 +1868,9 @@ void MainWindow::connected()
ui.actionStart->setEnabled(true);
ui.actionStop->setEnabled(true);
printf("other side connected\n");

if (!allPlayersPlayList.empty())
startOnPlayer();
}

void MainWindow::disconnected()
Expand Down
6 changes: 6 additions & 0 deletions ui/mainwindow.h
Expand Up @@ -164,6 +164,7 @@ private slots:
void onTimer();
void start();
void stop();
void startAllPlayers();
void newProject();
void closeProject();
void saveProject();
Expand Down Expand Up @@ -213,6 +214,11 @@ private slots:
TextEdit* findTextEdit(const QString& fileName) const;

private:
std::vector<QString> allPlayersPlayList;
bool prepareStartOnPlayer();
void startOnPlayer();
void startNextPlayer();
void playStarted();
unsigned int sendPlayMessage(const QStringList& luafiles);
unsigned int sendStopMessage();

Expand Down
15 changes: 14 additions & 1 deletion ui/mainwindow.ui
Expand Up @@ -33,7 +33,7 @@ QMainWindow::separator {
<x>0</x>
<y>0</y>
<width>1000</width>
<height>26</height>
<height>31</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
Expand Down Expand Up @@ -108,6 +108,7 @@ QMainWindow::separator {
<addaction name="actionStart_Player"/>
<addaction name="actionStart"/>
<addaction name="actionStop"/>
<addaction name="actionStartAll"/>
<addaction name="separator"/>
<addaction name="actionPlayer_Settings"/>
<addaction name="actionLocalhostToggle"/>
Expand Down Expand Up @@ -157,6 +158,7 @@ QMainWindow::separator {
<addaction name="actionStart_Player"/>
<addaction name="actionStart"/>
<addaction name="actionStop"/>
<addaction name="actionStartAll"/>
</widget>
<widget class="QStatusBar" name="statusBar"/>
<action name="actionNew_Project">
Expand Down Expand Up @@ -559,6 +561,17 @@ Gideros Player, Play button is enabled.</string>
<string>Documentation</string>
</property>
</action>
<action name="actionStartAll">
<property name="text">
<string>Start All</string>
</property>
<property name="toolTip">
<string>Start to all players</string>
</property>
<property name="shortcut">
<string>Ctrl+Shift+P</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
Expand Down

0 comments on commit bd752bd

Please sign in to comment.