Risolti alcuni bug + shourtcut
[qmemory] / testThread.cpp
index 4c7dfb6..c6c6719 100644 (file)
@@ -3,60 +3,60 @@
 #include <qdebug.h>
 #include <QMessageBox>
 #include <QDateTime>
-TestThread::TestThread(QObject *parent):QThread(parent){
+
+TestThread::TestThread(QObject *parent):QThread(parent)
+{
     colore=0;
-    attendiInputUtente=false;
     index=0;
     _score=0;
-
     qsrand(QDateTime::currentDateTime().toTime_t());
 
 }
-TestThread::~TestThread(){
+
+TestThread::~TestThread()
+{
 
 }
 void TestThread::run(){
-    while(true){
+    sleep(2);
+    forever{
+        mutex.lock();
 
-    qsrand(QDateTime::currentDateTime().toTime_t());
-    sequenza.append(qrand()%9);
-    int i=0;
-    index=0;
+        qsrand(QDateTime::currentDateTime().toTime_t());
+        sequenza.append(qrand()%9);
+        int i=0;
+        index=0;
 
-    emit disableInterface();
-    while(i<sequenza.size())
-    {
-      emit generate(sequenza.at(i));
-      qDebug()<<sequenza.at(i);
-      msleep(500 - (_score*5));
-      emit generate(sequenza.at(i));
-      msleep(500 - (_score*5));
-      i++;
-    }
-    i=0;
-    attendiInputUtente=true;
-    emit enableInterface();
+        emit disableInterface();
+        while(i<sequenza.size())
+        {
+          emit generate(sequenza.at(i));
+          msleep(500 - (_score*2));
+          emit generate(sequenza.at(i));
+          msleep(500 - (_score*2));
+          i++;
+        }
+        i=0;
+        emit enableInterface();
+        attendiInputUtente.wait(&mutex);
+
+        mutex.unlock();
 
-    while(attendiInputUtente){
-        msleep(1);
-    }
     }
 
 
 }
 
-void TestThread::updateCaption(int inputUser){
-
-    if(attendiInputUtente){
-
+void TestThread::addUserInput(int inputUser){
         if(sequenza.at(index)==inputUser)
         {
             index++;
             _score++;
             emit score(_score);
             if(index==sequenza.size()){
-                attendiInputUtente=false;
-                index=0;
+                sleep(1);
+                attendiInputUtente.wakeAll();
+
             }
         }
         else{
@@ -64,14 +64,14 @@ void TestThread::updateCaption(int inputUser){
             _score=0;
             sequenza.clear();
             index=0;
-            attendiInputUtente=true;
+            attendiInputUtente.wakeAll();
         }
-    }
+
 }
 
 void TestThread::genera()
 {
-        qDebug()<<"Init Emission";
-    attendiInputUtente=false;
+
+    attendiInputUtente.wakeAll();
 
 }