Megaphone_PlayBack.c 2.7 KB
#include "JZsdkLib.h"

#include "Hal_Send/HalSend_type1/HalSend_type1.h"

static int PlayBackPort[128] = {0}; //用于记录需要回传的hal口
static int PlayBackNum = 0; //用于记录由多少个回传的hal口
static int g_CurrentPlayTime = 0; //当前播放时间


/*****************
 * 
 *  获取回传模式
 * 
 * 
 * ******************/
int Megaphone_PlayBackGetMode(int HalPort)
{
    //遍历是否存在当前的halPort内容
    for(int i = 0; i < PlayBackNum; i++)
    {
        if(PlayBackPort[i] == HalPort)
        {
            return JZ_FLAGCODE_ON;
        }
    }

    return JZ_FLAGCODE_OFF;
}

/**********************
 * 
 *  播放中的时间回传函数
 * 
 * 
 * ******************/
T_JZsdkReturnCode Megaphone_PlayBackSet(int HalPort, int Mode)
{
    //如果是关闭回传
    if (Mode == JZ_FLAGCODE_OFF)
    {
        //遍历是否存在当前的halPort内容
        for(int i = 0; i < PlayBackNum; i++)
        {
            if(PlayBackPort[i] == HalPort)
            {
                PlayBackPort[i] == 0;

                //然后把后面的内容往前移动
                for(int j = i; j < PlayBackNum; j++)
                {
                    PlayBackPort[j] = PlayBackPort[j+1];
                }

                PlayBackNum--;

                return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
            }
        }

        //遍历发现都没开启过,说明是非法操作
        JZSDK_LOG_INFO("%s 未打开过播放回传", JZsdk_DefineCode_GetPortName(HalPort) );
        return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
    }
    
    //如果是开启回传
    if (Mode == JZ_FLAGCODE_ON)
    {
        //遍历是否存在当前的halPort内容
        for(int i = 0; i < PlayBackNum; i++)
        {
            if(PlayBackPort[i] == HalPort)
            {
                JZSDK_LOG_INFO("%s 已打开过播放回传", JZsdk_DefineCode_GetPortName(HalPort) );
                return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
            }
        }

        //遍历发现都没开启过,则添加到数组中
        PlayBackPort[PlayBackNum] = HalPort;
        PlayBackNum++;
    }

    return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}

/***************
 * 
 * 
 *  PlayBack
 * 
 * 
 * ************/
T_JZsdkReturnCode Megaphone_PlayBackTime(int PlayBackTime)
{
    g_CurrentPlayTime = PlayBackTime;

    for (int i = 0; i < PlayBackNum; i++)
    {
        HalSend_type1Send_Reply_CurrentPlayTime(PlayBackPort[i] ,PlayBackTime);
    }

    return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;   
}

T_JZsdkReturnCode Megaphone_PlayBackTimeGet(int Port)
{
    HalSend_type1Send_Reply_CurrentPlayTime(Port ,g_CurrentPlayTime);

    return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}