void GCamera::SelectAOI() { if(!m_IsOpened) return; SelectFullAOI(); ImageProcessor()->AoiSelector()->open(); }
void GCamera::LatterInitialization() { m_IsOpened = OpenCamera(); if(!m_IsOpened) return; if(ImageProcessor()) { disconnect(ImageProcessor(), SIGNAL(OutputImageDouble(GImageDouble)), this, SLOT(NotifyImageSent())); disconnect(ImageProcessor(), SIGNAL(ProcessorFailed()), this, SLOT(NotifyImageFailed())); connect(ImageProcessor(), SIGNAL(OutputImageDouble(GImageDouble)), this, SLOT(NotifyImageSent()), Qt::QueuedConnection); connect(ImageProcessor(), SIGNAL(ProcessorFailed()), this, SLOT(NotifyImageFailed()), Qt::QueuedConnection); } ChangeExposureTime(m_Expo_ms); ChangeGainFactor(m_Gain); emit CapabilitiesMayHaveChanged(); GDevice::LatterInitialization(); }
void GCamera::InterpretSettings( QSettings& fromQsettings ) { GDevice::InterpretSettings(fromQsettings); if(!SupportsExternalTrigger()) m_HardwareTrigger = false; // processor fromQsettings.beginGroup("Processor"); //TOGO: false just for compatibility with previous version ImageProcessor()->ReadDeviceSettings(fromQsettings, false); // no display of the AOI for the camera ImageProcessor()->ShowAOI(false); fromQsettings.endGroup(); fromQsettings.beginGroup("Acquire"); LatterReadCurrentGroup(fromQsettings); fromQsettings.endGroup(); }
void GCamera::PopulateSettings( QSettings& inQsettings ) { GDevice::PopulateSettings(inQsettings); inQsettings.beginGroup("Acquire"); m_DoAquireContinuously.SaveDeviceSettings(inQsettings); inQsettings.endGroup(); // processor inQsettings.beginGroup("Processor"); //TOGO: false just for compatibility with previous version ImageProcessor()->SaveDeviceSettings(inQsettings, false); inQsettings.endGroup(); }
QRect GCamera::ChangeSensorAOI( QRect AoiRect ) { if(!m_IsOpened) return QRect(); QRect oldAoi = SensorAOI(); if(oldAoi == AoiRect) return oldAoi; QRect usedRect = SetSensorAOI(AoiRect); if(oldAoi != usedRect) ImageProcessor()->SetAoiRect(usedRect); return usedRect; }
// Called by the framework to process frame data TFrameState CPngReadCodec::ProcessFrameL(TBufPtr8& aSrc) { CImageProcessor*const imageProc = ImageProcessor(); CImageProcessor*const maskProc = MaskProcessor(); TUint8* startDataPtr = const_cast<TUint8*>(aSrc.Ptr()); TUint8* dataPtr = startDataPtr; const TUint8* dataPtrLimit = dataPtr + aSrc.Length(); while (dataPtr < dataPtrLimit) { // If at the end of a PNG chunk if (iChunkBytesRemaining == 0) { if (iChunkId == KPngIDATChunkId) // Need to skip IDAT chunk CRCs { if (dataPtr + KPngChunkCRCSize + KPngChunkLengthSize + KPngChunkIdSize > dataPtrLimit) break; dataPtr += KPngChunkCRCSize; } else { if (dataPtr + KPngChunkLengthSize + KPngChunkIdSize > dataPtrLimit) break; } iChunkBytesRemaining = PtrReadUtil::ReadBigEndianUint32Inc(const_cast<const TUint8*&>(dataPtr)); iChunkId = TPtr8(dataPtr,KPngChunkIdSize,KPngChunkIdSize); dataPtr += KPngChunkIdSize; } // Process an image data chunk if (iChunkId == KPngIDATChunkId) DoProcessDataL(const_cast<const TUint8*&>(dataPtr),dataPtrLimit); // Process an END chunk -- frame is complete else if (iChunkId == KPngIENDChunkId) { iDecompressor->InflateL(); imageProc->FlushPixels(); if (maskProc) maskProc->FlushPixels(); return EFrameComplete; } else // Skip other chunks { TInt bytesLeft = dataPtrLimit - dataPtr; if (bytesLeft >= iChunkBytesRemaining + KPngChunkCRCSize) { dataPtr += iChunkBytesRemaining + KPngChunkCRCSize; iChunkBytesRemaining = 0; } else { dataPtr += bytesLeft; iChunkBytesRemaining -= bytesLeft; } } } aSrc.Shift(dataPtr - startDataPtr); return EFrameIncomplete; }