Files
ITEADLIB_Arduino_Nextion/NexTouch.cpp
shennongmin 8776da8cb9 Deleted NexCid and NexPid.
Signed-off-by: shennongmin <wupangfee@gmail.com>
2015-08-14 14:07:28 +08:00

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, NexEventType 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;
}
}
}