diff --git a/launchers/macosx/AppDelegate.h b/launchers/macosx/I2PLauncher/ObjectiveC/AppDelegate.h similarity index 94% rename from launchers/macosx/AppDelegate.h rename to launchers/macosx/I2PLauncher/ObjectiveC/AppDelegate.h index 4088f0bf5..34cf93af7 100644 --- a/launchers/macosx/AppDelegate.h +++ b/launchers/macosx/I2PLauncher/ObjectiveC/AppDelegate.h @@ -18,9 +18,10 @@ #include "RouterTask.h" -#include "version.h" +// TODO: Configure the project to avoid such includes. +#include "../version.h" -@class SwiftMainDelegate; +@class SwiftApplicationDelegate; @class I2PDeployer; @protocol SwiftMainDelegateProto @@ -90,7 +91,7 @@ inline void sendUserNotification(NSString* title, NSString* informativeText, boo @interface AppDelegate : NSObject @property BOOL enableLogging; @property BOOL enableVerboseLogging; -@property (assign) SwiftMainDelegate *swiftRuntime; +@property (assign) SwiftApplicationDelegate *swiftRuntime; @property (assign) NSUserDefaults *userPreferences; @property (assign) ExtractMetaInfo *metaInfo; @property (assign) I2PDeployer *deployer; diff --git a/launchers/macosx/Deployer.h b/launchers/macosx/I2PLauncher/ObjectiveC/Deployer.h similarity index 100% rename from launchers/macosx/Deployer.h rename to launchers/macosx/I2PLauncher/ObjectiveC/Deployer.h diff --git a/launchers/macosx/Deployer.mm b/launchers/macosx/I2PLauncher/ObjectiveC/Deployer.mm similarity index 95% rename from launchers/macosx/Deployer.mm rename to launchers/macosx/I2PLauncher/ObjectiveC/Deployer.mm index 79fc86314..d90ac143f 100644 --- a/launchers/macosx/Deployer.mm +++ b/launchers/macosx/I2PLauncher/ObjectiveC/Deployer.mm @@ -28,14 +28,16 @@ #import "I2PLauncher-Swift.h" #include "AppDelegate.h" -#include "include/fn.h" +// TODO: Configure the project to avoid such includes. +#include "../include/fn.h" +#include "../include/subprocess.hpp" +#include "../include/strutil.hpp" + #import "SBridge.h" #include "logger_c.h" #include -#include "include/subprocess.hpp" -#include "include/strutil.hpp" #include "Logger.h" #include "LoggerWorker.hpp" diff --git a/launchers/macosx/Logger.h b/launchers/macosx/I2PLauncher/ObjectiveC/Logger.h similarity index 100% rename from launchers/macosx/Logger.h rename to launchers/macosx/I2PLauncher/ObjectiveC/Logger.h diff --git a/launchers/macosx/Logger.mm b/launchers/macosx/I2PLauncher/ObjectiveC/Logger.mm similarity index 100% rename from launchers/macosx/Logger.mm rename to launchers/macosx/I2PLauncher/ObjectiveC/Logger.mm diff --git a/launchers/macosx/LoggerWorker.cpp b/launchers/macosx/I2PLauncher/ObjectiveC/LoggerWorker.cpp similarity index 100% rename from launchers/macosx/LoggerWorker.cpp rename to launchers/macosx/I2PLauncher/ObjectiveC/LoggerWorker.cpp diff --git a/launchers/macosx/LoggerWorker.hpp b/launchers/macosx/I2PLauncher/ObjectiveC/LoggerWorker.hpp similarity index 98% rename from launchers/macosx/LoggerWorker.hpp rename to launchers/macosx/I2PLauncher/ObjectiveC/LoggerWorker.hpp index 24aead20c..4db9a18f8 100644 --- a/launchers/macosx/LoggerWorker.hpp +++ b/launchers/macosx/I2PLauncher/ObjectiveC/LoggerWorker.hpp @@ -20,7 +20,8 @@ #include #include -#include "include/sharedqueue.h" +// TODO: Configure the project to avoid such includes. +#include "../include/sharedqueue.h" #include "Logger.h" struct SharedLogWorkerImpl; diff --git a/launchers/macosx/RouterTask.h b/launchers/macosx/I2PLauncher/ObjectiveC/RouterTask.h similarity index 100% rename from launchers/macosx/RouterTask.h rename to launchers/macosx/I2PLauncher/ObjectiveC/RouterTask.h diff --git a/launchers/macosx/RouterTask.mm b/launchers/macosx/I2PLauncher/ObjectiveC/RouterTask.mm similarity index 97% rename from launchers/macosx/RouterTask.mm rename to launchers/macosx/I2PLauncher/ObjectiveC/RouterTask.mm index c789b3c19..9d2f3e8f0 100644 --- a/launchers/macosx/RouterTask.mm +++ b/launchers/macosx/I2PLauncher/ObjectiveC/RouterTask.mm @@ -5,7 +5,10 @@ #include #ifdef __cplusplus -#include "include/subprocess.hpp" +// TODO: Configure the project to avoid such includes. +#include "../include/subprocess.hpp" +#include "../include/PidWatcher.h" + #import "I2PLauncher-Swift.h" #include "AppDelegate.h" @@ -15,7 +18,6 @@ #include #endif -#include "include/PidWatcher.h" #import #import diff --git a/launchers/macosx/SBridge.h b/launchers/macosx/I2PLauncher/ObjectiveC/SBridge.h similarity index 95% rename from launchers/macosx/SBridge.h rename to launchers/macosx/I2PLauncher/ObjectiveC/SBridge.h index a0cd50b4a..ff3344cf0 100644 --- a/launchers/macosx/SBridge.h +++ b/launchers/macosx/I2PLauncher/ObjectiveC/SBridge.h @@ -17,7 +17,8 @@ #include #include #include -#include "include/fn.h" +// TODO: Configure the project to avoid such includes. +#include "../include/fn.h" namespace osx { inline void openUrl(NSString* url) diff --git a/launchers/macosx/SBridge.mm b/launchers/macosx/I2PLauncher/ObjectiveC/SBridge.mm similarity index 92% rename from launchers/macosx/SBridge.mm rename to launchers/macosx/I2PLauncher/ObjectiveC/SBridge.mm index b573b0132..678e6a609 100644 --- a/launchers/macosx/SBridge.mm +++ b/launchers/macosx/I2PLauncher/ObjectiveC/SBridge.mm @@ -25,7 +25,8 @@ #include "logger_c.h" #include "AppDelegate.h" -#include "include/fn.h" +// TODO: Configure the project to avoid such includes. +#include "../include/fn.h" @implementation SBridge diff --git a/launchers/macosx/I2PLauncher/ObjectiveC/logger_c.h b/launchers/macosx/I2PLauncher/ObjectiveC/logger_c.h new file mode 100644 index 000000000..102204b38 --- /dev/null +++ b/launchers/macosx/I2PLauncher/ObjectiveC/logger_c.h @@ -0,0 +1,88 @@ +// +// logger_c.h +// I2PLauncher +// +// Created by Mikal Villa on 30/09/2018. +// Copyright © 2018 The I2P Project. All rights reserved. +// + +#ifndef logger_c_h +#define logger_c_h + +#include "Logger.h" +#include "LoggerWorker.hpp" + +/* +void genericLogger(int loglevel, va_list params) { +#ifdef __cplusplus + const char * paramArray[10]; + int numParams = 0; + + NSString* arg = nil; + while ((arg = va_arg(params, NSString *))) { + paramArray[numParams++] = [arg cStringUsingEncoding:[NSString defaultCStringEncoding]]; + } + + switch (loglevel) { + case 0: + MLOGF(ANNOYING) << params; + break; + case 1: + MLOGF(DEBUG) << params; + break; + case 2: + MLOGF(INFO) << params; + break; + case 3: + MLOGF(WARN) << params; + break; + default: + assert(false); + } +#endif +} + */ + +inline void MLog(int loglevel, NSString* format, ...) +{ +#ifdef __cplusplus + + va_list vargs; + va_start(vargs, format); + NSString* formattedMessage = [[NSString alloc] initWithFormat:format arguments:vargs]; + va_end(vargs); + + NSString* message = formattedMessage; + + switch (loglevel) { + case 0: + MLOG(ANNOYING) << [message UTF8String]; + break; + case 1: + MLOG(DEBUG) << [message UTF8String]; + break; + case 2: + MLOG(INFO) << [message UTF8String]; + break; + case 3: + MLOG(WARN) << [message UTF8String]; + break; + case 4: + MLOG(ERROR) << [message UTF8String]; + break; + default: +#if DEBUG + assert(false); +#else + return; +#endif + } + +#endif +} + + + +#define MMLog(format_string,...) ((MLog(1, [NSString stringWithFormat:format_string,##__VA_ARGS__]))) + +#endif /* logger_c_h */