mirror of
https://github.com/itead/ITEADLIB_Arduino_Nextion.git
synced 2026-03-03 08:44:00 +01:00
104 lines
2.1 KiB
C++
104 lines
2.1 KiB
C++
/**
|
|
* @file NexTouch.cpp
|
|
*
|
|
* The implementation of class NexTouch.
|
|
*
|
|
* @author Wu Pengfei (email:<pengfei.wu@itead.cc>)
|
|
* @date 2015/8/13
|
|
* @copyright
|
|
* Copyright (C) 2014-2015 ITEAD Intelligent Systems Co., Ltd. \n
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License as
|
|
* published by the Free Software Foundation; either version 2 of
|
|
* the License, or (at your option) any later version.
|
|
*/
|
|
#include "NexTouch.h"
|
|
|
|
|
|
/**
|
|
* Constructor of Nextouch.
|
|
*
|
|
* @param pid - pid
|
|
* @param cid - cid
|
|
* @param name - name
|
|
*
|
|
*/
|
|
NexTouch::NexTouch(uint8_t pid, uint8_t cid, const char *name)
|
|
:NexObject(pid, cid, name)
|
|
{
|
|
this->cbPush = NULL;
|
|
this->cbPop = NULL;
|
|
this->__cbpop_ptr = NULL;
|
|
this->__cbpush_ptr = NULL;
|
|
}
|
|
|
|
void NexTouch::attachPush(NexTouchEventCb push, void *ptr)
|
|
{
|
|
this->cbPush = push;
|
|
this->__cbpush_ptr = ptr;
|
|
}
|
|
|
|
void NexTouch::detachPush(void)
|
|
{
|
|
this->cbPush = NULL;
|
|
this->__cbpush_ptr = NULL;
|
|
}
|
|
|
|
void NexTouch::attachPop(NexTouchEventCb pop, void *ptr)
|
|
{
|
|
this->cbPop = pop;
|
|
this->__cbpop_ptr = ptr;
|
|
}
|
|
|
|
void NexTouch::detachPop(void)
|
|
{
|
|
this->cbPop = NULL;
|
|
this->__cbpop_ptr = NULL;
|
|
}
|
|
|
|
void NexTouch::push(void)
|
|
{
|
|
if (cbPush)
|
|
{
|
|
cbPush(__cbpush_ptr);
|
|
}
|
|
}
|
|
|
|
void NexTouch::pop(void)
|
|
{
|
|
if (cbPop)
|
|
{
|
|
cbPop(__cbpop_ptr);
|
|
}
|
|
}
|
|
|
|
void NexTouch::iterate(NexTouch **list, uint8_t pid, uint8_t cid, int32_t event)
|
|
{
|
|
NexTouch *e = NULL;
|
|
uint16_t i = 0;
|
|
|
|
if (NULL == list)
|
|
{
|
|
return;
|
|
}
|
|
|
|
for(i = 0; (e = list[i]) != NULL; i++)
|
|
{
|
|
if (e->getObjPid() == pid && e->getObjCid() == cid)
|
|
{
|
|
e->printObjInfo();
|
|
if (NEX_EVENT_PUSH == event)
|
|
{
|
|
e->push();
|
|
}
|
|
else if (NEX_EVENT_POP == event)
|
|
{
|
|
e->pop();
|
|
}
|
|
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|