Copyright (C) Kevin Larke 2009-2020

This file is part of libcm.

libcm 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 3 of the License, or (at your option) any later version.

libcm 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.

See the GNU General Public License distributed with the libcm package or look here: .


cmUiRtSysMstr : Application side API for communicating with the UI audio master controls and meters.

enum
{
  kOkAmRC = cmOkRC,
  kUiFailAmRC,
  kPanelNotFoundAmRC
};

typedef cmHandle_t cmUiRtMstrH_t;
typedef cmRC_t     cmAmRC_t;

extern cmUiRtMstrH_t cmUiRtMstrNullHandle;

cmAmRC_t cmUiRtSysMstrAlloc( cmCtx_t* ctx, cmUiRtMstrH_t* hp, cmUiH_t uiH, cmRtSysH_t asH, unsigned appId );
cmAmRC_t cmUiRtSysMstrFree(  cmUiRtMstrH_t* hp );

bool     cmUiRtSysMstrIsValid( cmUiRtMstrH_t h );

cmAmRC_t cmUiRtSysMstrInitialize( cmUiRtMstrH_t h, const cmRtSysCtx_t* c, const cmChar_t* inDevLabel, const cmChar_t* outDevLabel );

// Receive UI events.
cmUiRC_t cmUiRtSysMstrOnUiEvent( cmUiRtMstrH_t h, const cmUiDriverArg_t* a );

// Receive UI status events
cmUiRC_t cmUiRtSysMstrOnStatusEvent( cmUiRtMstrH_t h, const cmRtSysStatus_t* m, const double* iMeterArray, const double* oMeterArray );

// Clear the status indicators.
void cmUiRtSysMstrClearStatus( cmUiRtMstrH_t h );