From 372e44d8c1db1a2b702f72bc72074e0379d01c6a Mon Sep 17 00:00:00 2001 From: hecomi Date: Thu, 10 Nov 2016 22:35:46 +0900 Subject: [PATCH] output logs. --- .gitignore | 1 + .../Plugins/x86_64/uDesktopDuplication.dll | Bin 246272 -> 56320 bytes Assets/uDesktopDuplication/Scripts/Lib.cs | 14 ++- Assets/uDesktopDuplication/Scripts/Manager.cs | 30 +++---- .../uDesktopDuplication/Cursor.cpp | 4 - .../uDesktopDuplication/Debug.cpp | 83 ++++++++++++++---- .../uDesktopDuplication/Debug.h | 19 +++- .../uDesktopDuplication/Monitor.cpp | 15 ++-- .../uDesktopDuplication/main.cpp | 30 +++---- 9 files changed, 131 insertions(+), 65 deletions(-) diff --git a/.gitignore b/.gitignore index ffcd925..a72ac79 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,4 @@ sysinfo.txt .DS_Store /Assets/AssetStoreTools* /Assets/Extensions* +/uDesktopDuplication.log diff --git a/Assets/uDesktopDuplication/Plugins/x86_64/uDesktopDuplication.dll b/Assets/uDesktopDuplication/Plugins/x86_64/uDesktopDuplication.dll index 60d0d07a962315ffbcc053f08e2974d838a03d72..fa7bc5e7d2e42b4d3e1ae931ba37d3c601491bb8 100644 GIT binary patch literal 56320 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¨3u-13wQ)gHGJQcL4mPL*O0H!jFNb3;4w$ms0_+O9WiLWrz)0xF1-$kk@`6tr zaP~{^Z=iPr?*%MH-8+HL`3vNsF&Fp_Ko0cK20Z;`_(sq-1HTT)B%QwkUj#UYwrd9d z2+#?6j91|+0Jov;Ex@Dx2ET@|1NeGC@i^2MxV{s889HnO9{6|I1kw%QO8_?`>;}H} z5b81>dEdY@0DkBl>9)fbcKQ+65AwDEe+Y0PY&!}XKpDctz`p`)27Mdw$#0{+2-|@# z{0HjhL7xa$$)&m~`EJc`ofVu-ZpsN<(fghr5gbm<&fFCxt9he=1ZKHh+ z;EMsx$m<5q{s?vkIqQMH{xSLqR=<*uZw+mjD~lzq)`Yd=7t(umkvNz)tXN z2Hpo~N4OJsR5xq@Jng`hfSbXy9{54PR`Bcq9)vrC?*<Szb90~{p%0DlPBj&`)g$FV{J$_v~I*bJHu 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 q<)7;T>XB Debug.Log(msg); - private Lib.DebugLogDelegate errorFunc = msg => Debug.LogError(msg); - void Awake() { + Lib.SetDebugMode(debugMode); Lib.InitializeUDD(); if (instance_ != null) return; @@ -84,16 +84,10 @@ public class Manager : MonoBehaviour void OnEnable() { renderCoroutine_ = StartCoroutine(OnRender()); - - Lib.SetLogFunc(logFunc); - Lib.SetErrorFunc(errorFunc); } void OnDisable() { - Lib.SetLogFunc(null); - Lib.SetErrorFunc(null); - if (renderCoroutine_ != null) { StopCoroutine(renderCoroutine_); renderCoroutine_ = null; @@ -123,20 +117,20 @@ public class Manager : MonoBehaviour monitor.state == MonitorState.AccessLost || monitor.state == MonitorState.AccessDenied || monitor.state == MonitorState.SessionDisconnected) { - if (!shouldReinitialize) { - shouldReinitialize = true; - reinitializationTimer = 0f; + if (!shouldReinitialize_) { + shouldReinitialize_ = true; + reinitializationTimer_ = 0f; break; } } } - if (shouldReinitialize) { - if (reinitializationTimer > retryReinitializationDuration) { + if (shouldReinitialize_) { + if (reinitializationTimer_ > retryReinitializationDuration) { Reinitialize(); - shouldReinitialize = false; + shouldReinitialize_ = false; } - reinitializationTimer += Time.deltaTime; + reinitializationTimer_ += Time.deltaTime; } } diff --git a/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.cpp b/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.cpp index 3339dc0..2ebb3cb 100644 --- a/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.cpp +++ b/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.cpp @@ -136,10 +136,6 @@ void Cursor::UpdateTexture() rowMax = h; } - char buf[256]; - sprintf_s(buf, 256, "%d %d %d %d | %d %d %d %d", x_, y_, w, h, colMin, colMax, rowMin, rowMax); - Debug::Log(buf); - D3D11_TEXTURE2D_DESC desc; desc.Width = w; desc.Height = h; diff --git a/Plugins/uDesktopDuplication/uDesktopDuplication/Debug.cpp b/Plugins/uDesktopDuplication/uDesktopDuplication/Debug.cpp index 8d77452..f2e6be0 100644 --- a/Plugins/uDesktopDuplication/uDesktopDuplication/Debug.cpp +++ b/Plugins/uDesktopDuplication/uDesktopDuplication/Debug.cpp @@ -4,28 +4,81 @@ #include "Debug.h" -#define INIT_STATIC_MEMBER(Member, Value) \ - decltype(Debug::Member) Debug::Member = Value; -INIT_STATIC_MEMBER(enabled_, true) -INIT_STATIC_MEMBER(logFunc_, nullptr) -INIT_STATIC_MEMBER(errFunc_, nullptr) +decltype(Debug::mode_) Debug::mode_ = Debug::Mode::kFile; +decltype(Debug::logFunc_) Debug::logFunc_ = nullptr; +decltype(Debug::errFunc_) Debug::errFunc_ = nullptr; +decltype(Debug::fs_) Debug::fs_; + + +void Debug::Initialize() +{ + if (mode_ == Mode::kFile) + { + fs_.open("uDesktopDuplication.log"); + } +} + + +void Debug::Finalize() +{ + fs_.close(); +} void Debug::Log(const char* msg) { - if (!enabled_ || logFunc_ == nullptr) return; - - char buf[256]; - sprintf_s(buf, 256, "[uDD::Log] %s", msg); - logFunc_(buf); + switch (mode_) + { + case Mode::kNone: + { + break; + } + case Mode::kFile: + { + if (fs_.good()) + { + fs_ << "[uDD::Log] " << msg << std::endl; + } + break; + } + case Mode::kUnityLog: + { + if (logFunc_ == nullptr) + { + char buf[256]; + sprintf_s(buf, 256, "[uDD::Log] %s", msg); + logFunc_(buf); + break; + } + } + } } void Debug::Error(const char* msg) { - if (!enabled_ || errFunc_ == nullptr) return; - - char buf[256]; - sprintf_s(buf, 256, "[uDD::Err] %s", msg); - errFunc_(buf); + switch (mode_) + { + case Mode::kNone: + { + break; + } + case Mode::kFile: + { + if (fs_.good()) + { + fs_ << "[uDD::Err] " << msg << std::endl; + } + break; + } + case Mode::kUnityLog: + { + if (logFunc_ == nullptr) + { + char buf[256]; + sprintf_s(buf, 256, "[uDD::Err] %s", msg); + errFunc_(buf); + } + } + } } \ No newline at end of file diff --git a/Plugins/uDesktopDuplication/uDesktopDuplication/Debug.h b/Plugins/uDesktopDuplication/uDesktopDuplication/Debug.h index 1a9e681..13863df 100644 --- a/Plugins/uDesktopDuplication/uDesktopDuplication/Debug.h +++ b/Plugins/uDesktopDuplication/uDesktopDuplication/Debug.h @@ -1,13 +1,23 @@ #pragma once +#include +#include "IUnityInterface.h" // Logging class Debug { public: - static void Enable() { enabled_ = true; } - static void Disable() { enabled_ = false; } + enum class Mode + { + kNone = 0, + kFile = 1, + kUnityLog = 2, + }; - using DebugLogFuncPtr = void(*)(const char*); + using DebugLogFuncPtr = void(UNITY_INTERFACE_API *)(const char*); + + static void SetMode(Mode mode) { mode_ = mode; } + static void Initialize(); + static void Finalize(); static void SetLogFunc(DebugLogFuncPtr func) { logFunc_ = func; } static void SetErrorFunc(DebugLogFuncPtr func) { errFunc_ = func; } @@ -16,7 +26,8 @@ public: static void Error(const char* msg); private: - static bool enabled_; + static Mode mode_; + static std::ofstream fs_; static DebugLogFuncPtr logFunc_; static DebugLogFuncPtr errFunc_; }; \ No newline at end of file diff --git a/Plugins/uDesktopDuplication/uDesktopDuplication/Monitor.cpp b/Plugins/uDesktopDuplication/uDesktopDuplication/Monitor.cpp index f244a9e..d515547 100644 --- a/Plugins/uDesktopDuplication/uDesktopDuplication/Monitor.cpp +++ b/Plugins/uDesktopDuplication/uDesktopDuplication/Monitor.cpp @@ -14,6 +14,11 @@ Monitor::Monitor(int id) } +Monitor::~Monitor() +{ +} + + void Monitor::Initialize(IDXGIOutput* output) { output->GetDesc(&outputDesc_); @@ -37,33 +42,33 @@ void Monitor::Initialize(IDXGIOutput* output) break; case E_INVALIDARG: state_ = State::InvalidArg; + Debug::Error("Monitor::Initialize() => Invalid arguments."); break; case E_ACCESSDENIED: // For example, when the user presses Ctrl + Alt + Delete and the screen // switches to admin screen, this error occurs. state_ = State::AccessDenied; + Debug::Error("Monitor::Initialize() => Access denied."); break; case DXGI_ERROR_UNSUPPORTED: // If the display adapter on the computer is running under the Microsoft Hybrid system, // this error occurs. state_ = State::Unsupported; + Debug::Error("Monitor::Initialize() => Unsupported display."); break; case DXGI_ERROR_NOT_CURRENTLY_AVAILABLE: // When other application use Desktop Duplication API, this error occurs. state_ = State::CurrentlyNotAvailable; + Debug::Error("Monitor::Initialize() => Currently not available."); break; case DXGI_ERROR_SESSION_DISCONNECTED: state_ = State::SessionDisconnected; + Debug::Error("Monitor::Initialize() => Session disconnected."); break; } } -Monitor::~Monitor() -{ -} - - void Monitor::Render(UINT timeout) { if (!deskDupl_) return; diff --git a/Plugins/uDesktopDuplication/uDesktopDuplication/main.cpp b/Plugins/uDesktopDuplication/uDesktopDuplication/main.cpp index 95e812e..58b8aff 100644 --- a/Plugins/uDesktopDuplication/uDesktopDuplication/main.cpp +++ b/Plugins/uDesktopDuplication/uDesktopDuplication/main.cpp @@ -20,7 +20,6 @@ IUnityInterfaces* g_unity = nullptr; std::unique_ptr g_manager; -std::unique_ptr g_debug; std::queue g_messages; @@ -31,14 +30,20 @@ extern "C" if (g_unity && !g_manager) { g_manager = std::make_unique(); - g_debug = std::make_unique(); + Debug::Initialize(); } } UNITY_INTERFACE_EXPORT void UNITY_INTERFACE_API FinalizeUDD() { g_manager.reset(); - g_debug.reset(); + + std::queue empty; + g_messages.swap(empty); + + Debug::SetLogFunc(nullptr); + Debug::SetErrorFunc(nullptr); + Debug::Finalize(); } UNITY_INTERFACE_EXPORT void UNITY_INTERFACE_API UnityPluginLoad(IUnityInterfaces* unityInterfaces) @@ -49,8 +54,8 @@ extern "C" UNITY_INTERFACE_EXPORT void UNITY_INTERFACE_API UnityPluginUnload() { - g_unity = nullptr; FinalizeUDD(); + g_unity = nullptr; } void UNITY_INTERFACE_API OnRenderEvent(int id) @@ -88,28 +93,19 @@ extern "C" return message; } - UNITY_INTERFACE_EXPORT void UNITY_INTERFACE_API EnableDebug() + UNITY_INTERFACE_EXPORT void UNITY_INTERFACE_API SetDebugMode(Debug::Mode mode) { - if (!g_debug) return; - g_debug->Enable(); - } - - UNITY_INTERFACE_EXPORT void UNITY_INTERFACE_API DisableDebug() - { - if (!g_debug) return; - g_debug->Disable(); + Debug::SetMode(mode); } UNITY_INTERFACE_EXPORT void UNITY_INTERFACE_API SetLogFunc(Debug::DebugLogFuncPtr func) { - if (!g_debug) return; - g_debug->SetLogFunc(func); + Debug::SetLogFunc(func); } UNITY_INTERFACE_EXPORT void UNITY_INTERFACE_API SetErrorFunc(Debug::DebugLogFuncPtr func) { - if (!g_debug) return; - g_debug->SetErrorFunc(func); + Debug::SetErrorFunc(func); } UNITY_INTERFACE_EXPORT size_t UNITY_INTERFACE_API GetMonitorCount()