Exemplo n.º 1
0
cam_flash_err_e CFlashSequencer::startSeq(sequenceID_t sequence, CFlashController *pController, flashSeqClbk_t pClbk, flashSeqClbkCtxtHnd_t ctxtHnd) {
    IN0("\n");
    if (pController == NULL) {      // Error: a valid controller handle must be passed.
        OUT0("\n");
        return CAM_FLASH_ERR_BAD_PARAMETER;
    }
    if (curSeq != NONE_SEQ) {   // A running sequence cannot be interrupted
        OUT0("\n");
        return CAM_FLASH_ERR_BAD_PRECONDITION; 
    }
    curSeq = sequence;
    switch (sequence) {
        case NONE_SEQ:
            i32_remSteps = 0;
            break;
        case RED_EYE_REMOVAL_SEQ:
            i32_remSteps = sizeof(a_RER_sequence) / sizeof(cam_flashSeq_atom_t);
            break;
        case PRIVACY_SEQ:
            i32_remSteps = sizeof(a_PI_sequence) / sizeof(cam_flashSeq_atom_t);
            break;
    }
    mController = pController;
    mpClbk = pClbk;
    mctxtHnd = ctxtHnd;
    sigTimer(); // To be called after delay by the chosen timing service.
    OUT0("\n");
    return CAM_FLASH_ERR_NONE;
}
void Dbrown_next(Dbrown *unit, int inNumSamples)
{
	if (inNumSamples) {
			float lo = DEMANDINPUT_A(1, inNumSamples); if(!sc_isnan(lo)) { unit->m_lo = lo; }
			float hi = DEMANDINPUT_A(2, inNumSamples); if(!sc_isnan(hi)) { unit->m_hi = hi; }
			float step = DEMANDINPUT_A(3, inNumSamples); if(!sc_isnan(step)) { unit->m_step = step; }

		if (unit->m_repeats < 0.) {
			float x = DEMANDINPUT_A(0, inNumSamples);
			unit->m_repeats = sc_isnan(x) ? 0.f : floor(x + 0.5f);
			unit->m_val = unit->mParent->mRGen->frand() * (unit->m_hi - unit->m_lo) + unit->m_lo;
		}
		if (unit->m_repeatCount >= unit->m_repeats) {
			OUT0(0) = NAN;
			return;
		}
		unit->m_repeatCount++;
		OUT0(0) = unit->m_val;
		float x = unit->m_val + unit->mParent->mRGen->frand2() * unit->m_step;
		unit->m_val = sc_fold(x, unit->m_lo, unit->m_hi);
	} else {
		unit->m_repeats = -1.f;
		unit->m_repeatCount = 0;
	}
}
void Dswitch_next(Dswitch *unit, int inNumSamples)
{
	int index;
	float ival;
	if (inNumSamples) {
		float val = DEMANDINPUT_A(unit->m_index, inNumSamples);
		//printf("index: %i\n", (int) val);
		if(sc_isnan(val)) {
			ival = DEMANDINPUT_A(0, inNumSamples);

			if(sc_isnan(ival)) {
				OUT0(0) = ival;
				return;
			}

			index = (int32)floor(ival + 0.5f);
			index = sc_wrap(index, 0, unit->mNumInputs - 2) + 1;
			val = DEMANDINPUT_A(unit->m_index, inNumSamples);

			RESETINPUT(unit->m_index);
			// printf("resetting index: %i\n", unit->m_index);
			unit->m_index = index;
		}
		OUT0(0) = val;

	} else {
		printf("...\n");
		for (int i=0; i<unit->mNumInputs; ++i) {
			RESETINPUT(i);
		}
		index = (int32)floor(DEMANDINPUT(0) + 0.5f);
		index = sc_wrap(index, 0, unit->mNumInputs - 1) + 1;
		unit->m_index = index;
	}
}
void Dstutter_next(Dstutter *unit, int inNumSamples)
{
	if (inNumSamples) {

		if (unit->m_repeatCount >= unit->m_repeats) {

			float val = DEMANDINPUT_A(1, inNumSamples);
			float repeats = DEMANDINPUT_A(0, inNumSamples);

			if(sc_isnan(repeats) || sc_isnan(val)) {
				OUT0(0) = NAN;
				return;
			} else {
				unit->m_value = val;
				unit->m_repeats = floor(repeats + 0.5f);
				unit->m_repeatCount = 0.f;
			}
		}

		OUT0(0) = unit->m_value;
		unit->m_repeatCount++;

	} else {

		unit->m_repeats = -1.f;
		unit->m_repeatCount = 0.f;
		RESETINPUT(0);
		RESETINPUT(1);

	}
}
Exemplo n.º 5
0
camSharedMemError_t CCamSharedMemory::getChunk(camSharedMemChunk_t *pChunk, camSharedMemChunkId_t chunkId)
{
    IN0("\n");
    OstTraceFiltStatic0(TRACE_FLOW, "Entry CCamSharedMemory::getChunk", (mTraceObject));
    if (state != CCamSharedMemory::CAM_SHARED_MEM_STATE_OPEN) {
        OUT0("\n");
        OstTraceFiltStatic1(TRACE_FLOW, "Exit CCamSharedMemory::getChunk (%d)", (mTraceObject), CAM_SHARED_MEM_ERR_BAD_STATE);
        return CAM_SHARED_MEM_ERR_BAD_STATE;
    }
    if (chunkId >= CAM_SHARED_MEM_CHUNK_MAX) {
        OUT0("\n");
        OstTraceFiltStatic1(TRACE_FLOW, "Exit CCamSharedMemory::getChunk (%d)", (mTraceObject), CAM_SHARED_MEM_ERR_BAD_PARAMETER);
        return CAM_SHARED_MEM_ERR_BAD_PARAMETER;
    }
    if (abBusyChunks[chunkId]) {
        OUT0("\n");
        OstTraceFiltStatic1(TRACE_FLOW, "Exit CCamSharedMemory::getChunk (%d)", (mTraceObject), CAM_SHARED_MEM_ERR_BAD_PRECONDITION);
        return CAM_SHARED_MEM_ERR_BAD_PRECONDITION;
    }
    abBusyChunks[chunkId] = true;
    *pChunk = aChunks[chunkId];
    OUT0("\n");
    OstTraceFiltStatic1(TRACE_FLOW, "Exit CCamSharedMemory::getChunk (%d)", (mTraceObject), CAM_SHARED_MEM_ERR_NONE);
    return CAM_SHARED_MEM_ERR_NONE;
}
Exemplo n.º 6
0
camSharedMemError_t CCamSharedMemory::cacheInvalidate(camSharedMemChunkId_t chunkId)
{
    IN0("\n");
    OstTraceFiltStatic0(TRACE_FLOW, "Entry CCamSharedMemory::cacheInvalidate", (mTraceObject));
    if (state != CCamSharedMemory::CAM_SHARED_MEM_STATE_OPEN) {
        OUT0("\n");
        OstTraceFiltStatic1(TRACE_FLOW, "Exit CCamSharedMemory::cacheInvalidate (%d)", (mTraceObject), CAM_SHARED_MEM_ERR_BAD_STATE);
        return CAM_SHARED_MEM_ERR_BAD_STATE;
    }
    if (chunkId >= CAM_SHARED_MEM_CHUNK_MAX) {
        OUT0("\n");
        OstTraceFiltStatic1(TRACE_FLOW, "Exit CCamSharedMemory::cacheInvalidate (%d)", (mTraceObject), CAM_SHARED_MEM_ERR_BAD_PARAMETER);
        return CAM_SHARED_MEM_ERR_BAD_PARAMETER;
    }
    if (! abBusyChunks[chunkId]) {
        OUT0("\n");
        OstTraceFiltStatic1(TRACE_FLOW, "Exit CCamSharedMemory::cacheInvalidate (%d)", (mTraceObject), CAM_SHARED_MEM_ERR_BAD_PRECONDITION);
        return CAM_SHARED_MEM_ERR_BAD_PRECONDITION;
    }
    // Flush the data that have been written by the ISP FW
    OMX_U32 aPhysAddr; // out
    OMX_ERRORTYPE e_ret = sharedBufferPoolId->CacheSync(MMHwBuffer::ESyncAfterWriteHwOperation,
            (OMX_U32) aChunks[chunkId].armLogicalAddress,
            aChunks[chunkId].size, aPhysAddr);
    if (e_ret != OMX_ErrorNone) {
        MSG1("Problem invalidating data cache (err=%d)\n", e_ret);
        OstTraceFiltStatic1(TRACE_DEBUG, "Problem invalidating data cache (err=%d)", (mTraceObject), e_ret);
        OUT0("\n");
        OstTraceFiltStatic1(TRACE_FLOW, "Exit CCamSharedMemory::cacheInvalidate (%d)", (mTraceObject), CAM_SHARED_MEM_ERR_NO_RESOURCE);
        return CAM_SHARED_MEM_ERR_NO_RESOURCE;
    }
    OUT0("\n");
    OstTraceFiltStatic1(TRACE_FLOW, "Exit CCamSharedMemory::cacheInvalidate (%d)", (mTraceObject), CAM_SHARED_MEM_ERR_NONE);
    return CAM_SHARED_MEM_ERR_NONE;
}
void Dibrown_next(Dibrown *unit, int inNumSamples)
{
	if (inNumSamples) {

		float lo   = DEMANDINPUT_A(1, inNumSamples);    if(!sc_isnan(lo))   { unit->m_lo   = (int32)lo; }
		float hi   = DEMANDINPUT_A(2, inNumSamples);    if(!sc_isnan(hi))   { unit->m_hi   = (int32)hi; }
		float step = DEMANDINPUT_A(3, inNumSamples);    if(!sc_isnan(step)) { unit->m_step = (int32)step; }

		if (unit->m_repeats < 0.) {
			float x = DEMANDINPUT_A(0, inNumSamples);
			unit->m_repeats = sc_isnan(x) ? 0.f : floor(x + 0.5f);
			unit->m_val = unit->mParent->mRGen->irand(unit->m_hi - unit->m_lo + 1) + unit->m_lo;
		}
		if (unit->m_repeatCount >= unit->m_repeats) {
			OUT0(0) = NAN;
			return;
		}
		OUT0(0) = unit->m_val;
		int32 z = unit->m_val + unit->mParent->mRGen->irand2(unit->m_step);
		unit->m_val = sc_fold(z, unit->m_lo, unit->m_hi);
	} else {
		unit->m_repeats = -1.f;
		unit->m_repeatCount = 0;
	}
}
void Dbufrd_next(Dbufrd *unit, int inNumSamples)
{
	int32 loop     = (int32)DEMANDINPUT_A(2, inNumSamples);

	D_GET_BUF_SHARED
	D_CHECK_BUF

	double loopMax = (double)(loop ? bufFrames : bufFrames - 1);

	double phase;
	if (inNumSamples)
		{
			float x = DEMANDINPUT_A(1, inNumSamples);
			if (sc_isnan(x)) {
					OUT0(0) = NAN;
					return;
			}
			phase = x;

			phase = sc_loop((Unit*)unit, phase, loopMax, loop);
			int32 iphase = (int32)phase;
			const float* table1 = bufData + iphase * bufChannels;
			OUT0(0) = table1[0];
		}
		else
		{
			RESETINPUT(1);
		}
}
void Diwhite_next(Diwhite *unit, int inNumSamples)
{
	if (inNumSamples) {
		float lo = DEMANDINPUT_A(1, inNumSamples);
		float hi = DEMANDINPUT_A(2, inNumSamples);

		if(!sc_isnan(lo)) { unit->m_lo = (int32)floor(DEMANDINPUT_A(1, inNumSamples) + 0.5f); }
		if(!sc_isnan(hi)) {
			int32 hi = (int32)floor(DEMANDINPUT_A(2, inNumSamples) + 0.5f);
			unit->m_range = hi - unit->m_lo + 1;
		}

		if (unit->m_repeats < 0.) {
			float x = DEMANDINPUT_A(0, inNumSamples);
			unit->m_repeats = sc_isnan(x) ? 0.f : floor(x + 0.5f);
		}
		if (unit->m_repeatCount >= unit->m_repeats) {
			OUT0(0) = NAN;
			return;
		}
		unit->m_repeatCount++;
		float x = unit->mParent->mRGen->irand(unit->m_range) + unit->m_lo;
		OUT0(0) = x;
	} else {
		unit->m_repeats = -1.f;
		unit->m_repeatCount = 0;
	}
}
Exemplo n.º 10
0
void DbufTag_end(DbufTag *unit, int which_case, int inNumSamples) {

    int recycle = (int) DEMANDINPUT_A(dtag_recycle, inNumSamples);
    int mode = (int) IN0(dtag_mode);

    if(which_case == 0) {
        DbufTag_reset(unit, recycle, inNumSamples);
        if(mode == 4) {
            printf("tag system was reset externally.\n");
            if(recycle) {
                printf("recycling. axiom length: %d\n", recycle);
            }
        }
        return;
    }

    if((mode == 0) || (mode == which_case)) {
        if(recycle) {
            DbufTag_reset(unit, recycle, inNumSamples);
        } else {
            OUT0(0) = NAN;
        }
        return;
    }
    if(mode >= 4) {
        printf("tag system halt: ");
        if(which_case == 1) {
            printf("divergence too large (buffer filled up).\n");
        } else {
            printf("terminated (string empty)\n");
        }

        if(recycle) {

            printf("recycling. axiom length: %d\n", recycle);
            //printf("new axiom:\n"); // todo.
            DbufTag_reset(unit, recycle, inNumSamples);

            GET_BUF
            printf("new axiom (index %ld..%ld): ", unit->m_read_pos, unit->m_write_pos);
            int32 n = unit->m_write_pos - unit->m_read_pos;
            if(n < 0) {
                n = sc_wrap(n, 0, bufFrames - 1);
            }
            for(int32 i=0; i < n; i++) {
                int32 j = sc_wrap(unit->m_read_pos + i, 0, bufFrames - 1);
                printf("%d ", (int)bufData[j]);
            }
            printf("\n");

        } else {
            OUT0(0) = NAN;
        }
        return;
    }
    OUT0(0) = NAN;
}
Exemplo n.º 11
0
void MedianSeparation_Ctor( MedianSeparation* unit ) {
	
    //fft, fftharmonic, fftpercussive, fftsize, mediansize=17, hardorsoft=0, p=1
    
    //IFFT needs to know what it is operating on
	OUT0(0) = ZIN0(1); //-1;
    OUT0(1) = ZIN0(2);
    
    unit->fftsize_ = ZIN0(3); //so can set things up in constructor, rather than later on
    unit->mediansize_ = ZIN0(4); //default 17, may cause trouble otherwise? 
    
    //printf("MedianSeparation starting %d %d \n",unit->fftsize_,unit->mediansize_); 
    
    if(unit->mediansize_<3)
        unit->mediansize_ = 17; 
    
    unit->midpoint_ = unit->mediansize_/2; 
    
    
    
    unit->fftbins_ = (unit->fftsize_/2) +1; //actually /2 + 1 but polar form has separate packed dc and nyquist 
    
    unit->magnitudeposition_= 0; 
    unit->phaseposition_= 0; 
    
    //separate storage
    unit->magnitudes_ = (float *) RTAlloc(unit->mWorld, sizeof(float)* unit->mediansize_ * unit->fftbins_);
    
    
    unit->phases_ = (float *) RTAlloc(unit->mWorld, sizeof(float)* (unit->midpoint_+1) * unit->fftbins_); //only store half data since only need phases for midpoint about to output; this necessitates holding midpoint+1 values (to include just arrived)
    
    //float * data_; //2D grid
    
    //zero out all magnitudes and phases 
    
    int i; 
    
    for (i=0; i<unit->mediansize_ * unit->fftbins_; ++i)
        unit->magnitudes_[i] = 0.0f; 
    
    for (i=0; i<(unit->midpoint_+1) * unit->fftbins_; ++i)
        unit->phases_[i] = 0.0f;
    
    
    unit->collection_ = (float *) RTAlloc(unit->mWorld, sizeof(float)* unit->mediansize_); //reusable array for sorting and finding median
    unit->horizontalmedians_ = (float *) RTAlloc(unit->mWorld, sizeof(float)* unit->fftbins_); 
    unit->verticalmedians_ = (float *) RTAlloc(unit->mWorld, sizeof(float)* unit->fftbins_);
    
    //need to go a step at a time over the vertical, horizontal sort and the eventual output (so takes four blocks to calculate, FFT must be at least 256)
    unit->amortisationstep_=0; 
    
	SETCALC(MedianSeparation_next);
	
    
    
}
void Dshuf_next(Dshuf *unit, int inNumSamples)
{
	// Print("->Dshuf_next %d\n", inNumSamples);
	if (inNumSamples) {
		//Print("   unit->m_repeats %d\n", unit->m_repeats);
		if (unit->m_repeats < 0.) {
			float x = DEMANDINPUT_A(0, inNumSamples);
			unit->m_repeats = sc_isnan(x) ? 0.f : floor(x + 0.5f);
		}
		while (true) {
			//Print("   unit->m_index %d   unit->m_repeatCount %d\n", unit->m_index, unit->m_repeatCount);
			if (unit->m_index >= (unit->mNumInputs - 1)) {
				unit->m_index = 0;
				unit->m_repeatCount++;
			}
			if (unit->m_repeatCount >= unit->m_repeats) {
				//Print("done\n");
				OUT0(0) = NAN;
				unit->m_index = 0;
				return;
			}
			if (ISDEMANDINPUT(unit->m_indices[unit->m_index])) {
				if (unit->m_needToResetChild) {
					unit->m_needToResetChild = false;
					RESETINPUT(unit->m_indices[unit->m_index]);
				}
				float x = DEMANDINPUT_A(unit->m_indices[unit->m_index], inNumSamples);

				if (sc_isnan(x)) {
					unit->m_index++;
					unit->m_needToResetChild = true;
				} else {
					OUT0(0) = x;
					return;
				}
			} else {
				OUT0(0) = DEMANDINPUT_A(unit->m_indices[unit->m_index], inNumSamples);
				//Print("   unit->m_index %d   OUT0(0) %g\n", unit->m_index, OUT0(0));
				unit->m_index++;
				unit->m_needToResetChild = true;
				return;
			}
		}
	} else {
		unit->m_repeats = -1.f;
		unit->m_repeatCount = 0;
		unit->m_needToResetChild = true;
		unit->m_index = 0;
		Dshuf_scramble(unit);
	}
}
void Donce_next(Donce *unit, int inNumSamples)
{
	if (inNumSamples) {
		if (unit->m_bufcounter == unit->mWorld->mBufCounter) {
			OUT0(0) = unit->m_prev;
		} else {
			float x = DEMANDINPUT_A(0, inNumSamples);
			unit->m_prev = x;
			OUT0(0) = x;
		}
	} else {
		RESETINPUT(0);
	}
}
Exemplo n.º 14
0
cam_flash_err_e CFlashSequencer::cancelSeq() {
    IN0("\n");
    i32_remSteps = 0;
    cam_flash_err_e cam_err = mController->unConfigure();
    if (cam_err != CAM_FLASH_ERR_NONE) {
        MSG0("Error: Could not un-configure the flash driver.\n");
        OUT0("\n");
        return CAM_FLASH_ERR_DRIVER;
    }
    // WARNING: this is valid only if the end of sequence callback implementation can be called from the cancelSeq() caller stack.
    sigTimer();
    OUT0("\n");
    return CAM_FLASH_ERR_NONE;
}
void OpenMax_Component_ConfigCB::setConfig(t_sint32 index, void * opaque_ptr)
//*************************************************************************************************************
{
	IN0("\n");
	mOMXProxy->setConfigFromProcessing((OMX_INDEXTYPE)index, (OMX_PTR)opaque_ptr);
	OUT0("\n");
}
void openmax_processor::processEvent(void)
//*************************************************************************************************************
{// fsm.component.component.type interface posteven method processEvent
	IN0("\n");
	Component::processEvent();
	OUT0("\n");
}
void openmax_processor::sendCommand(OMX_COMMANDTYPE cmd, t_uword param)
//*************************************************************************************************************
{ // fsm.component.component.type interface sendcommand method sendCommand
	IN0("\n");
	Component::sendCommand(cmd, param) ;
	OUT0("\n");
}
void openmax_processor::setParam(t_sint32 portIndex, t_sint32 fifoSize, t_sint32 direction, t_sint32 buffSupplierType, t_sint32 correspondingPortIndex, t_sint32 width, t_sint32 height, t_sint32 colorFormat, t_sint32 stride)
//*************************************************************************************************************
{ //DEfault initialisation of the ports
	IN0("\n");
	MSG4("portIndex %ld, fifoSize %ld, direction %ld, buffSupplierType%ld\n", portIndex, fifoSize, direction, buffSupplierType);
	MSG4("correspondingPortIndex %ld, width %ld, height %ld, colorFormat %ld\n", correspondingPortIndex, width, height, colorFormat);
	MSG1("stride %ld\n", stride);
	if(portIndex >= (int)GetNbPorts()) // Sanity check
	{
		MSG0("ERROR in setParam OMX_ErrorBadParameter\n");
		OUTR(" Error", OMX_ErrorBadParameter);
		return;
	}

	portInformation*pInfo= GetPortInfo(portIndex);
	if (pInfo)
	{
		pInfo->fifoSize      = fifoSize;
		pInfo->width         = width;
		pInfo->height        = height;
		pInfo->colorFormat   = (OMX_COLOR_FORMATTYPE)colorFormat;
		pInfo->omxPortIndex  = portIndex;
		pInfo->stride        = stride;
		pInfo->direction     = (OMX_DIRTYPE) direction;
		pInfo->bufferSupplier= buffSupplierType;
		pInfo->omxPortIndex  = correspondingPortIndex;
	}
	OUT0("\n");
}
Exemplo n.º 19
0
void AnnBasic_next(AnnBasic *unit, int numSamples)
{
    unsigned int in_c = sigInCount(unit);
    unsigned int out_c = sigOutCount(unit);

    AnnDef *def = Ann_GetAnnDef<true>( unit->ann_i, sigInCount(unit), sigOutCount(unit) );
    if(!def) {
        SETCALC( AnnBasic_idle );
        AnnBasic_idle(unit, numSamples);
        return;
    }

    struct fann *ann = def->_ann;
    float *in = unit->inputs;

    for( int i = 0; i < in_c; ++i )
    {
        in[i] = IN0(IN_SIG + i);
    }

    fann_type *out = fann_run( ann, in );

    for( int i = 0; i < out_c; ++i )
    {
        OUT0(i) = out[i];
    }
}
OMX_ERRORTYPE MPEG4Enc_ArmNmf_ProcessingComponent::codecConfigure()
{
	IN0("");

    OUT0("");
    return OMX_ErrorNone;
}
int openmax_processor::ReportError(int error, const char *format, ...)
//*************************************************************************************************************
{
	IN0("\n");
	if (error == eError_NoError)
		return(0);
	if (m_LastError ==eError_NoError)
		m_LastError=error;  //Memorize the error
	va_list list;
	va_start(list, format);

#ifndef __SYMBIAN32__
	fprintf (stderr, "\n<Error-%s: %d=0x%X> ", m_pName, error, error);
	vfprintf(stderr, format, list);
#else
	static char ErrorString[1024];
	vsprintf(ErrorString, format, list);
	RDebug::Printf("\n<Error-%s: %d=0x%X: %s>", m_pName, error, error, ErrorString);
#endif
	va_end(list);
	//::ReportError(error, format); // Call global

	OUT0("\n");
	return(0);
}
void Demand_Ctor(Demand *unit)
{
	//Print("Demand_Ctor\n");
	if (INRATE(0) == calc_FullRate) {
		if (INRATE(1) == calc_FullRate) {
			SETCALC(Demand_next_aa);
		} else {
			SETCALC(Demand_next_ak);
		}
	} else {
		if (INRATE(1) == calc_FullRate) {
			SETCALC(Demand_next_ka);
		} else {
			SETCALC(Demand_next_aa);
		}
	}

	unit->m_prevout = (float*) RTAlloc(unit->mWorld, unit->mNumOutputs * sizeof(float));
	unit->m_out = (float**) RTAlloc(unit->mWorld, unit->mNumOutputs * sizeof(float*));

	//Print("Demand_Ctor calc %08X\n", unit->mCalcFunc);
	unit->m_prevtrig = 0.f;
	unit->m_prevreset = 0.f;
	for (int i=0; i<unit->mNumOutputs; ++i) {
		unit->m_prevout[i] = 0.f;
		OUT0(i) = 0.f;
	}
}
Exemplo n.º 23
0
void CFlashSequencer::sigTimer() {
    IN0("\n");
    cam_flashSeq_atom_t const *pSeq = NULL;
    if (i32_remSteps > 0) { // Some flash action still to be done
        switch (curSeq) {
            default:
            case NONE_SEQ:
                DBGT_ERROR("CFlashSequencer::sigTimer - Error: NONE_SEQ cannot be ticked.\n");
                OstTraceFiltStatic0(TRACE_ERROR, "CFlashSequencer::sigTimer - Error: NONE_SEQ cannot be ticked.", (mTraceObject));
                break;
            case RED_EYE_REMOVAL_SEQ:
                pSeq = &a_RER_sequence[sizeof(a_RER_sequence) / sizeof(cam_flashSeq_atom_t) - i32_remSteps];
                break;
            case PRIVACY_SEQ:
                pSeq = &a_PI_sequence[sizeof(a_PI_sequence) / sizeof(cam_flashSeq_atom_t) - i32_remSteps];
                break; 
        }
        if (NULL != pSeq) {
            doAtom(pSeq);
        }
        i32_remSteps--;
    } else {            // End of sequence: call the user back if requested, and clean the request.
        MSG1("CFlashSequencer::sigTimer - Sequence %d completed.\n", curSeq);
        curSeq = NONE_SEQ;
        if (mpClbk != NULL) {
            mpClbk(mctxtHnd);
            mpClbk = NULL;
            mctxtHnd = NULL;
        }
    }
    OUT0("\n");
}
void Dreset_next(Dreset *unit, int inNumSamples)
{
	if (inNumSamples) {
		float x = DEMANDINPUT_A(0, inNumSamples);
		float reset = DEMANDINPUT_A(1, inNumSamples);
		if(sc_isnan(x)) {
			OUT0(0) = NAN;
			return;
		}
		if(reset > 0.0 && (unit->prev_reset <= 0.0)) { RESETINPUT(0); }
		unit->prev_reset = reset;
		OUT0(0) = x;
	} else {
		RESETINPUT(0);
	}
}
void Dxrand_next(Dxrand *unit, int inNumSamples)
{
	if (inNumSamples) {
		if (unit->m_repeats < 0.) {
			float x = DEMANDINPUT_A(0, inNumSamples);
			unit->m_repeats = sc_isnan(x) ? 0.f : floor(x + 0.5f);
		}
		while (true) {
			if (unit->m_index >= unit->mNumInputs) {
				unit->m_index = 1;
			}
			if (unit->m_repeatCount >= unit->m_repeats) {
				OUT0(0) = NAN;
				return;
			}
			if (ISDEMANDINPUT(unit->m_index)) {
				if (unit->m_needToResetChild) {
					unit->m_needToResetChild = false;
					RESETINPUT(unit->m_index);
				}
				float x = DEMANDINPUT_A(unit->m_index, inNumSamples);
				if (sc_isnan(x)) {
					int newindex = unit->mParent->mRGen->irand(unit->mNumInputs - 2) + 1;
					unit->m_index = newindex < unit->m_index ? newindex : newindex + 1;
					unit->m_repeatCount++;
					unit->m_needToResetChild = true;
				} else {
					OUT0(0) = x;
					return;
				}
			} else {
				OUT0(0) = DEMANDINPUT_A(unit->m_index, inNumSamples);
				int newindex = unit->mParent->mRGen->irand(unit->mNumInputs - 2) + 1;
				unit->m_index = newindex < unit->m_index ? newindex : newindex + 1;
				unit->m_repeatCount++;
				unit->m_needToResetChild = true;
				return;
			}
		}
	} else {
		unit->m_repeats = -1.f;
		unit->m_repeatCount = 0;
		unit->m_needToResetChild = true;
		int newindex = unit->mParent->mRGen->irand(unit->mNumInputs - 2) + 1;
		unit->m_index = newindex < unit->m_index ? newindex : newindex + 1;
	}
}
Exemplo n.º 26
0
cam_flash_err_e CFlashController::unConfigure()
{
    IN0("\n");
   if (mFlashDriver == NULL) {
        DBGT_ERROR("unConfigure: No valid flash driver.\n");
        OstTraceFiltStatic0(TRACE_ERROR, "unConfigure: No valid flash driver.", (mTraceObject));
        DBC_ASSERT(0);
        OUT0("\n");
        return CAM_FLASH_ERR_BAD_PRECONDITION;
    }
    if (mDriverSupportedFlashModes == 0)
    {
        OUT0("\n");
        return CAM_FLASH_ERR_NONE;
    }
    TFlashReturnCode driver_err = FLASH_RET_NONE;

    // User-controlled modes: switch off
    if ((FLASH_MODE_INDICATOR    == mFlashDriverMode)
     || (FLASH_MODE_AF_ASSISTANT == mFlashDriverMode)
     || (FLASH_MODE_VIDEO_LED    == mFlashDriverMode))
    {
        driver_err = mFlashDriver->Strobe(mFlashDriverMode, false, mFlashDriverCamId);
        if (driver_err != FLASH_RET_NONE) {
            DBGT_ERROR("unConfigure: Strobe error;\n");
            OstTraceFiltStatic0(TRACE_ERROR, "unConfigure: Strobe error;", (mTraceObject));
	    OUT0("\n");
            return CAM_FLASH_ERR_DRIVER;
        }
    }

    // Any mode: un-configure
    if (FLASH_MODE_NONE != mFlashDriver)
    {
        driver_err = mFlashDriver->EnableFlashMode(FLASH_MODE_NONE, NULL, NULL, mFlashDriverCamId);
        if (driver_err != FLASH_RET_NONE)
        {
            DBGT_ERROR("unConfigure: EnableFlashMode error;\n");
            OstTraceFiltStatic0(TRACE_ERROR, "unConfigure: EnableFlashMode error;", (mTraceObject));
	    OUT0("\n");
            return CAM_FLASH_ERR_DRIVER;
        }
        mFlashDriverMode = FLASH_MODE_NONE;
    }
    OUT0("\n");
    return CAM_FLASH_ERR_NONE;
}
Exemplo n.º 27
0
void MX_GPIO_Init(void)
{

  SET_BIT(RCC->AHBENR, RCC_AHBENR_GPIOAEN | RCC_AHBENR_GPIOBEN | RCC_AHBENR_GPIOFEN);
  SET_BIT(RCC->APB2ENR, RCC_APB2ENR_SYSCFGEN);
  READ_BIT(RCC->AHBENR, 1); //Delay

  OUT1(OneWire_GPIO_Port, ePin::P0);
  OUT0(REL2_GPIO_Port, ePin::P0);
  OUT0(REL1_GPIO_Port, ePin::P1);
  OUT0(P_GPIO_Port, ePin::P6);

  /*Configure GPIO pin : OneWire_Pin */
  //GPIOF->AFR[0] = GPIOF->AFR[1]=0;
  GPIOF->MODER = GPIO_MODER_MODER0_0; //00=Input, 01=Output, 10=AF, 11=Analog
  //GPIOF->OSPEEDR=GPIO_SPEED_LOW;
  GPIOF->OTYPER=GPIO_OTYPER_OT_0; //0=PuPu, 1=OpenDrain
  //GPIOF->PUPDR = GPIO_PUPDR_PUPDR0_0; //00=no, 01=Up, 10=downPullup wird zentral gemacht
  SYSCFG->EXTICR[0]=SYSCFG_EXTICR1_EXTI0_PF;
  EXTI->IMR=EXTI_IMR_MR0;
  EXTI->RTSR=EXTI_RTSR_TR0;
  EXTI->FTSR=EXTI_FTSR_TR0;

  /*Configure GPIO A*/
  GPIOA->MODER=
		  BMODE(REL2_Pin, ePinMode::OUT) |
		  BMODE(REL1_Pin, ePinMode::OUT) |
		  BMODE(ePin::P2, ePinMode::ALT) |
		  BMODE(ePin::P3, ePinMode::ALT) |
		  BMODE(IO1_Pin, ePinMode::OUT) |
		  BMODE(I1_Pin, ePinMode::INP) |
		  BMODE(P_Pin, ePinMode::OUT) |
		  BMODE(I2_Pin, ePinMode::INP) |
		  BMODE(ePin::P9, ePinMode::ALT) |
		  BMODE(ePin::P10, ePinMode::ALT) |
		  BMODE(ePin::P13, ePinMode::ALT) |
		  BMODE(ePin::P14, ePinMode::ALT)
		  ;
  GPIOA->PUPDR=0x24000000 | BPULL(I1_Pin, ePull::PULLUP) | BPULL(I2_Pin, ePull::PULLUP);

  GPIOB->MODER=BMODE(ePin::P1, ePinMode::INP);
  /* EXTI interrupt init*/
  HAL_NVIC_SetPriority(EXTI0_1_IRQn, 0, 0);
  HAL_NVIC_EnableIRQ(EXTI0_1_IRQn);

}
EXPORT_C  VFM_NmfMpc_ProcessingComponent::~VFM_NmfMpc_ProcessingComponent()
{
	IN0("");
	if(mPortPoolid){
		delete[] mPortPoolid;
	}
	OUT0("");
}
void openmax_processor::start(void)
//*************************************************************************************************************
{ //This method is called during Idle to Execute transition
	IN0("\n");
	// proc_config_FILTER.nAlgoType = 0; // no algo selected
	// Don't call m_fn_UserOpen here because port's parameters aren't ready
	OUT0("\n");
}
Exemplo n.º 30
0
void Dneuromodule_end(Dneuromodule *unit)
{

    for(int i =	0; i < unit->m_size; i++) {
        OUT0(i) = NAN;
    }

}