Skip to content

Commit

Permalink
log and format for wstrings.
Browse files Browse the repository at this point in the history
  • Loading branch information
paulrouget committed Jun 11, 2020
1 parent 60ee588 commit 805b79b
Show file tree
Hide file tree
Showing 10 changed files with 37 additions and 57 deletions.
4 changes: 2 additions & 2 deletions support/hololens/ServoApp/BrowserPage.cpp
Expand Up @@ -3,7 +3,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */

#include "pch.h"
#include "logs.h"
#include "strutils.h"
#include "BrowserPage.h"
#include "BrowserPage.g.cpp"
#include "DefaultUrl.h"
Expand Down Expand Up @@ -103,7 +103,7 @@ void BrowserPage::LoadServoURI(Uri uri) {
auto scheme = uri.SchemeName();

if (scheme != SERVO_SCHEME) {
log("Unexpected URL: ", uri.RawUri().c_str());
log(L"Unexpected URL: ", uri.RawUri().c_str());
return;
}
std::wstring raw{uri.RawUri()};
Expand Down
3 changes: 1 addition & 2 deletions support/hololens/ServoApp/ServoApp.vcxproj
Expand Up @@ -119,7 +119,7 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="logs.h" />
<ClInclude Include="strutils.h" />
<ClInclude Include="pch.h" />
<ClInclude Include="App.h">
<DependentUpon>App.xaml</DependentUpon>
Expand Down Expand Up @@ -923,7 +923,6 @@
<DependentUpon>BrowserPage.xaml</DependentUpon>
</ClCompile>
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
<ClCompile Include="logs.cpp" />
<ClCompile Include="ServoControl\OpenGLES.cpp" />
<ClCompile Include="ServoControl\Servo.cpp" />
<ClCompile Include="ServoControl\ServoControl.cpp" />
Expand Down
3 changes: 1 addition & 2 deletions support/hololens/ServoApp/ServoApp.vcxproj.filters
Expand Up @@ -10,7 +10,6 @@
<ItemGroup>
<ClCompile Include="pch.cpp" />
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
<ClCompile Include="logs.cpp" />
<ClCompile Include="BrowserPage.cpp" />
<ClCompile Include="App.cpp" />
<ClCompile Include="ServoControl\OpenGLES.cpp">
Expand All @@ -25,7 +24,6 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="pch.h" />
<ClInclude Include="logs.h" />
<ClInclude Include="BrowserPage.h" />
<ClInclude Include="App.h" />
<ClInclude Include="ServoControl\OpenGLES.h">
Expand All @@ -38,6 +36,7 @@
<Filter>ServoControl</Filter>
</ClInclude>
<ClInclude Include="DefaultUrl.h" />
<ClInclude Include="strutils.h" />
</ItemGroup>
<ItemGroup>
<Image Include="Assets\Wide310x150Logo.scale-200.png">
Expand Down
4 changes: 2 additions & 2 deletions support/hololens/ServoApp/ServoControl/OpenGLES.cpp
Expand Up @@ -3,7 +3,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */

#include "pch.h"
#include "logs.h"
#include "strutils.h"
#include "OpenGLES.h"

using namespace winrt::Windows::UI::Xaml::Controls;
Expand All @@ -13,7 +13,7 @@ using namespace winrt::Windows::Foundation::Collections;
OpenGLES::OpenGLES()
: mEglConfig(nullptr), mEglDisplay(EGL_NO_DISPLAY),
mEglContext(EGL_NO_CONTEXT) {
log("OpenGLES::OpenGLES()");
log(L"OpenGLES::OpenGLES()");
Initialize();
}

Expand Down
2 changes: 1 addition & 1 deletion support/hololens/ServoApp/ServoControl/Servo.cpp
Expand Up @@ -178,7 +178,7 @@ Servo::Servo(hstring url, hstring args, GLsizei width, GLsizei height,
} else if (type == Windows::Foundation::PropertyType::Empty) {
pref.pref_type = capi::CPrefType::Missing;
} else {
log("skipping pref %s. Unknown type", key);
log(L"skipping pref %s. Unknown type", key);
continue;
}
cprefs.push_back(pref);
Expand Down
2 changes: 1 addition & 1 deletion support/hololens/ServoApp/ServoControl/Servo.h
Expand Up @@ -6,7 +6,7 @@

#include "pch.h"
#include <EGL/egl.h>
#include "logs.h"
#include "strutils.h"
#include <stdlib.h>

namespace winrt::servo {
Expand Down
20 changes: 7 additions & 13 deletions support/hololens/ServoApp/ServoControl/ServoControl.cpp
@@ -1,4 +1,5 @@
#include "pch.h"
#include "strutils.h"
#include "ServoControl.h"
#include "ServoControl.g.cpp"
#include "Pref.g.cpp"
Expand Down Expand Up @@ -277,16 +278,9 @@ hstring ServoControl::LoadURIOrSearch(hstring input) {

// Doesn't look like a URI. Let's search for the string.
auto escapedInput = Uri::EscapeComponent(input);
std::wstring searchUri =
unbox_value<hstring>(std::get<1>(Servo::GetPref(L"shell.searchpage")))
.c_str();
std::wstring keyword = L"%s";
size_t start_pos = searchUri.find(keyword);
if (start_pos == std::string::npos)
searchUri = searchUri + escapedInput;
else
searchUri.replace(start_pos, keyword.length(), escapedInput);
hstring finalUri{searchUri};
std::wstring searchUri = unbox_value<hstring>(std::get<1>(Servo::GetPref(L"shell.searchpage"))).c_str();
std::wstring formated = format(searchUri, escapedInput.c_str());
hstring finalUri{formated};
TryLoadUri(finalUri);
return finalUri;
}
Expand Down Expand Up @@ -323,10 +317,10 @@ void ServoControl::RunOnGLThread(std::function<void()> task) {
/**** GL THREAD LOOP ****/

void ServoControl::Loop() {
log("BrowserPage::Loop(). GL thread: %i", GetCurrentThreadId());
log(L"BrowserPage::Loop(). GL thread: %i", GetCurrentThreadId());

if (mServo == nullptr) {
log("Entering loop");
log(L"Entering loop");
ServoDelegate *sd = static_cast<ServoDelegate *>(this);
EGLNativeWindowType win = GetNativeWindow();
mServo = std::make_unique<Servo>(mInitialURL, mArgs, mPanelWidth,
Expand Down Expand Up @@ -367,7 +361,7 @@ void ServoControl::StartRenderLoop() {
#endif
}
mLooping = true;
log("BrowserPage::StartRenderLoop(). UI thread: %i", GetCurrentThreadId());
log(L"BrowserPage::StartRenderLoop(). UI thread: %i", GetCurrentThreadId());
auto task = Concurrency::create_task([=] { Loop(); });
mLoopTask = std::make_unique<Concurrency::task<void>>(task);
}
Expand Down
27 changes: 0 additions & 27 deletions support/hololens/ServoApp/logs.cpp

This file was deleted.

7 changes: 0 additions & 7 deletions support/hololens/ServoApp/logs.h

This file was deleted.

22 changes: 22 additions & 0 deletions support/hololens/ServoApp/strutils.h
@@ -0,0 +1,22 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */

#pragma once

template <typename... Args>
std::wstring format(const std::wstring &txt, Args... args) {
size_t size = swprintf(nullptr, 0, txt.c_str(), args...) + 1;
if (size <= 0) {
throw std::runtime_error("Error during formatting.");
}
auto ptr = new wchar_t[size];
swprintf(ptr, size, txt.c_str(), args...);
auto wstr = std::wstring(ptr);
delete ptr;
return wstr;
}

template <typename... Args> void log(const std::wstring &txt, Args... args) {
OutputDebugString((format(txt, args...) + L"\r\n").c_str());
}

0 comments on commit 805b79b

Please sign in to comment.