Exemplo n.º 1
0
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();
	}
}
Exemplo n.º 2
0
/*************************************************
* 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;
		}
	}
}