Author: korli Date: 2010-04-12 22:34:04 +0200 (Mon, 12 Apr 2010) New Revision: 36198 Changeset: http://dev.haiku-os.org/changeset/36198/haiku Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/AddOn.cpp haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/AddOn.h haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamBufferedFilterInterface.cpp haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamBufferedFilterInterface.h haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamBufferingDeframer.cpp haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamBufferingDeframer.h haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamColorSpaceTransform.cpp haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamColorSpaceTransform.h haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamDeframer.cpp haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamDeframer.h haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamDevice.cpp haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamFilterInterface.cpp haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamFilterInterface.h haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamRoster.cpp haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamRoster.h haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamSensor.cpp haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamSensor.h haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamStreamingDeframer.cpp haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamStreamingDeframer.h haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/Producer.cpp haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/Producer.h haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/addons/NW80xCamDevice.h haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/addons/quickcam/QuickCamDevice.h haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/addons/sonix/SonixCamDevice.cpp haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/addons/sonix/SonixCamDevice.h haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/addons/uvc/USB_video.h haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/addons/uvc/UVCCamDevice.cpp haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/addons/uvc/UVCCamDevice.h haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/sensors/hdcs1000.cpp haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/sensors/hv7131e1.cpp Log: partial clean up Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/AddOn.cpp =================================================================== --- haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/AddOn.cpp 2010-04-12 20:30:49 UTC (rev 36197) +++ haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/AddOn.cpp 2010-04-12 20:34:04 UTC (rev 36198) @@ -48,19 +48,19 @@ } -status_t +status_t WebCamMediaAddOn::InitCheck(const char **out_failure_text) { if (fInitStatus < B_OK) { *out_failure_text = "No cameras attached"; return fInitStatus; } - + return B_OK; } -int32 +int32 WebCamMediaAddOn::CountFlavors() { PRINT((CH "()" CT)); @@ -78,10 +78,10 @@ /* - * The pointer to the flavor received only needs to be valid between + * The pointer to the flavor received only needs to be valid between * successive calls to BMediaAddOn::GetFlavorAt(). */ -status_t +status_t WebCamMediaAddOn::GetFlavorAt(int32 n, const flavor_info **out_info) { PRINT((CH "(%d, ) roster %p is %lx" CT, n, fRoster, fInitStatus)); @@ -191,7 +191,7 @@ BMediaAddOn * -make_media_addon(image_id imid) +make_media_addon(image_id id) { - return new WebCamMediaAddOn(imid); + return new WebCamMediaAddOn(id); } Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/AddOn.h =================================================================== --- haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/AddOn.h 2010-04-12 20:30:49 UTC (rev 36197) +++ haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/AddOn.h 2010-04-12 20:34:04 UTC (rev 36198) @@ -14,12 +14,11 @@ class CamRoster; class CamDevice; -class WebCamMediaAddOn : public BMediaAddOn -{ +class WebCamMediaAddOn : public BMediaAddOn { public: WebCamMediaAddOn(image_id imid); virtual ~WebCamMediaAddOn(); - + virtual status_t InitCheck(const char **out_failure_text); virtual int32 CountFlavors(); @@ -44,7 +43,7 @@ status_t CameraAdded(CamDevice* device); status_t CameraRemoved(CamDevice* device); void FillDefaultFlavorInfo(flavor_info* info); - + private: uint32 fInternalIDCounter; status_t fInitStatus; Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamBufferedFilterInterface.cpp =================================================================== --- haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamBufferedFilterInterface.cpp 2010-04-12 20:30:49 UTC (rev 36197) +++ haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamBufferedFilterInterface.cpp 2010-04-12 20:34:04 UTC (rev 36198) @@ -9,8 +9,8 @@ CamBufferedFilterInterface::CamBufferedFilterInterface(CamDevice *device, bool allowWrite) -: CamFilterInterface(device), -fAllowWrite(allowWrite) + : CamFilterInterface(device), + fAllowWrite(allowWrite) { } Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamBufferedFilterInterface.h =================================================================== --- haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamBufferedFilterInterface.h 2010-04-12 20:30:49 UTC (rev 36197) +++ haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamBufferedFilterInterface.h 2010-04-12 20:34:04 UTC (rev 36198) @@ -10,8 +10,7 @@ #include <interface/Rect.h> #include "CamFilterInterface.h" -class CamBufferedFilterInterface : public CamFilterInterface -{ +class CamBufferedFilterInterface : public CamFilterInterface { public: CamBufferedFilterInterface(CamDevice *device, bool allowWrite); virtual ~CamBufferedFilterInterface(); Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamBufferingDeframer.cpp =================================================================== --- haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamBufferingDeframer.cpp 2010-04-12 20:30:49 UTC (rev 36197) +++ haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamBufferingDeframer.cpp 2010-04-12 20:34:04 UTC (rev 36198) @@ -3,7 +3,7 @@ * Distributed under the terms of the MIT License. */ -/* +/* * buffer based deframer * buffers all packet until it finds a complete frame. * simpler than StreamingDeframer, but doesn't work any better @@ -22,8 +22,8 @@ CamBufferingDeframer::CamBufferingDeframer(CamDevice *device) -: CamDeframer(device), -fInputBuffIndex(0) + : CamDeframer(device), + fInputBuffIndex(0) { } @@ -67,30 +67,30 @@ break; if (!fDevice->ValidateStartOfFrameTag(b + s, fSkipSOFTags)) continue; - + PRINT((CH ": SOF[%d] at offset %d" CT, which, s)); PRINT((CH ": SOF: ... %02x %02x %02x %02x %02x %02x" CT, b[s+6], b[s+7], b[s+8], b[s+9], b[s+10], b[s+11])); - + for (e = s + fSkipSOFTags + fMinFrameSize; - ((e <= (int)(s + fSkipSOFTags + fMaxFrameSize)) && - (e < l) && ((i = 0*FindEOF(b + e, l - e, &which)) > -1)); + ((e <= (int)(s + fSkipSOFTags + fMaxFrameSize)) && + (e < l) && ((i = 0*FindEOF(b + e, l - e, &which)) > -1)); e++) { e += i; - + //PRINT((CH ": EOF[%d] at offset %d" CT, which, s)); if (!fDevice->ValidateEndOfFrameTag(b + e, fSkipEOFTags, e - s - fSkipSOFTags)) continue; - - - + + + PRINT((CH ": SOF= ... %02x %02x %02x %02x %02x %02x" CT, b[s+6], b[s+7], b[s+8], b[s+9], b[s+10], b[s+11])); - + // we have one! s += fSkipSOFTags; - + // fill it fCurrentFrame->Write(b + s, e - s); - + // queue it BAutolock f(fLocker); PRINT((CH ": Detaching a frame (%d bytes, %d to %d / %d)" CT, (size_t)fCurrentFrame->Position(), s, e, l)); @@ -101,7 +101,7 @@ fCurrentFrame = NULL; // discard the frame and everything before it. DiscardFromInput(e + fSkipEOFTags); - + return size; } } @@ -126,4 +126,3 @@ fInputBuffIndex = next; return size; } - Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamBufferingDeframer.h =================================================================== --- haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamBufferingDeframer.h 2010-04-12 20:30:49 UTC (rev 36197) +++ haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamBufferingDeframer.h 2010-04-12 20:34:04 UTC (rev 36198) @@ -7,8 +7,7 @@ #include "CamDeframer.h" -class CamBufferingDeframer : public CamDeframer -{ +class CamBufferingDeframer : public CamDeframer { public: CamBufferingDeframer(CamDevice *device); virtual ~CamBufferingDeframer(); Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamColorSpaceTransform.cpp =================================================================== --- haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamColorSpaceTransform.cpp 2010-04-12 20:30:49 UTC (rev 36197) +++ haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamColorSpaceTransform.cpp 2010-04-12 20:34:04 UTC (rev 36198) @@ -27,23 +27,23 @@ : fInitStatus(B_NO_INIT), fVideoFrame() { - + } CamColorSpaceTransform::~CamColorSpaceTransform() { - + } - + status_t CamColorSpaceTransform::InitCheck() { return fInitStatus; } - + const char * CamColorSpaceTransform::Name() { @@ -68,12 +68,9 @@ CamColorSpaceTransform * CamColorSpaceTransform::Create(const char *name) { - int i; - for (i = 0; kTransformTable[i].name; i++) { + for (int i = 0; kTransformTable[i].name; i++) { if (!strcmp(kTransformTable[i].name, name)) return kTransformTable[i].instfunc(); } return NULL; } - - Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamColorSpaceTransform.h =================================================================== --- haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamColorSpaceTransform.h 2010-04-12 20:30:49 UTC (rev 36197) +++ haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamColorSpaceTransform.h 2010-04-12 20:34:04 UTC (rev 36198) @@ -9,22 +9,21 @@ #include <Rect.h> // This class represents the camera's (cmos or whatever) sensor chip -class CamColorSpaceTransform -{ - public: +class CamColorSpaceTransform { + public: CamColorSpaceTransform(); virtual ~CamColorSpaceTransform(); virtual status_t InitCheck(); - + virtual const char* Name(); virtual color_space OutputSpace(); - + virtual status_t SetVideoFrame(BRect rect); virtual BRect VideoFrame() const { return fVideoFrame; }; - + static CamColorSpaceTransform *Create(const char *name); - + protected: status_t fInitStatus; BRect fVideoFrame; Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamDeframer.cpp =================================================================== --- haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamDeframer.cpp 2010-04-12 20:30:49 UTC (rev 36197) +++ haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamDeframer.cpp 2010-04-12 20:34:04 UTC (rev 36198) @@ -13,19 +13,19 @@ CamDeframer::CamDeframer(CamDevice *device) -: CamFilterInterface(device), -fDevice(device), -fState(ST_SYNC), -fFrameSem(B_ERROR), -fLocker("CamDeframer Framelist lock", true), -fSOFTags(NULL), -fEOFTags(NULL), -fNumSOFTags(0), -fNumEOFTags(0), -fLenSOFTags(0), -fLenEOFTags(0), -fSkipSOFTags(0), -fSkipEOFTags(0) + : CamFilterInterface(device), + fDevice(device), + fState(ST_SYNC), + fFrameSem(B_ERROR), + fLocker("CamDeframer Framelist lock", true), + fSOFTags(NULL), + fEOFTags(NULL), + fNumSOFTags(0), + fNumEOFTags(0), + fLenSOFTags(0), + fLenEOFTags(0), + fSkipSOFTags(0), + fSkipEOFTags(0) { fMinFrameSize = fDevice->MinRawFrameSize(); fMaxFrameSize = fDevice->MaxRawFrameSize(); @@ -217,4 +217,3 @@ { return new CamFrame(); } - Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamDeframer.h =================================================================== --- haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamDeframer.h 2010-04-12 20:30:49 UTC (rev 36197) +++ haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamDeframer.h 2010-04-12 20:34:04 UTC (rev 36198) @@ -22,8 +22,7 @@ /* should have a real Frame class someday */ -class CamFrame : public BMallocIO -{ +class CamFrame : public BMallocIO { public: CamFrame() : BMallocIO() { fStamp = system_time(); }; virtual ~CamFrame() {}; @@ -31,8 +30,7 @@ bigtime_t fStamp; }; -class CamDeframer : public CamFilterInterface -{ +class CamDeframer : public CamFilterInterface { public: CamDeframer(CamDevice *device); virtual ~CamDeframer(); Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamDevice.cpp =================================================================== --- haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamDevice.cpp 2010-04-12 20:30:49 UTC (rev 36197) +++ haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamDevice.cpp 2010-04-12 20:34:04 UTC (rev 36198) @@ -78,16 +78,16 @@ if (fDeframer) delete fDeframer; } - + status_t CamDevice::InitCheck() { return fInitStatus; } - -bool + +bool CamDevice::Matches(BUSBDevice* _device) { return (_device) == (fDevice); @@ -182,12 +182,12 @@ if (err < B_OK) return err; fTransferEnabled = false; - + // the thread itself might Lock() fLocker.Unlock(); wait_for_thread(fPumpThread, &err); fLocker.Lock(); - + return B_OK; } @@ -233,12 +233,14 @@ fFirstParameterID = index; } + status_t CamDevice::GetParameterValue(int32 id, bigtime_t *last_change, void *value, size_t *size) { return B_BAD_VALUE; } + status_t CamDevice::SetParameterValue(int32 id, bigtime_t when, const void *value, size_t size) { @@ -246,7 +248,6 @@ } - size_t CamDevice::MinRawFrameSize() { @@ -395,6 +396,7 @@ return WriteIIC(address, &data, 1); } + ssize_t CamDevice::WriteIIC16(uint8 address, uint16 data) { @@ -406,8 +408,6 @@ } - - ssize_t CamDevice::ReadIIC(uint8 address, uint8 *data) { @@ -467,7 +467,7 @@ BString name; sensors.CopyInto(name, i, sensors.FindFirst(',', i) - i); PRINT((CH ": probing sensor '%s'..." CT, name.String())); - + fSensor = CreateSensor(name.String()); if (fSensor) { err = fSensor->Probe(); @@ -523,7 +523,7 @@ #ifndef DEBUG_DISCARD_INPUT len = fBulkIn->BulkTransfer(fBuffer, fBufferLen); #endif - + //PRINT((CH ": got %ld bytes" CT, len)); #ifdef DEBUG_WRITE_DUMP write(fDumpFD, fBuffer, len); @@ -561,7 +561,7 @@ #ifndef DEBUG_DISCARD_INPUT len = fIsoIn->IsochronousTransfer(fBuffer, fBufferLen, packetDescriptors, numPacketDescriptors); #endif - + //PRINT((CH ": got %d bytes" CT, len)); #ifdef DEBUG_WRITE_DUMP write(fDumpFD, fBuffer, len); @@ -618,7 +618,7 @@ if (length > GetDevice()->MaxEndpoint0PacketSize()) return EINVAL; ret = GetDevice()->ControlTransfer( - USB_REQTYPE_VENDOR | USB_REQTYPE_INTERFACE_OUT | dir, + USB_REQTYPE_VENDOR | USB_REQTYPE_INTERFACE_OUT | dir, request, value, index, length, data); return ret; } @@ -653,8 +653,7 @@ return EINVAL; bool supported = false; - for (uint32 i = 0; !supported && fSupportedDevices[i].vendor; i++) - { + for (uint32 i = 0; !supported && fSupportedDevices[i].vendor; i++) { if ((fSupportedDevices[i].desc.vendor != 0 && device->VendorID() != fSupportedDevices[i].desc.vendor) || (fSupportedDevices[i].desc.product != 0 @@ -711,4 +710,3 @@ { fSupportedDevices = devs; } - Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamFilterInterface.cpp =================================================================== --- haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamFilterInterface.cpp 2010-04-12 20:30:49 UTC (rev 36197) +++ haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamFilterInterface.cpp 2010-04-12 20:34:04 UTC (rev 36198) @@ -9,12 +9,12 @@ CamFilterInterface::CamFilterInterface(CamDevice *device) -: BPositionIO(), -fDevice(device), -fNextOfKin(NULL) + : BPositionIO(), + fDevice(device), + fNextOfKin(NULL) { fVideoFrame = BRect(0,0,-1,-1); - + } @@ -145,4 +145,3 @@ fVideoFrame = frame; return B_OK; } - Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamFilterInterface.h =================================================================== --- haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamFilterInterface.h 2010-04-12 20:30:49 UTC (rev 36197) +++ haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamFilterInterface.h 2010-04-12 20:34:04 UTC (rev 36198) @@ -10,8 +10,7 @@ #include <interface/Rect.h> class CamDevice; -class CamFilterInterface : public BPositionIO -{ +class CamFilterInterface : public BPositionIO { public: CamFilterInterface(CamDevice *device); virtual ~CamFilterInterface(); Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamRoster.cpp =================================================================== --- haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamRoster.cpp 2010-04-12 20:30:49 UTC (rev 36197) +++ haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamRoster.cpp 2010-04-12 20:34:04 UTC (rev 36198) @@ -18,7 +18,6 @@ #undef B_WEBCAM_MKINTFUNC - CamRoster::CamRoster(WebCamMediaAddOn* _addon) : BUSBRoster(), fLocker("WebcamRosterLock"), @@ -40,8 +39,7 @@ { PRINT((CH "()" CT)); status_t err; - for( int16 i = fCamerasAddons.CountItems()-1; i >= 0; --i ) - { + for (int16 i = fCamerasAddons.CountItems() - 1; i >= 0; --i ) { CamDeviceAddon *ao = (CamDeviceAddon *)fCamerasAddons.ItemAt(i); PRINT((CH ": checking %s for support..." CT, ao->BrandName())); err = ao->Sniff(_device); @@ -50,8 +48,7 @@ CamDevice *cam = ao->Instantiate(*this, _device); PRINT((CH ": found camera %s:%s!" CT, cam->BrandName(), cam->ModelName())); err = cam->InitCheck(); - if (err >= B_OK) - { + if (err >= B_OK) { fCameras.AddItem(cam); fAddon->CameraAdded(cam); return B_OK; @@ -66,11 +63,9 @@ CamRoster::DeviceRemoved(BUSBDevice* _device) { PRINT((CH "()" CT)); - for(int32 i = 0; i < fCameras.CountItems(); ++i) - { + for (int32 i = 0; i < fCameras.CountItems(); ++i) { CamDevice* cam = (CamDevice *)fCameras.ItemAt(i); - if( cam->Matches(_device) ) - { + if (cam->Matches(_device)) { PRINT((CH ": camera %s:%s removed" CT, cam->BrandName(), cam->ModelName())); fCameras.RemoveItem(i); fAddon->CameraRemoved(cam); @@ -78,9 +73,9 @@ //delete cam; cam->Unplugged(); return; - } + } } -} +} uint32 @@ -154,9 +149,9 @@ status_t err; CamDeviceAddon *addon; status_t (*get_webcam_addon_func)(WebCamMediaAddOn* webcam, CamDeviceAddon **addon); - for (index = 0; get_nth_image_symbol(fAddon->ImageID(), - index, NULL, NULL, - &sclass, + for (index = 0; get_nth_image_symbol(fAddon->ImageID(), + index, NULL, NULL, + &sclass, (void **)&get_webcam_addon_func) == B_OK; index++) { PRINT((CH ": got sym" CT)); // if (sclass != B_SYMBOL_TYPE_TEXT) Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamRoster.h =================================================================== --- haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamRoster.h 2010-04-12 20:30:49 UTC (rev 36197) +++ haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamRoster.h 2010-04-12 20:34:04 UTC (rev 36198) @@ -14,8 +14,7 @@ class WebCamMediaAddOn; class CamDeviceAddon; -class CamRoster : public BUSBRoster -{ +class CamRoster : public BUSBRoster { public: CamRoster(WebCamMediaAddOn* _addon); virtual ~CamRoster(); @@ -29,7 +28,7 @@ CamDevice* CameraAt(int32 index); - + private: status_t LoadInternalAddons(); status_t LoadExternalAddons(); Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamSensor.cpp =================================================================== --- haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamSensor.cpp 2010-04-12 20:30:49 UTC (rev 36197) +++ haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamSensor.cpp 2010-04-12 20:34:04 UTC (rev 36198) @@ -15,38 +15,38 @@ fLastParameterChanges(0), fCamDevice(_camera) { - + } CamSensor::~CamSensor() { - + } - + status_t CamSensor::Probe() { // default is to match by USB IDs return B_OK; } - + status_t CamSensor::InitCheck() { return fInitStatus; } - + status_t CamSensor::Setup() { return fInitStatus; } - + const char * CamSensor::Name() { @@ -130,9 +130,7 @@ CamSensor::ProbeByIICSignature(const uint8 *regList, const uint8 *matchList, size_t count) { - int i; - - for (i = 0; i < count; i++) { + for (int i = 0; i < count; i++) { uint8 value = 0; ssize_t len; len = Device()->ReadIIC8(regList[i], &value); Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamSensor.h =================================================================== --- haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamSensor.h 2010-04-12 20:30:49 UTC (rev 36197) +++ haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamSensor.h 2010-04-12 20:34:04 UTC (rev 36198) @@ -9,24 +9,23 @@ #include <Rect.h> // This class represents the camera's (cmos or whatever) sensor chip -class CamSensor -{ - public: +class CamSensor { + public: CamSensor(CamDevice *_camera); virtual ~CamSensor(); virtual status_t Probe(); // returns B_OK if found. virtual status_t InitCheck(); - + virtual status_t Setup(); - + virtual const char* Name(); - + virtual status_t StartTransfer(); virtual status_t StopTransfer(); virtual bool TransferEnabled() const { return fTransferEnabled; }; - + virtual bool IsBigEndian() const { return fIsBigEndian; }; virtual bool Use400kHz() const { return false; }; virtual bool UseRealIIC() const { return true; }; @@ -44,16 +43,16 @@ virtual void AddParameters(BParameterGroup *group, int32 &index); virtual status_t GetParameterValue(int32 id, bigtime_t *last_change, void *value, size_t *size); virtual status_t SetParameterValue(int32 id, bigtime_t when, const void *value, size_t size); - + CamDevice *Device(); - + #if 0 // generic register-like access virtual status_t WriteReg(uint16 address, uint8 *data, size_t count=1); virtual status_t WriteReg8(uint16 address, uint8 data); virtual status_t WriteReg16(uint16 address, uint16 data); virtual status_t ReadReg(uint16 address, uint8 *data, size_t count=1, bool cached=false); - + // I2C-like access virtual status_t WriteIIC(uint8 address, uint8 *data, size_t count=1); virtual status_t ReadIIC(uint8 address, uint8 *data); Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamStreamingDeframer.cpp =================================================================== --- haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamStreamingDeframer.cpp 2010-04-12 20:30:49 UTC (rev 36197) +++ haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamStreamingDeframer.cpp 2010-04-12 20:34:04 UTC (rev 36198) @@ -3,11 +3,11 @@ * Distributed under the terms of the MIT License. */ -/* +/* * stream based deframer * has a state machine and handles each packet separately. * much more complex than the buffering one, and I thought it didn't work, - * but since I fixed the rest it seems to be working even better without + * but since I fixed the rest it seems to be working even better without * taking the cpu over like the other one. */ @@ -21,7 +21,7 @@ CamStreamingDeframer::CamStreamingDeframer(CamDevice *device) -: CamDeframer(device) + : CamDeframer(device) { } @@ -56,7 +56,7 @@ // update in case resolution changed fMinFrameSize = fDevice->MinRawFrameSize(); fMaxFrameSize = fDevice->MaxRawFrameSize(); - + if (fInputBuff.Position()) { // residual data ? append to it fInputBuff.Write(buffer, size); @@ -67,13 +67,13 @@ } // whole buffer belongs to a frame, simple if ((fState == ST_FRAME) && (fCurrentFrame->Position() + bufsize < fMinFrameSize)) { - // no residual data, and + // no residual data, and fCurrentFrame->Write(buf, bufsize); fInputBuff.Seek(0LL, SEEK_SET); fInputBuff.SetSize(0); return size; } - + // waiting for a frame... if (fState == ST_SYNC) { i = 0; @@ -94,7 +94,7 @@ fState = ST_FRAME; } } - + // check for end of frame if (fState == ST_FRAME) { #if 0 @@ -122,7 +122,7 @@ i = bufsize; } PRINT((CH ": checking for EOF; bufsize=%d i=%d" CT, bufsize, i)); - + if (i + (int)fSkipEOFTags > bufsize) { // not enough room to check for EOF, leave it for next time end = i; i = -1; // don't detach yet @@ -178,10 +178,10 @@ fState = ST_SYNC; } } - - - + + + // put the remainder in input buff, discarding old data #if 0 fInputBuff.Seek(0LL, SEEK_SET); @@ -196,4 +196,3 @@ fInputBuff.SetSize(bufsize - end); return size; } - Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamStreamingDeframer.h =================================================================== --- haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamStreamingDeframer.h 2010-04-12 20:30:49 UTC (rev 36197) +++ haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/CamStreamingDeframer.h 2010-04-12 20:34:04 UTC (rev 36198) @@ -7,8 +7,7 @@ #include "CamDeframer.h" -class CamStreamingDeframer : public CamDeframer -{ +class CamStreamingDeframer : public CamDeframer { public: CamStreamingDeframer(CamDevice *device); virtual ~CamStreamingDeframer(); Modified: haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/Producer.cpp =================================================================== --- haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/Producer.cpp 2010-04-12 20:30:49 UTC (rev 36197) +++ haiku/trunk/src/add-ons/media/media-add-ons/usb_webcam/Producer.cpp 2010-04-12 20:34:04 UTC (rev 36198) @@ -49,11 +49,13 @@ //#define FIELD_RATE 29.97f #define FIELD_RATE 5.f + int32 VideoProducer::fInstances = 0; + VideoProducer::VideoProducer( BMediaAddOn *addon, CamDevice *dev, const char *name, int32 internal_id) - : BMediaNode(name), + : BMediaNode(name), BMediaEventLooper(), BBufferProducer(B_MEDIA_RAW_VIDEO), BControllable() @@ -88,6 +90,7 @@ return; } + VideoProducer::~VideoProducer() { if (fInitStatus == B_OK) { @@ -102,14 +105,15 @@ atomic_add(&fInstances, -1); } + /* BMediaNode */ - port_id VideoProducer::ControlPort() const { return BMediaNode::ControlPort(); } + BMediaAddOn * VideoProducer::AddOn(int32 *internal_id) const { @@ -118,19 +122,22 @@ return fAddOn; } -status_t + +status_t VideoProducer::HandleMessage(int32 /*message*/, const void* /*data*/, size_t /*size*/) { return B_ERROR; } -void + +void VideoProducer::Preroll() { /* This hook may be called before the node is started to give the hardware * a chance to start. */ } + void VideoProducer::SetTimeSource(BTimeSource* /*time_source*/) { @@ -138,15 +145,18 @@ release_sem(fFrameSync); } + status_t VideoProducer::RequestCompleted(const media_request_info &info) { return BMediaNode::RequestCompleted(info); } + /* BMediaEventLooper */ -void + +void VideoProducer::NodeRegistered() { if (fInitStatus != B_OK) { @@ -155,7 +165,7 @@ } /* Set up the parameter web */ - + //TODO: remove and put sensible stuff there BParameterWeb *web = new BParameterWeb(); BParameterGroup *main = web->MakeGroup(Name()); @@ -200,7 +210,7 @@ fOutput.source.port = ControlPort(); fOutput.source.id = 0; fOutput.destination = media_destination::null; - strcpy(fOutput.name, Name()); + strcpy(fOutput.name, Name()); /* Tailor these for the output of your device */ fOutput.format.type = B_MEDIA_RAW_VIDEO; @@ -213,50 +223,56 @@ Run(); } + void VideoProducer::Start(bigtime_t performance_time) { BMediaEventLooper::Start(performance_time); } + void VideoProducer::Stop(bigtime_t performance_time, bool immediate) { BMediaEventLooper::Stop(performance_time, immediate); } + void VideoProducer::Seek(bigtime_t media_time, bigtime_t performance_time) { BMediaEventLooper::Seek(media_time, performance_time); } + void VideoProducer::TimeWarp(bigtime_t at_real_time, bigtime_t to_performance_time) { BMediaEventLooper::TimeWarp(at_real_time, to_performance_time); } + status_t VideoProducer::AddTimer(bigtime_t at_performance_time, int32 cookie) { return BMediaEventLooper::AddTimer(at_performance_time, cookie); } + void VideoProducer::SetRunMode(run_mode mode) { BMediaEventLooper::SetRunMode(mode); } [... truncated: 1140 lines follow ...]