/*************************************************************************** * Copyright (C) 2016 by Savoir-faire Linux * * Author: J�ger Nicolas <nicolas.jager@savoirfairelinux.com> * * Author: Traczyk Andreas <andreas.traczyk@savoirfairelinux.com> * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 3 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see <http://www.gnu.org/licenses/>. * **************************************************************************/ /* client */ #include "pch.h" using namespace RingClientUWP; using namespace Platform; using namespace Windows::UI::Core; using namespace Windows::Storage; void RingDebug::print(const std::string& message, const Type& type) { /* get the current time */ std::time_t currentTime = std::time(nullptr); char timeBuffer[64]; ctime_s(timeBuffer, sizeof timeBuffer, ¤tTime); /* timestamp */ auto messageTimestamped = timeBuffer + message; std::wstring wString = std::wstring(message.begin(), message.end()); /* set message type. */ switch (type) { case Type::ERR: wString = L"(EE) " + wString; break; case Type::WNG: wString = L"(WW) " + wString; break; /*case Type::message:*/ } /* screen it into VS debug console */ OutputDebugString((wString + L"\n").c_str()); /* fire the event. */ auto line = ref new String(wString.c_str(), wString.length()); messageToScreen(line); FileIO::AppendTextAsync(_logFile, line + "\n"); } void RingClientUWP::RingDebug::WriteLine(String^ str) { /* save in file */ //FileIO::AppendTextAsync(_videoFile, str + "\n"); /* screen in visual studio console */ std::wstringstream wStringstream; wStringstream << str->Data() << "\n"; OutputDebugString(wStringstream.str().c_str()); } RingClientUWP::RingDebug::RingDebug() { StorageFolder^ storageFolder = ApplicationData::Current->LocalFolder; StorageFile^ logFile; task<StorageFile^>(storageFolder->CreateFileAsync("debug.log", CreationCollisionOption::ReplaceExisting)).then([this](StorageFile^ file) { this->_logFile = file; }); task<StorageFile^>(storageFolder->CreateFileAsync("video.log", CreationCollisionOption::ReplaceExisting)).then([this](StorageFile^ file) { this->_videoFile = file; }); }