Newer
Older
lynxi-plugin / src / sample / sample_plugin.cpp
/**
 * @file: sample_plugin.cpp
 * @author: sdk team
 * @brief
 * @version: 1.0
 * @date 2022-05-26
 *
 * Copyright:
 * © 2018 北京灵汐科技有限公司 版权所有。
 * 注意:以下内容均为北京灵汐科技有限公司原创,未经本公司允许,不得转载,否则将视为侵权;对于不遵守此声明或者其他违法使用以下内容者,本公司依法保留追究权。
 * © 2018 Lynxi Technologies Co., Ltd. All rights reserved.
 * NOTICE: All information contained here is, and remains the property of Lynxi. This file can not
 * be copied or distributed without the permission of Lynxi Technologies Co., Ltd.
 */


#include <stdio.h>
#include <sys/time.h>
#include <ctime>
#include "sample_plugin.h"

#include "unistd.h"


#define USING_TIME(expr)                                                                           \
    do {                                                                                           \
        struct timeval tBegin;                                                                     \
        gettimeofday(&tBegin, 0);                                                                  \
        {                                                                                          \
            expr;                                                                                  \
        }                                                                                          \
        struct timeval tEnd;                                                                       \
        gettimeofday(&tEnd, 0);                                                                    \
        float times = (float) (tEnd.tv_sec - tBegin.tv_sec) * 1000 +                               \
                      (float) (tEnd.tv_usec - tBegin.tv_usec) / 1000;                              \
        LOG_PLUGIN_E("%s using time: %f\n", __FUNCTION__, times);                                  \
    } while (0)


int DrawBox(void *args)
{
    DrawBoxAttr *attr = (DrawBoxAttr *) args;
    attr->imgData = (uint8_t *) lynPluginGetVirtAddr(attr->imgData);
    USING_TIME(PluginDrawBox(attr));
    return 0;
}

int DrawText(void *args)
{
    DrawTextPara *para = (DrawTextPara *) args;
    para->attr.imgData = (uint8_t *) lynPluginGetVirtAddr(para->attr.imgData);
    para->attr.text = para->text;
    USING_TIME(PluginDrawText(&(para->attr)));
    return 0;
}

int DrawTextV2(void *args)
{
    DrawTextV2Para *para = (DrawTextV2Para *) args;
    para->attr.imgData = (uint8_t *) lynPluginGetVirtAddr(para->attr.imgData);
    para->attr.text = para->text;
    USING_TIME(PluginDrawTextV2(&(para->attr)));
    return 0;
}

int DrawLine(void *args)
{
    DrawLineAttr *attr = (DrawLineAttr *) args;
    attr->imgData = (uint8_t *) lynPluginGetVirtAddr(attr->imgData);
    USING_TIME(PluginDrawLine(attr));
    return 0;
}