]> git.vomp.tv Git - vompclient.git/commitdiff
Message predefined targets. Converted all m->to=Command::getInstance calls
authorChris Tallon <chris@vomp.tv>
Tue, 14 Apr 2020 20:22:42 +0000 (21:22 +0100)
committerChris Tallon <chris@vomp.tv>
Tue, 14 Apr 2020 20:22:42 +0000 (21:22 +0100)
13 files changed:
boxstack.cc
command.cc
input.cc
message.h
osdopenvg.cc
osdwinvector.cc
vconnect.cc
vopts.cc
vopts.h
vradiorec.cc
vsleeptimer.cc
vvideomedia.cc
vvideorec.cc

index f145525b8619de729842e95faa0f7554b0a719d2..f5c3c685ce48a3133b47ecdf1377a988a1d26678 100644 (file)
@@ -19,7 +19,6 @@
 
 #include "boxstack.h"
 
-#include "command.h"
 #include "messagequeue.h"
 #include "input.h"
 #include "log.h"
@@ -166,7 +165,7 @@ int BoxStack::remove(Boxx* toDelete)
   if (numBoxes == 1)
   {
     Message* m = new Message();
-    m->to = Command::getInstance();
+    m->p_to = Message::CONTROL;
     m->message = Message::LAST_VIEW_CLOSE;
     MessageQueue::getInstance()->postMessage(m);
   }
index 4dcb98bfb880c5f4e1acaccafb7a30374e97de8f..34bc1e6d8c4bcadb2537528f01aa6c761c5ee7f1 100644 (file)
@@ -231,7 +231,7 @@ void Command::processMessage(Message* m)
   logger->log("Command", Log::DEBUG, "processing message %i", m->message);
 
 
-  if (m->to == this)
+  if ((m->p_to == Message::CONTROL) || (m->to == this))
   {
     switch(m->message)
     {
index 67b7298fa96edc4231b24586204ced4abb0b1559..030ac76f3f187d96b90de1433f8b7d312de50670 100644 (file)
--- a/input.cc
+++ b/input.cc
@@ -24,7 +24,6 @@
 #include "wtabbar.h"
 #include "message.h"
 #include "messagequeue.h"
-#include "command.h" // FIXME - get rid after predefined message targets
 #include "inputman.h"
 #include "input.h"
 
@@ -148,7 +147,7 @@ void Input::sendInputKey(int key)
 {
   Message* m = new Message();
   m->message = Message::INPUT_EVENT;
-  m->to = Command::getInstance();
+  m->p_to = Message::CONTROL;
   m->from = this;
   m->parameter = key;
   MessageQueue::getInstance()->postMessage(m);
index 91e20f55cb5e4dc2327484356ce43f42c597bcc7..c709b80490614d86eca18dd2837f977a1cc0a949 100644 (file)
--- a/message.h
+++ b/message.h
 // 2. A thread wants its object/view deleting *after* the thread has exited
 
 // Put a justification line after call to Message* m = new  Message() line
-// So that the sources can be grepped for proper message useage
+// So that the sources can be grepped for proper message usage
 
 class Message
 {
   public:
+
+    enum PreDefinedTarget
+    {
+      NA = 0,
+      CONTROL,
+      BOXSTACK
+    };
+
     Message();
 
     void* from{};
+    PreDefinedTarget p_to{NA}; // If this is set 'to' is ignored
     void* to{};
     ULONG message{};
     ULONG parameter{};
@@ -80,6 +89,7 @@ class Message
     const static ULONG NEW_PICTURE_STATIC = 37;
     const static ULONG REDRAW = 38;
     const static ULONG SHUTDOWN = 39;
+
 };
 
 #endif
index 7bb56e357fc972735a5bd0e706ea80eee0ac798d..51119cf4f68764f0c78d9715d3078af62a6bb618 100644 (file)
@@ -27,7 +27,7 @@
 #include "videoomx.h"
 #include "surface.h"
 #include "message.h"
-#include "command.h"
+#include "messagequeue.h"
 #include "teletxt/txtfont.h"
 
 #include "osdopenvg.h"
@@ -1219,7 +1219,7 @@ unsigned int OsdOpenVG::handleTask(OpenVGCommand& command)
                Message* m = new  Message();
                // We have a pictures! send a message to ourself, to switch to gui thread
                m->from=this;
-               m->to=Command::getInstance();
+               m->p_to = Message::CONTROL;
                m->data = reinterpret_cast<void*>(handle);
                if (!static_image) {
                        m->message=Message::NEW_PICTURE;
@@ -1258,7 +1258,7 @@ unsigned int OsdOpenVG::handleTask(OpenVGCommand& command)
                if (info->lindex & 0xffffffff) static_image=false;
                Message* m = new  Message();
                m->from=this;
-               m->to=Command::getInstance();
+               m->p_to = Message::CONTROL;
                m->data = reinterpret_cast<void*>(info->handle);
                if (!static_image) {
                        m->message=Message::NEW_PICTURE;
index d6c7b344a5f135faf7a684bda8b6f5d1f1cc61f3..5e86c4ab6768cc8a68275e79299f2caa65317921 100644 (file)
     along with VOMP.  If not, see <https://www.gnu.org/licenses/>.
 */
 
+#include <wincodec.h>
 
-#include "osdwinvector.h"
 #include "videowin.h"
 #include "surfacewin.h"
-
-
 #include "message.h"
 #include "messagequeue.h"
-
 #include "teletxt/txtfont.h"
 
-#include <wincodec.h>
-
 #define  OSD_BUFFER_WIDTH 1280
 #define  OSD_BUFFER_HEIGHT 720
 
 #include "staticartwork.h"
 
+#include "osdwinvector.h"
+
 #define EXTERNALPICTURE(name, fname, fileextension)  #name, 
 
 char *ext_pict_name[] {
@@ -1239,7 +1236,7 @@ void  OsdWinVector::createPicture(struct PictureInfo& pict_inf)
                Message* m = new  Message();
                // We have a pictures! send a message to ourself, to switch to gui thread
                m->from = this;
-               m->to = Command::getInstance();
+               m->p_to = Message::CONTROL;
                m->data = pict_inf.reference;
                if (!static_image) {
                        m->message = Message::NEW_PICTURE;
index 3786bca9b067871474a88abe9c2b06851f2b1688..a13d9038d1d14ef55df0bc40551899ba36ce7e5b 100644 (file)
@@ -193,7 +193,7 @@ void VConnect::threadMethod()
   logger->log("VConnect", Log::INFO, "Send VDR connected message");
   Message* m = new Message(); // Must be done after this thread ends
   m->from = this;
-  m->to = Command::getInstance();
+  m->p_to = Message::CONTROL;
   m->message = Message::VDR_CONNECTED;
   MessageQueue::getInstance()->postMessage(m);
 }
index 1482353c794f14908798dae88eb45288a8552e7f..20b9be979c3ba8b7a8df8aa8f95f3488e90db772 100644 (file)
--- a/vopts.cc
+++ b/vopts.cc
     GNU General Public License for more details.
 
     You should have received a copy of the GNU General Public License
-    along with VOMP; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+    along with VOMP.  If not, see <https://www.gnu.org/licenses/>.
 */
 
-#include "vopts.h"
-
+#include "defines.h"
 #include "colour.h"
 #include "video.h"
 #include "osd.h"
 #include "log.h"
 #include "option.h"
 #include "vdr.h"
+#include "messagequeue.h"
+#include "message.h"
 #include "command.h"
 #include "staticartwork.h"
 
 #ifdef VOMP_PLATTFORM_MVP
 #include "mediaoptions.h"
 #endif
-//#include "vdr.h"
-#include "command.h"
-#include "messagequeue.h"
+
+#include "vopts.h"
 
 VOpts::VOpts()
 {
@@ -51,7 +50,6 @@ VOpts::VOpts()
   info->setStaticArtwork(sa_properties);
   setTitleBarIcon(info);
 
-
   setSize(520, 360);
   createBuffer();
   if (Video::getInstance()->getFormat() == Video::PAL)
@@ -366,7 +364,7 @@ void VOpts::doSave()
         {
           Message* m = new Message();
           m->message = Message::CHANGE_LANGUAGE;
-          m->to = Command::getInstance();
+          m->p_to = Message::CONTROL;
           MessageQueue::getInstance()->postMessage(m);
           break;
         }
diff --git a/vopts.h b/vopts.h
index e2e2da3b4854882be085a99846458066537d9773..af1269cc2d0cb53ff9b0cec8309d3b642db14dff 100644 (file)
--- a/vopts.h
+++ b/vopts.h
     GNU General Public License for more details.
 
     You should have received a copy of the GNU General Public License
-    along with VOMP; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+    along with VOMP.  If not, see <https://www.gnu.org/licenses/>.
 */
 
 #ifndef VOPTS_H
 #define VOPTS_H
 
+#include <vector>
 
 #include "tbboxx.h"
-#include "defines.h"
 #include "wtabbar.h"
 #include "i18n.h"
 #include "option.h"
-#include <vector>
 
 class Boxx;
-
+class Message;
 
 class VOpts : public TBBoxx
 {
index dec56c2513f2e6e021be80d598ddf54e6a49acb1..0e6bc6856f3229c9fca4c01f814a9f9b8f210f2c 100644 (file)
@@ -315,7 +315,7 @@ void VRadioRec::processMessage(Message* m)
       {
         // I can't handle this, send it to command
         Message* m2 = new Message();
-        m2->to = Command::getInstance();
+        m2->p_to = Message::CONTROL;
         m2->message = Message::CONNECTION_LOST;
         MessageQueue::getInstance()->postMessage(m2);
         break;
@@ -324,7 +324,7 @@ void VRadioRec::processMessage(Message* m)
       {
         // FIXME Obselete ish - improve this
         Message* m2 = new Message(); // Must be done after this thread finishes, and must break into master mutex
-        m2->to = Command::getInstance();
+        m2->p_to = Message::CONTROL;
         m2->message = Message::STOP_PLAYBACK;
         MessageQueue::getInstance()->postMessage(m2);
         break;
index 9ba949f8ddc593f196b560c31608692752afae1e..5acb22d316e1edec2d7ade32885f2833136a2514 100644 (file)
@@ -24,7 +24,7 @@
 #include "colour.h"
 #include "video.h"
 #include "boxstack.h"
-#include "command.h"
+#include "message.h"
 #include "messagequeue.h"
 
 Sleeptimer* Sleeptimer::instance = NULL;
@@ -169,7 +169,7 @@ void Sleeptimer::threadMethod()
     {
       Message* m2 = new Message();
       m2->message = Message::INPUT_EVENT;
-      m2->to = Command::getInstance();
+      m2->p_to = Message::CONTROL;
       m2->from = this;
       m2->parameter = Input::POWER;
       MessageQueue::getInstance()->postMessage(m2);
index b2f26c89f37cb5ad0331b64dae3656e2c1ea5626..839392017dd2b0114ea55cf63be513f7c47d7f30 100644 (file)
@@ -22,7 +22,6 @@
 #include "media.h"
 #include "mediaplayer.h"
 
-#include "command.h"
 #include "osd.h"
 #include "wsymbol.h"
 #include "audio.h"
@@ -371,7 +370,7 @@ void VVideoMedia::processMessage(Message* m)
       {
         // I can't handle this, send it to command
         Message* m2 = new Message();
-        m2->to = Command::getInstance();
+        m2->p_to = Message::CONTROL;
         m2->message = Message::CONNECTION_LOST;
         MessageQueue::getInstance()->postMessage(m2);
         break;
index b428ceaed68cf7b24246d644eb2ff21848d0da48..7fe5c860dd1d0c472321f78c5de06a6725af366a 100644 (file)
@@ -522,7 +522,7 @@ void VVideoRec::processMessage(Message* m)
       {
         // I can't handle this, send it to command
         Message* m2 = new Message();
-        m2->to = Command::getInstance();
+        m2->p_to = Message::CONTROL;
         m2->message = Message::CONNECTION_LOST;
         MessageQueue::getInstance()->postMessage(m2);
         break;
@@ -531,7 +531,7 @@ void VVideoRec::processMessage(Message* m)
       {
         // FIXME Obselete ish - improve this
         Message* m2 = new Message(); // Must be done after this thread finishes, and must break into master mutex
-        m2->to = Command::getInstance();
+        m2->p_to = Message::CONTROL;
         m2->message = Message::STOP_PLAYBACK;
         MessageQueue::getInstance()->postMessage(m2);
         break;