96 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| //*********************************************************
 | |
| //
 | |
| // Copyright (c) Microsoft. All rights reserved.
 | |
| // THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
 | |
| // ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
 | |
| // IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
 | |
| // PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
 | |
| //
 | |
| //*********************************************************
 | |
| 
 | |
| //
 | |
| // AdvancedCapture.xaml.h
 | |
| // Declaration of the AdvancedCapture class
 | |
| //
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include "pch.h"
 | |
| #include "AdvancedCapture.g.h"
 | |
| #include "MainPage.xaml.h"
 | |
| #include <ppl.h>
 | |
| 
 | |
| #define VIDEO_FILE_NAME "video.mp4"
 | |
| #define PHOTO_FILE_NAME "photo.jpg"
 | |
| #define TEMP_PHOTO_FILE_NAME "photoTmp.jpg"
 | |
| 
 | |
| using namespace concurrency;
 | |
| using namespace Windows::Devices::Enumeration;
 | |
| 
 | |
| namespace SDKSample
 | |
| {
 | |
|     namespace MediaCapture
 | |
|     {
 | |
|         /// <summary>
 | |
|         /// An empty page that can be used on its own or navigated to within a Frame.
 | |
|         /// </summary>
 | |
|         [Windows::Foundation::Metadata::WebHostHidden]
 | |
|         public ref class AdvancedCapture sealed
 | |
|         {
 | |
|         public:
 | |
|             AdvancedCapture();
 | |
| 
 | |
|         protected:
 | |
|             virtual void OnNavigatedTo(Windows::UI::Xaml::Navigation::NavigationEventArgs^ e) override;
 | |
|             virtual void OnNavigatedFrom(Windows::UI::Xaml::Navigation::NavigationEventArgs^ e) override;
 | |
| 
 | |
|         private:
 | |
|             MainPage^ rootPage;
 | |
|             void ScenarioInit();
 | |
|             void ScenarioReset();
 | |
| 
 | |
|             void Failed(Windows::Media::Capture::MediaCapture ^ mediaCapture, Windows::Media::Capture::MediaCaptureFailedEventArgs ^ args);
 | |
| 
 | |
|             void btnStartDevice_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
 | |
| 
 | |
|             void btnStartPreview_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
 | |
| 
 | |
|             void lstEnumedDevices_SelectionChanged(Platform::Object^ sender, Windows::UI::Xaml::Controls::SelectionChangedEventArgs^ e);
 | |
|             void EnumerateWebcamsAsync();
 | |
| 
 | |
|             void AddEffectToImageStream();
 | |
| 
 | |
|             void ShowStatusMessage(Platform::String^ text);
 | |
|             void ShowExceptionMessage(Platform::Exception^ ex);
 | |
| 
 | |
|             void EnableButton(bool enabled, Platform::String ^name);
 | |
| 
 | |
|             task<Windows::Storage::StorageFile^> ReencodePhotoAsync(
 | |
|                 Windows::Storage::StorageFile ^tempStorageFile,
 | |
|                 Windows::Storage::FileProperties::PhotoOrientation photoRotation);
 | |
|             Windows::Storage::FileProperties::PhotoOrientation GetCurrentPhotoRotation();
 | |
|             void PrepareForVideoRecording();
 | |
|             void DisplayProperties_OrientationChanged(Platform::Object^ sender);
 | |
|             Windows::Storage::FileProperties::PhotoOrientation PhotoRotationLookup(
 | |
|                 Windows::Graphics::Display::DisplayOrientations displayOrientation, bool counterclockwise);
 | |
|             Windows::Media::Capture::VideoRotation VideoRotationLookup(
 | |
|                 Windows::Graphics::Display::DisplayOrientations displayOrientation, bool counterclockwise);
 | |
| 
 | |
|             Platform::Agile<Windows::Media::Capture::MediaCapture> m_mediaCaptureMgr;
 | |
|             Windows::Storage::StorageFile^ m_recordStorageFile;
 | |
|             bool m_bRecording;
 | |
|             bool m_bEffectAdded;
 | |
|             bool m_bEffectAddedToRecord;
 | |
|             bool m_bEffectAddedToPhoto;
 | |
|             bool m_bSuspended;
 | |
|             bool m_bPreviewing;
 | |
|             DeviceInformationCollection^ m_devInfoCollection;
 | |
|             Windows::Foundation::EventRegistrationToken m_eventRegistrationToken;
 | |
|             bool m_bRotateVideoOnOrientationChange;
 | |
|             bool m_bReversePreviewRotation;
 | |
|             Windows::Foundation::EventRegistrationToken m_orientationChangedEventToken;
 | |
|             void Button_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
 | |
|         };
 | |
|     }
 | |
| }
 | 
