//********************************************************* // // 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 #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 { /// /// An empty page that can be used on its own or navigated to within a Frame. /// [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 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 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); }; } }