テスト

Dependencies:   DisplayApp_Base

Dependents:   LED

Revision:
3:693902c86ca0
Parent:
2:b7ffe5216cd7
Child:
4:3c46efbe6d21
--- a/DisplayApp.h	Fri Sep 16 10:26:16 2016 +0000
+++ b/DisplayApp.h	Thu May 18 06:50:51 2017 +0000
@@ -47,25 +47,32 @@
      */
     int SendJpeg(uint8_t * buf, uint32_t size);
 
+    /** Attach a function to call whenever a serial interrupt is generated
+     *
+     * @param func A pointer to a void function, or 0 to set as none
+     */
+    void SetCallback(Callback<void()> func);
+
     /** Attach a function to call when touch panel int
      *
-     *  @param fptr A pointer to a void function, or 0 to set as none
+     * @param obj pointer to the object to call the member function on
+     * @param method pointer to the member function to be called
      */
-    void SetCallback(void (*fptr)(void)) {
-        if(fptr != NULL) {
-            event.attach(fptr);
-        }
+    template<typename T>
+    void SetCallback(T* obj, void (T::*method)()) {
+        // Underlying call thread safe
+        SetCallback(callback(obj, method));
     }
+
     /** Attach a member function to call when touch panel int
      *
-     *  @param tptr pointer to the object to call the member function on
-     *  @param mptr pointer to the member function to be called
+     * @param obj pointer to the object to call the member function on
+     * @param method pointer to the member function to be called
      */
     template<typename T>
-    void SetCallback(T* tptr, void (T::*mptr)(void)) {
-        if((mptr != NULL) && (tptr != NULL)) {
-            event.attach(tptr, mptr);
-        }
+    void SetCallback(T* obj, void (*method)(T*)) {
+        // Underlying call thread safe
+        SetCallback(callback(obj, method));
     }
     /** Get the maximum number of simultaneous touches 
      * 
@@ -95,17 +102,16 @@
         POS_SEQ_END,
     } pos_seq_t;
 
+    osPriority change_pri;
     Thread displayThread;
     USBSerial * pPcApp;
     pos_seq_t pos_seq;
     int pos_x;
     int pos_y;
-    osPriority change_pri;
-    FunctionPointer event;
+    Callback<void()> event;
 
     void touch_int_callback(void);
     void display_app_process();
-    static void display_app_process_static(void const * arg);
     void SendHeader(uint32_t size);
     void SendData(uint8_t * buf, uint32_t size);
 };