bool DcRawQT::GetRawImage(QString filename, QStringList args) { int argc; char **argv; if(args.contains("-i")){ args.removeOne("-i"); qDebug("-i passed to GetRawImage"); } args += filename; argc = BuildCommandLine(args, &argv); if(GetRawImage(argc, argv)) { buildHistogram(); return true; } return false; }
bool DcRawQT::GetRawImage(QString filename) { QStringList args; args += "dcrawqt"; args += "-T"; args += "-c"; return GetRawImage(filename, args); }
CBitmap *CImage::MakeBitmap() { HDC dc = ::CreateCompatibleDC(NULL); if (dc) { // tmpBitmap is a dummy, to satisfy ::CreateCompatibleDC (it // is a memory dc that must have a bitmap selected into it) HDC dc2 = GetDC(NULL); HBITMAP tmpBitmap = ::CreateCompatibleBitmap(dc2, GetWidth(), GetHeight()); ReleaseDC(NULL, dc2); HBITMAP oldBitmap = (HBITMAP) ::SelectObject(dc, tmpBitmap); if ( GetPalette() ) { HPALETTE oldPal = ::SelectPalette(dc, (HPALETTE) GetPalette()->m_hObject, FALSE); ::RealizePalette(dc); } HBITMAP hBitmap = ::CreateDIBitmap(dc, GetImplementation()->GetBits(), CBM_INIT, GetRawImage(), (LPBITMAPINFO) GetImplementation()->GetBits(), DIB_PAL_COLORS); ::SelectPalette(dc, NULL, TRUE); ::SelectObject(dc, oldBitmap); ::DeleteObject(tmpBitmap); ::DeleteDC(dc); if ( hBitmap ) { CBitmap *bitmap = new CBitmap; bitmap->Attach(hBitmap); return bitmap; } else { return NULL; } } else { return NULL; } }
EFI_STATUS EFIAPI GetPciRom ( IN CONST EFI_PCI_PLATFORM_PROTOCOL *This, IN EFI_HANDLE PciHandle, OUT VOID **RomImage, OUT UINTN *RomSize ) { EFI_STATUS Status; EFI_PCI_IO_PROTOCOL *PciIo; EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL *PciRootBridgeIo; UINTN Segment; UINTN Bus; UINTN Device; UINTN Function; UINT16 VendorId; UINT16 DeviceId; UINT16 DeviceClass; UINTN TableIndex; UINT8 Data8; BOOLEAN MfgMode; EFI_PLATFORM_SETUP_ID *BootModeBuffer; EFI_PEI_HOB_POINTERS GuidHob; MfgMode = FALSE; // // Check if system is in manufacturing mode. // GuidHob.Raw = GetHobList (); if (GuidHob.Raw == NULL) { return EFI_NOT_FOUND; } if ((GuidHob.Raw = GetNextGuidHob (&gEfiPlatformBootModeGuid, GuidHob.Raw)) != NULL) { BootModeBuffer = GET_GUID_HOB_DATA (GuidHob.Guid); if (!CompareMem (&BootModeBuffer->SetupName, MANUFACTURE_SETUP_NAME, StrSize (MANUFACTURE_SETUP_NAME))) { // // System is in manufacturing mode. // MfgMode = TRUE; } } Status = gBS->HandleProtocol ( PciHandle, &gEfiPciIoProtocolGuid, (void **)&PciIo ); if (EFI_ERROR (Status)) { return EFI_NOT_FOUND; } Status = gBS->LocateProtocol ( &gEfiPciRootBridgeIoProtocolGuid, NULL, (void **)&PciRootBridgeIo ); if (EFI_ERROR (Status)) { return EFI_NOT_FOUND; } PciIo->Pci.Read (PciIo, EfiPciIoWidthUint16, 0x0A, 1, &DeviceClass); PciIo->GetLocation (PciIo, &Segment, &Bus, &Device, &Function); PciIo->Pci.Read (PciIo, EfiPciIoWidthUint16, 0, 1, &VendorId); PciIo->Pci.Read (PciIo, EfiPciIoWidthUint16, 2, 1, &DeviceId); // // WA for PCIe SATA card (SYBA SY-PEX400-40) // if ((VendorId == 0x1B21) && (DeviceId == 0x0612)) { Data8 = 0x07; PciIo->Pci.Write (PciIo, EfiPciIoWidthUint8, 4, 1, &Data8); } // // Do not run RAID or AHCI Option ROM if IDE // if ( (DeviceClass == ((PCI_CLASS_MASS_STORAGE << 8 ) | PCI_CLASS_MASS_STORAGE_IDE)) ) { return EFI_NOT_FOUND; } // // Run PXE ROM only if Boot network is enabled and not in MFG mode // if (DeviceClass == ((PCI_CLASS_NETWORK << 8 ) | PCI_CLASS_NETWORK_ETHERNET)) { if (((mSystemConfiguration.BootNetwork == 0) && (MfgMode == FALSE )) || (mSystemConfiguration.FastBoot == 1)) { return EFI_NOT_FOUND; } } // // Loop through table of Onboard option rom descriptions // for (TableIndex = 0; mPciOptionRomTable[TableIndex].VendorId != 0xffff; TableIndex++) { // // See if the PCI device specified by PciHandle matches at device in mPciOptionRomTable // if (VendorId != mPciOptionRomTable[TableIndex].VendorId || DeviceId != mPciOptionRomTable[TableIndex].DeviceId || ((DeviceClass == ((PCI_CLASS_NETWORK << 8 ) | PCI_CLASS_NETWORK_ETHERNET)) && (mPciOptionRomTable[TableIndex].Flag != mSystemConfiguration.BootNetwork)) ) { continue; } Status = GetRawImage( &mPciOptionRomTable[TableIndex].FileName, RomImage, RomSize ); if ((VendorId == IGD_VID) && (DeviceId == IGD_DID_VLV_A0)) { *(UINT16 *)(((UINTN) *RomImage) + OPROM_DID_OFFSET) = IGD_DID_VLV_A0; } if ((VendorId == IGD_VID) && (DeviceId == IGD_DID_II)) { *(UINT16 *)(((UINTN) *RomImage) + OPROM_DID_OFFSET) = IGD_DID_II; } if ((VendorId == IGD_VID) && (DeviceId == IGD_DID_0BE4)) { *(UINT16 *)(((UINTN) *RomImage) + OPROM_DID_OFFSET) = IGD_DID_0BE4; } if ((VendorId == IGD_VID) && (DeviceId == IGD_DID_QS)) { *(UINT16 *)(((UINTN) *RomImage) + OPROM_DID_OFFSET) = IGD_DID_QS; } if (EFI_ERROR (Status)) { continue; } return EFI_SUCCESS; } return EFI_NOT_FOUND; }