123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- #include "cmGlobal.h"
- #include "cmRtSysMsg.h"
- #include "cmUiDrvr.h"
-
- void cmUiDriverArgSetup( cmUiDriverArg_t* a,
- unsigned rtSubIdx,
- unsigned selId,
- cmUiDId_t dId,
- unsigned appId,
- unsigned usrId,
- unsigned panelId,
- cmUiCId_t cId,
- unsigned flags,
- int ival,
- double fval,
- const cmChar_t* sval,
- int x,
- int y,
- int w,
- int h
- )
- {
-
- flags = cmEnaFlag(flags,kSvalUiFl,sval!=NULL);
- a->hdr.rtSubIdx= rtSubIdx;
- a->hdr.selId = selId;
- a->dId = dId;
- a->appId = appId;
- a->usrId = usrId;
- a->panelId = panelId;
- a->cId = cId;
- a->flags = flags;
- a->ival = ival;
- a->fval = fval;
- a->sval = sval;
- a->x = x;
- a->y = y;
- a->w = w;
- a->h = h;
- }
-
- unsigned cmUiDriverArgSerializeBufByteCount( const cmUiDriverArg_t* a )
- {
- unsigned n = sizeof(*a);
- if( cmIsFlag(a->flags,kSvalUiFl) && a->sval != NULL )
- n += strlen(a->sval) + 1;
- return n;
- }
-
- cmUiRC_t cmUiDriverArgSerialize( const cmUiDriverArg_t* a, void* buf, unsigned bufByteCnt )
- {
- if( bufByteCnt < cmUiDriverArgSerializeBufByteCount(a))
- return kBufTooSmallUiRC;
-
- memcpy(buf,a,sizeof(*a));
-
- if( cmIsFlag(a->flags,kSvalUiFl) && a->sval != NULL )
- strcpy( (char*)buf + sizeof(*a), a->sval );
-
- return kOkUiRC;
- }
-
- cmUiRC_t cmUiDriverArgDeserialize( cmUiDriverArg_t* a, const void* buf, unsigned bufByteCnt )
- {
- bool fl = bufByteCnt >= sizeof(*a);
- assert( fl );
- if( !fl )
- return kBufTooSmallUiRC;
-
- memcpy(a,buf,sizeof(*a));
-
- fl = a->cId < kMaxUiCId && a->dId < kMaxDId;
-
- assert(fl );
- if( !fl )
- return kBufCorruptUiRC;
-
- if( cmIsFlag(a->flags,kSvalUiFl) && a->sval != NULL )
- a->sval = (char*)buf + sizeof(*a);
-
- return kOkUiRC;
- }
-
- int cmUiDriverArgGetInt( const cmUiDriverArg_t* a )
- {
- if( a->flags & kIvalUiFl )
- return a->ival;
-
- if( a->flags & kFvalUiFl )
- return round(a->fval);
-
- assert(0);
- return -1;
- }
-
- double cmUiDriverArgGetDouble( const cmUiDriverArg_t* a )
- {
- if( a->flags & kIvalUiFl )
- return a->ival;
-
- if( a->flags & kFvalUiFl )
- return a->fval;
-
- assert(0);
- return -1;
- }
-
- const cmChar_t* cmUiDriverArgGetString( const cmUiDriverArg_t* a )
- {
- return a->flags & kSvalUiFl ? a->sval : NULL;
- }
|