void CaptureSource::CaptureImageReportSample (gint64 sampleTime, gint64 frameDuration, guint8 *sampleData, int sampleDataLength) { SetCurrentDeployment (); d(printf ("CaptureSource::CaptureImageReportSample (%lld, %lld, %d\n", (long long) sampleTime, (long long) frameDuration, sampleDataLength)); if (HasHandlers (CaptureSource::CaptureImageCompletedEvent)) { BitmapImage *source = MoonUnmanagedFactory::CreateBitmapImage (); source->SetPixelWidth (capture_format->width); source->SetPixelHeight (capture_format->height); source->SetBitmapData (sampleData, false); source->Invalidate (); // causes the BitmapSource to create its image_surface CaptureImageCompletedEventArgs *args = new CaptureImageCompletedEventArgs (NULL); args->EnsureManagedPeer (); args->SetSource (source); source->unref (); Emit (CaptureSource::CaptureImageCompletedEvent, args); } // if we started the pal device strictly for an image capture // (or kept it running after the user had called // CaptureSource::Stop), stop it now. if (current_state != CaptureSource::Started) { VideoCaptureDevice *video_device = GetVideoCaptureDevice (); video_device->Stop(); } }
/************************************************* * Description: Handles messages passed to it * Author: Rick Caudill * Date: Thu Mar 18 20:17:32 2004 **************************************************/ void WallpaperChangerSettings::HandleMessage(Message* pcMessage) { switch (pcMessage->GetCode()) { /*case M_NODE_MONITOR: { pcDirectoryList->Clear(); LoadDirectoryList(); break; }*/ case M_APPLY: { SaveSettings(); break; } case M_CANCEL: { Message* pcMsg = new Message(M_PREFS_CANCEL); pcParentLooper->PostMessage(pcMsg,pcParentView); break; } case M_DEFAULT: { break; } case M_CHANGE_IMAGE: { ListViewStringRow* pcRow = (ListViewStringRow*)pcDirectoryList->GetRow(pcDirectoryList->GetLastSelected()); String cImage = getenv( "HOME" ); cImage += String("/Pictures/") + pcRow->GetString(0); BitmapImage* pcNewImage = new BitmapImage(new File(cImage)); Bitmap* pcNewBitmap = new Bitmap(201,90,CS_RGB32); Scale(pcNewImage->LockBitmap(),pcNewBitmap,filter_box,0); pcNewImage->SetBitmapData(pcNewBitmap->LockRaster(),IPoint(201,90),CS_RGB32); pcImageView->SetImage(pcNewImage); break; } } }