Psdk_UI_io2.c 6.9 KB
#include "JZsdkLib.h"
#include "UI_control/Psdk_ui_value_menu.h"
#include "UI_control/UI_control.h"

#include "version_choose.h"
#include "UI_control/Psdk_UI_io.h"

#ifdef WARNLIGHT_STATUS_ON
    #include "WarnLight/WarnLight.h"
#endif

#ifdef SIDE_LASER_STATUS_ON
    #include "SideLaser/SideLaser.h"
#endif

//警灯颜色
static int FirstWarningLight = 1;
static int SecondWarningLight = 3;

//播放上一首歌曲
T_JZsdkReturnCode JZsdk_Psdk_UI_io_LastSong(int wheather_control)
{
    T_JZsdkReturnCode ret =JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;

    // 开启实时喊话时,锁定该功能
    if (Get_UI_Widget_OpusRealTimeMode() == JZ_FLAGCODE_ON)
    {
        return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
    }

    //将播放状态给到psdk ui
    JZsdk_PsdkUi_value_set(JZSDK_WIDGET_PLAYANDSTOP, JZ_FLAGCODE_ON);

    if(wheather_control == JZ_FLAGCODE_ON)
    {
        //将播放上一首歌曲的命令发送到UIcontrol
        ret = UIcontrol_LastSong(DEVICE_PSDK);
    }

    return ret;
}

//播放下一首歌曲
T_JZsdkReturnCode JZsdk_Psdk_UI_io_NextSong(int wheather_control)
{    
    T_JZsdkReturnCode ret =JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;

    // 开启实时喊话时,锁定该功能
    if (Get_UI_Widget_OpusRealTimeMode() == JZ_FLAGCODE_ON)
    {
        return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
    }

    //将播放状态给到psdk ui
    JZsdk_PsdkUi_value_set(JZSDK_WIDGET_PLAYANDSTOP, JZ_FLAGCODE_ON);

    // 如果有进行控制,不只是改控件
    if (wheather_control == 1)
    {
        ret = UIcontrol_NextSong(DEVICE_PSDK);
        return ret;
    }

    return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}

//播放暂停
T_JZsdkReturnCode JZsdk_Psdk_UI_io_Audio_PauseAndPlayContinue(int wheather_control, int value)
{
    T_JZsdkReturnCode ret =JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;

    // 开启实时喊话时,锁定该功能
    if (Get_UI_Widget_OpusRealTimeMode() == JZ_FLAGCODE_ON)
    {
        return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
    }

    JZsdk_PsdkUi_value_set(JZSDK_WIDGET_PLAYANDSTOP, value);

    if(wheather_control == JZ_FLAGCODE_ON)
    {
        if (value == JZ_FLAGCODE_ON)
        {
            ret = UIcontrol_ContinuePlayAudio(DEVICE_PSDK);
        }
        else
        {
            ret = UIcontrol_PausePlayAudio(DEVICE_PSDK);
        }
    }
    
    return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}


// 关闭喊话器所有音频
T_JZsdkReturnCode JZsdk_Psdk_UI_io_StopPlayAudio()
{
    // 开启实时喊话时,锁定该功能
    if (Get_UI_Widget_OpusRealTimeMode() == JZ_FLAGCODE_ON)
    {
        return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
    }

    JZsdk_PsdkUi_value_set(JZSDK_WIDGET_PLAYANDSTOP, JZ_FLAGCODE_OFF);

    T_JZsdkReturnCode ret;
    ret = UIcontrol_StopPlayAudio(DEVICE_PSDK);
    return ret;
}

// T_JZsdkReturnCode JZsdk_Psdk_UI_io_SetVolume(int wheather_control, int value)
// {
//     //后续需要优化掉
//     widget_volume = value;

//     //控件变化
//     JZsdk_PsdkUi_value_set(JZSDK_WIDGET_VOLUME, value);

//     //将音量控制值发送到UIcontrol 用于控制设备
//     if(wheather_control == JZ_FLAGCODE_ON)
//     {
//         UIcontrol_SetVolume(DEVICE_PSDK, value, JZ_FLAGCODE_ON);
//     }
    
//     return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
// }

T_JZsdkReturnCode JZsdk_Psdk_UI_io_Set_TTS_speed(int wheather_control, int speed)
{
    //将TTS速度的控件变化给到psdk ui
    JZsdk_PsdkUi_value_set(JZSDK_WIDGET_TTS_SPEED, speed);

    if (wheather_control == JZ_FLAGCODE_ON)
    {
        //将TTS速度的命令发送到UIcontrol
        UIcontrol_Set_TTS_speed(DEVICE_PSDK, speed);
    }

    return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}

// psdkTTS音色         10个音色
// 要分国内版和海外版
T_JZsdkReturnCode JZsdk_Psdk_UI_io_Set_TTS_tone(int wheather_control, int tone)
{
    T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
    
    // 将控件界面的播放开关 转化为关闭
    JZsdk_PsdkUi_value_set(JZSDK_WIDGET_TTS_TONE, tone);

    // 如果有进行控制,不只是改控件
    if (wheather_control == 1)
    {
        ret = UIcontrol_Set_TTS_tone(DEVICE_PSDK,tone);
    }

    return ret;
}

/*
    侧面激光 0 关 1绿常亮 2红常亮 3齐亮 4齐闪 5交替闪 
    这里传入的value是控件值,要将其转换为开关与模式再转到uicontrol
*/
T_JZsdkReturnCode JZsdk_Psdk_UI_io_SideLaserMode(int wheather_control, int value)
{
    T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;

    ret = JZsdk_PsdkUi_value_set(JZSDK_WIDGET_SIDE_LASER_MODE, value);

#ifdef SIDE_LASER_STATUS_ON
    if (wheather_control == JZ_FLAGCODE_ON)
    {
        //获取模式
        int mode = 0;
        SideLaser_param(JZ_FLAGCODE_GET ,SIDELASER_MODE, &mode);
        
        if (value == 0)
        {
            UIcontrol_SideLaser_SetControl(DEVICE_PSDK, JZ_FLAGCODE_OFF);
        }
        else
        {
            mode = value - 1;
            UIcontrol_SideLaser_SetMode(DEVICE_PSDK, mode);
            UIcontrol_SideLaser_SetControl(DEVICE_PSDK, JZ_FLAGCODE_ON);
        }
    }
#endif

    return ret;
}

/*
    警灯模式 0 关 1交替快闪 2交替满闪 3交替齐闪 4(同时快闪) 5(同时慢闪)
    这里传入的value是控件值,要将其转换为开关与模式再转到uicontrol
*/
T_JZsdkReturnCode JZsdk_Psdk_UI_io_Set_WarningLightMode(int wheather_control, int value)
{
    T_JZsdkReturnCode ret = JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;

    ret = JZsdk_PsdkUi_value_set(JZSDK_WIDGET_WARNLIGHT_MODE, value);

#ifdef WARNLIGHT_STATUS_ON

    if (wheather_control == JZ_FLAGCODE_ON)
    {
        T_JzWarnLightAttribute Attribute;
        WarnLight_Get_Attribute(&Attribute);

        //将ui值转换为模式值
        int Lswitch = 0;
        int mode = 0;

        if (value == 0)
        {
            Lswitch = JZ_FLAGCODE_OFF;

            //去获取上次的模式
            mode = Attribute.mode; 
        }
        else
        {
            Lswitch = JZ_FLAGCODE_ON;
            mode = value - 1;
        }

        ret = UIcontrol_Set_WarningLight_ModeControl(DEVICE_PSDK, Lswitch, mode);
    }
#endif  
    return ret;
}

//警灯颜色1
T_JZsdkReturnCode JZsdk_Psdk_UI_io_Set_WarningLightFirstColor(int wheather_control, int value)
{
    T_JZsdkReturnCode ret;

    ret = JZsdk_PsdkUi_value_set(JZSDK_WIDGET_WARNLIGHT_COLOR_1, value);

    FirstWarningLight = value;

    if (wheather_control == JZ_FLAGCODE_ON)
    {
        ret = UIcontrol_Set_WarningLight_Color(DEVICE_PSDK, FirstWarningLight, SecondWarningLight);
    }
    
    return ret;
}

//警灯颜色2
T_JZsdkReturnCode JZsdk_Psdk_UI_io_Set_WarningLightSecondColor(int wheather_control, int value)
{
    T_JZsdkReturnCode ret;

    ret = JZsdk_PsdkUi_value_set(JZSDK_WIDGET_WARNLIGHT_COLOR_2, value);

    SecondWarningLight = value;

    if (wheather_control == JZ_FLAGCODE_ON)
    {
        ret = UIcontrol_Set_WarningLight_Color(DEVICE_PSDK, FirstWarningLight, SecondWarningLight);
    }
    
    return ret;
}