テスト
Diff: DisplayApp.h
- 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); };