53 lines
3.0 KiB
C++
53 lines
3.0 KiB
C++
#pragma once
|
|
|
|
#include "MainWindow.g.h"
|
|
#include "VavCore/VavCore.h"
|
|
#include "LogMessagePage.xaml.h"
|
|
|
|
namespace winrt::Vav2Player::implementation
|
|
{
|
|
struct MainWindow : MainWindowT<MainWindow>
|
|
{
|
|
MainWindow();
|
|
|
|
// These methods are no longer needed - moved to MainVideoPage
|
|
|
|
// Navigation event handlers
|
|
void SwitchToMainView_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Microsoft::UI::Xaml::RoutedEventArgs const& e);
|
|
void SwitchToMultiVideoView_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Microsoft::UI::Xaml::RoutedEventArgs const& e);
|
|
void SwitchToLayeredVideoView_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Microsoft::UI::Xaml::RoutedEventArgs const& e);
|
|
void Exit_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Microsoft::UI::Xaml::RoutedEventArgs const& e);
|
|
void Settings_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Microsoft::UI::Xaml::RoutedEventArgs const& e);
|
|
void About_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Microsoft::UI::Xaml::RoutedEventArgs const& e);
|
|
|
|
// Log panel handlers
|
|
void ShowLogToggle_Click(winrt::Windows::Foundation::IInspectable const& sender, winrt::Microsoft::UI::Xaml::RoutedEventArgs const& e);
|
|
|
|
// Drag-based splitter handlers
|
|
void Splitter_PointerPressed(winrt::Windows::Foundation::IInspectable const& sender, winrt::Microsoft::UI::Xaml::Input::PointerRoutedEventArgs const& e);
|
|
void Splitter_PointerMoved(winrt::Windows::Foundation::IInspectable const& sender, winrt::Microsoft::UI::Xaml::Input::PointerRoutedEventArgs const& e);
|
|
void Splitter_PointerReleased(winrt::Windows::Foundation::IInspectable const& sender, winrt::Microsoft::UI::Xaml::Input::PointerRoutedEventArgs const& e);
|
|
void Splitter_PointerEntered(winrt::Windows::Foundation::IInspectable const& sender, winrt::Microsoft::UI::Xaml::Input::PointerRoutedEventArgs const& e);
|
|
void Splitter_PointerExited(winrt::Windows::Foundation::IInspectable const& sender, winrt::Microsoft::UI::Xaml::Input::PointerRoutedEventArgs const& e);
|
|
|
|
// 성능 최적화된 비디오 렌더링 함수들
|
|
static void ConvertYUVToBGRA(const VavCoreVideoFrame& yuv_frame, uint8_t* bgra_buffer, uint32_t width, uint32_t height);
|
|
static void RenderFrameToScreen(const VavCoreVideoFrame& frame, winrt::Microsoft::UI::Xaml::Media::Imaging::WriteableBitmap& bitmap, std::vector<uint8_t>& bgra_buffer);
|
|
|
|
// Access log panel
|
|
winrt::Vav2Player::LogMessagePage LogPanel() { return m_logPanel; }
|
|
|
|
private:
|
|
bool m_isDraggingSplitter = false;
|
|
double m_initialPanelWidth = 0.0;
|
|
double m_lastMouseX = 0.0;
|
|
winrt::Vav2Player::LogMessagePage m_logPanel{nullptr};
|
|
};
|
|
}
|
|
|
|
namespace winrt::Vav2Player::factory_implementation
|
|
{
|
|
struct MainWindow : MainWindowT<MainWindow, implementation::MainWindow>
|
|
{
|
|
};
|
|
} |