Пример #1
0
int I2C::open(int bus, int slaveAddr, bool ignoreChecks)
{
	int fd = open(bus);
	if (fd < 0)
		return fd;
	if (setSlave(slaveAddr, ignoreChecks) < 0)
		return -1;
	return fd;
}
void METH(fsmInit)(fsmInit_t initFsm) {
    // trace init
    setTraceInfo(initFsm.traceInfoAddr, MAX_PORTS);

    init(MAX_PORTS + 1, &proxy) ;

    mPortsTunneled = initFsm.portsTunneled;

    setSlave(MAIN_COMPONENT_INDEX, &maincomponent, false) ;

    fsmInit_t tmpinit;
    tmpinit.portsDisabled = initFsm.portsDisabled;
    tmpinit.portsTunneled = ALL_PORTS_TUNNELED;
    tmpinit.traceInfoAddr = initFsm.traceInfoAddr;
    tmpinit.id1 = MAX_PORTS + 1;
    maincompinit.fsmInit(tmpinit);

    tmpinit.portsDisabled = 0;
    for (int i = 0; i < MAX_PORTS; i++) {
        setSlave(i, &binding[i], true) ;
        if (!binding[i].IsNullInterface()) {
            tmpinit.portsTunneled = ALL_PORTS_TUNNELED;
            tmpinit.id1 = i;
            if (mPortTypes & (1 << i)){
                // mpc bindings => change addr
                tmpinit.traceInfoAddr = (TraceInfo_t *)(initFsm.traceInfoAddr->dspAddr);
            } else {
                tmpinit.traceInfoAddr = initFsm.traceInfoAddr;
            }
            if(isOutputPort(i)) {
                tmpinit.portsTunneled &= (initFsm.portsTunneled & (1 << i)) << 1;
            } else {
                tmpinit.portsTunneled &= (initFsm.portsTunneled & (1 << i)) << 0;
            }
            bindinginit[i].fsmInit(tmpinit);
        }
    }

}
void METH(fsmInit)(fsmInit_t fsm_init)
{
	fsmInit_t initSalveFsm = {0,0,0,0};
  OstTraceInt0(TRACE_API, "At start of mpeg4deccontroller::fsmInit\n");
  //printf("\nMPEG4dec_controller:: fsmInit enter portsDisabled=%d portsTunneled=%d ",fsm_init.portsDisabled,fsm_init.portsTunneled);
  if (fsm_init.traceInfoAddr)
  {
         setTraceInfo(fsm_init.traceInfoAddr, fsm_init.id1);
  }
  init(2, &proxy, &controllers_output[0], &controllers_output[1], false) ;
  ARMNMF_DBC_ASSERT(!parserSendcommand.IsNullInterface() || !mpeg4decMPCSendcommand.IsNullInterface());

  initSalveFsm.traceInfoAddr = fsm_init.traceInfoAddr;
  initSalveFsm.portsDisabled = fsm_init.portsDisabled;
  initSalveFsm.portsTunneled = fsm_init.portsTunneled;
  initSalveFsm.id1 = fsm_init.id1 + 1;
  setSlave(PARSER_INDEX, &parserSendcommand) ;
  if(!parserSendcommand.IsNullInterface()) parserFSMinit.fsmInit(initSalveFsm) ;

  if (fsm_init.traceInfoAddr)
  {
#ifdef SOFT_DECODER
	initSalveFsm.traceInfoAddr = fsm_init.traceInfoAddr;
//+ER406303
#elif __MPEG4DEC_ARM_NMF
	initSalveFsm.traceInfoAddr = fsm_init.traceInfoAddr;
#else 
	initSalveFsm.traceInfoAddr = (TraceInfo_t *)fsm_init.traceInfoAddr->dspAddr;
#endif
//-ER406303  
  }
  initSalveFsm.portsDisabled = fsm_init.portsDisabled;
  initSalveFsm.portsTunneled = fsm_init.portsTunneled;
  initSalveFsm.id1++;
  setSlave(MPEG4DECMPC_INDEX, &mpeg4decMPCSendcommand) ;
  if(!mpeg4decMPCSendcommand.IsNullInterface()) mpeg4decMPCFSMinit.fsmInit(initSalveFsm) ;
   //printf("\nMPEG4dec_controller::fsmInit Exit");
}