summaryrefslogtreecommitdiffstats
path: root/ucs2-vol/inc/setup.h
blob: 9295475b1f6546596b78f3c704296fdeaa5a8180 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/*
 * libmostvolume example
 *
 * Copyright (C) 2017 Microchip Technology Germany II GmbH & Co. KG
 *
 * 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.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * You may also obtain this software under a propriety license from Microchip.
 * Please contact Microchip for further information.
 *
 */

#ifndef SETUP_H
#define	SETUP_H

#include "ucs_api.h"
#include "libmostvolume.h"
#include "device_value.h"
#include "device_container.h"

#define MAX_CHANNELS    (LIB_MOST_VOLUME_MASTER + 1u)
#define MAX_MASTERS     3u

class CSetup {
    
public:
    void Configure(Ucs_Inst_t *unicens_inst, lib_most_volume_service_cb_t service_fptr);
    Ucs_Inst_t *RetrieveUnicensInst(void);
    void SetVolume(enum lib_most_volume_channel_t channel, uint8_t volume);
    void Update(); 
    
private:    
    CDeviceValue _volume_amp_270_m;
    CDeviceValue _volume_amp_270_l;
    CDeviceValue _volume_amp_270_r;
    
    CDeviceValue _volume_amp_271_m;
    CDeviceValue _volume_amp_271_l;
    CDeviceValue _volume_amp_271_r;
    
    CDeviceValue _volume_amp_272_m;
    CDeviceValue _volume_amp_272_l;
    CDeviceValue _volume_amp_272_r;

    CDeviceContainer _value_container;
    Ucs_Inst_t *ucs_inst;
        
public:
    static CSetup* GetInstance();   // singleton
    static void Release();          // singleton
    
protected:
    CSetup();                       // singleton
    virtual ~CSetup();              // singleton
    
private:
    static CSetup* _instance;       // singleton
};

#endif	/* SETUP_H */
ES}' else '0'}" # USE_MPEG4D_OMX for OMX Media Component MPEG4 Decoder Library USE_MPEG4D_OMX = "${@'1' if 'mpeg4dec_lib' in '${DISTRO_FEATURES}' else '0'}" # USE_VC1D_OMX for OMX Media Component VC-1 Decoder Library USE_VC1D_OMX = "${@'1' if 'vc1dec_lib' in '${DISTRO_FEATURES}' else '0'}" # USE_DIVXD_OMX for OMX Media Component DivX Decoder Library USE_DIVXD_OMX = "${@'1' if 'divxdec_lib' in '${DISTRO_FEATURES}' else '0'}" # USE_RVD_OMX for OMX Media Component RealVideo Decoder Library USE_RVD_OMX = "${@'1' if 'rvdec_lib' in '${DISTRO_FEATURES}' else '0'}" # USE_AACLCD_OMX for OMX Media Component AACLC OMX Library USE_AACLCD_OMX = "${@'1' if 'aaclcdec_lib' in '${DISTRO_FEATURES}' else '0'}" # USE_AACPV2D_OMX for OMX Media Component aacPlus V2 OMX Library USE_AACPV2D_OMX = "${@'1' if 'aacpv2dec_lib' in '${DISTRO_FEATURES}' else '0'}" # USE_MP3D_OMX for OMX Media Component MP3 OMX Library USE_MP3D_OMX = "${@'1' if 'mp3dec_lib' in '${DISTRO_FEATURES}' else '0'}" # USE_WMAD_OMX for OMX Media Component WMA OMX Library USE_WMAD_OMX = "${@'1' if 'wmadec_lib' in '${DISTRO_FEATURES}' else '0'}" # USE_ALACD_OMX for OMX Media Component ALAC decoder Library USE_ALACD_OMX = "${@'1' if 'alacdec_lib' in '${DISTRO_FEATURES}' else '0'}" # USE_FLACD_OMX for OMX Media Component FLAC decoder Library USE_FLACD_OMX = "${@'1' if 'flacdec_lib' in '${DISTRO_FEATURES}' else '0'}" # USE_DDD_OMX for OMX Media Component Dolby(R) Digital decoder Library USE_DDD_OMX = "${@'1' if 'dddec_lib' in '${DISTRO_FEATURES}' else '0'}" # USE_AACLCE_OMX for OMX Media Component AAC-LC encoder Library USE_AACLCE_OMX = "${@'1' if 'aaclcenc_lib' in '${DISTRO_FEATURES}' else '0'}" # USE_AACLC_MDW for AACLC MDW Library USE_AACLC_MDW = "${@'1' if 'aaclcdec_mdw' in '${DISTRO_FEATURES}' else '0'}" # USE_AACPV2_MDW for aacPlus V2 MDW Library USE_AACPV2_MDW = "${@'1' if 'aacpv2dec_mdw' in '${DISTRO_FEATURES}' else '0'}" # USE_MP3_MDW for MP3 MDW Library USE_MP3_MDW = "${@'1' if 'mp3dec_mdw' in '${DISTRO_FEATURES}' else '0'}" # USE_WMA_MDW for WMA MDW Library USE_WMA_MDW = "${@'1' if 'wmadec_mdw' in '${DISTRO_FEATURES}' else '0'}" # USE_DD_MDW for Dolby(R) Digital MDW Library USE_DD_MDW = "${@'1' if 'dddec_mdw' in '${DISTRO_FEATURES}' else '0'}" # USE_AACLCE_OMX for AAC-LC encoder middleware Library USE_AACLCE_MDW = "${@'1' if 'aaclcenc_mdw' in '${DISTRO_FEATURES}' else '0'}" # USE_VP8D_OMX for OMX Media Component VP8 Decoder Library USE_VP8D_OMX = "${@'1' if 'vp8dec_lib' in '${DISTRO_FEATURES}' else '0'}" # USE_VP8E_OMX for OMX Media Component VP8 Encoder Library USE_VP8E_OMX = "${@'1' if 'vp8enc_lib' in '${DISTRO_FEATURES}' else '0'}" # USE_VP9D_OMX for OMX Media Component VP9 Decoder Library USE_VP9D_OMX = "${@'1' if 'vp9dec_lib' in '${DISTRO_FEATURES}' else '0'}" # This function is to make sure vp9dec_lib only build with M3N or E3 python do_vp9_checking() { soc = d.getVar('SOC_FAMILY') soc = soc.split(':')[1] use_vp9d = d.getVar('USE_VP9D_OMX') if use_vp9d == "1": if soc != 'r8a77965' and soc != 'r8a77990': bb.fatal("vp9dec_lib only supports M3N (SoC: r8a77965), E3 (SoC: r8a77990), please disable this feature in your local configuration") } addtask vp9_checking before do_configure after do_patch # OMX Video Decoder Flag list LIST_OMX_VIDEO_DEC_FLAG = " \ ${USE_H263D_OMX} \ ${USE_H264D_OMX} \ ${USE_H265D_OMX} \ ${USE_MPEG2D_OMX} \ ${USE_MPEG4D_OMX} \ ${USE_VC1D_OMX} \ ${USE_DIVXD_OMX} \ ${USE_RVD_OMX} \ ${USE_VP8D_OMX} \ ${USE_VP9D_OMX} \ " # OMX Video Encoder Flag list LIST_OMX_VIDEO_ENC_FLAG = " \ ${USE_H264E_OMX} \ ${USE_VP8E_OMX} \ " # OMX Audio Flag list (except MDW) LIST_OMX_AUDIO_FLAG = " \ ${USE_AACLCD_OMX} \ ${USE_AACPV2D_OMX} \ ${USE_MP3D_OMX} \ ${USE_WMAD_OMX} \ ${USE_AACLCE_OMX} \ ${USE_ALACD_OMX} \ ${USE_FLACD_OMX} \ ${USE_DDD_OMX} \ " # Audio M/W Flag list LIST_AUDIO_MDW_FLAG = " \ ${USE_AACLC_MDW} \ ${USE_AACPV2_MDW} \ ${USE_MP3_MDW} \ ${USE_WMA_MDW} \ ${USE_DD_MDW} \ ${USE_AACLCE_MDW} \ " # USE_OMX_VIDEO_DEC for Video Decoder Common Libs USE_VIDEO_DEC = "${@'1' if '1' in '${LIST_OMX_VIDEO_DEC_FLAG}' else '0'}" # USE_OMX_VIDEO_DEC for Video Encoder Common Libs USE_VIDEO_ENC = "${@'1' if '1' in '${LIST_OMX_VIDEO_ENC_FLAG}' else '0'}" # USE_VIDEO_OMX for Enable/Disable OMX Video USE_VIDEO_OMX = "${@'1' if '1' in '${USE_VIDEO_DEC} ${USE_VIDEO_ENC}' else '0'}" # USE_AUDIO_OMX for Audio Common Libs USE_AUDIO_OMX = "${@'1' if '1' in '${LIST_OMX_AUDIO_FLAG}' else '0'}" # USE_OMX_COMMON for OMX Common Libs USE_OMX_COMMON = "${@'1' if '1' in '${USE_VIDEO_OMX} ${USE_AUDIO_OMX}' else '0'}" # USE_OMX_USER_MODULE for OMX User Module # Note) List of USE_OMX_COMMON = {USE_VIDEO_OMX} + {USE_AUDIO_OMX} USE_OMX_USER_MODULE = "${@'1' if '1' in '${USE_OMX_COMMON} ${LIST_AUDIO_MDW_FLAG}' else '0'}" USE_OMX_EVA_PKG = "${@'1' if 'use_eva_pkg' in '${DISTRO_FEATURES}' else '0'}"