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


cmDspStore : 'snap' global variable interface used by units for getting and setting global variables.
extern cmDspStoreH_t cmDspStoreNullHandle;

cmDspRC_t cmDspStoreAlloc( cmCtx_t* ctx, cmDspStoreH_t* hp, unsigned initStoreCnt, unsigned growStoreCnt );

cmDspRC_t cmDspStoreFree( cmDspStoreH_t *hp );

bool      cmDspStoreIsValid( cmDspStoreH_t h );

unsigned  cmDspStoreSymToId( cmDspStoreH_t h, unsigned symId );
unsigned  cmDspStoreIdToSym( cmDspStoreH_t h, unsigned id );
const cmDspValue_t*  cmDspStoreIdToValue( cmDspStoreH_t h, unsigned id );

cmDspRC_t cmDspStoreSetValueViaId(  cmDspStoreH_t h, unsigned id,    const cmDspValue_t* val );

// Sets the variable to the value (and creates it if it does not exist).
// Returns the 'id' of the variable.
unsigned cmDspStoreSetValueViaSym( cmDspStoreH_t h, unsigned symId, const cmDspValue_t* val );