commit
e05de6706a
@ -0,0 +1,3 @@
|
||||
build
|
||||
*~
|
||||
.DS_Store
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,275 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
089C165DFE840E0CC02AAC07 /* English */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {609, 391}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{0, 45}";
|
||||
};
|
||||
};
|
||||
256AC3D80F4B6AC300CF3369 /* DDWRT_MonitorAppDelegate.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {720, 832}}";
|
||||
sepNavSelRange = "{1513, 0}";
|
||||
sepNavVisRange = "{163, 460}";
|
||||
sepNavWindowFrame = "{{61, 275}, {992, 808}}";
|
||||
};
|
||||
};
|
||||
256AC3D90F4B6AC300CF3369 /* DDWRT_MonitorAppDelegate.m */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1047, 1781}}";
|
||||
sepNavSelRange = "{2886, 0}";
|
||||
sepNavVisRange = "{1451, 910}";
|
||||
};
|
||||
};
|
||||
256AC3F00F4B6AF500CF3369 /* DDWRT_Monitor_Prefix.pch */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {698, 391}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{0, 157}";
|
||||
};
|
||||
};
|
||||
29B97313FDCFA39411CA2CEA /* Project object */ = {
|
||||
activeArchitecturePreference = x86_64;
|
||||
activeBuildConfigurationName = Debug;
|
||||
activeExecutable = F2CB88B8139017C000C2B7BC /* DDWRT-Monitor */;
|
||||
activeTarget = 8D1107260486CEB800E47090 /* DDWRT-Monitor */;
|
||||
addToTargets = (
|
||||
8D1107260486CEB800E47090 /* DDWRT-Monitor */,
|
||||
);
|
||||
breakpoints = (
|
||||
);
|
||||
codeSenseManager = F2CB88CB139017C500C2B7BC /* Code sense */;
|
||||
executables = (
|
||||
F2CB88B8139017C000C2B7BC /* DDWRT-Monitor */,
|
||||
);
|
||||
perUserDictionary = {
|
||||
"PBXConfiguration.PBXBreakpointsDataSource.v1:1CA1AED706398EBD00589147" = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXBreakpointsDataSource_BreakpointID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
20,
|
||||
198,
|
||||
20,
|
||||
99,
|
||||
99,
|
||||
29,
|
||||
20,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXBreakpointsDataSource_ActionID,
|
||||
PBXBreakpointsDataSource_TypeID,
|
||||
PBXBreakpointsDataSource_BreakpointID,
|
||||
PBXBreakpointsDataSource_UseID,
|
||||
PBXBreakpointsDataSource_LocationID,
|
||||
PBXBreakpointsDataSource_ConditionID,
|
||||
PBXBreakpointsDataSource_IgnoreCountID,
|
||||
PBXBreakpointsDataSource_ContinueID,
|
||||
);
|
||||
};
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
944,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
20,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
PBXFileDataSource_Target_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
904,
|
||||
60,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXTargetDataSource_PrimaryAttribute,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 328231609;
|
||||
PBXWorkspaceStateSaveDate = 328231609;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
F2511F2C139148970053990C /* PBXTextBookmark */ = F2511F2C139148970053990C /* PBXTextBookmark */;
|
||||
F2511F6413914A6B0053990C /* PBXTextBookmark */ = F2511F6413914A6B0053990C /* PBXTextBookmark */;
|
||||
F2511F8513914C350053990C /* PBXTextBookmark */ = F2511F8513914C350053990C /* PBXTextBookmark */;
|
||||
F251207E13915EF40053990C /* PBXBookmark */ = F251207E13915EF40053990C /* PBXBookmark */;
|
||||
F25120AD13918DE50053990C /* PBXBookmark */ = F25120AD13918DE50053990C /* PBXBookmark */;
|
||||
F25120AE13918DE50053990C /* PlistBookmark */ = F25120AE13918DE50053990C /* PlistBookmark */;
|
||||
F25121AB1392B72E0053990C /* PBXTextBookmark */ = F25121AB1392B72E0053990C /* PBXTextBookmark */;
|
||||
F25121AC1392B72E0053990C /* PBXTextBookmark */ = F25121AC1392B72E0053990C /* PBXTextBookmark */;
|
||||
F25121B21392D0610053990C /* PBXTextBookmark */ = F25121B21392D0610053990C /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = F2CB88CA139017C500C2B7BC /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
29B97316FDCFA39411CA2CEA /* main.m */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {609, 391}}";
|
||||
sepNavSelRange = "{264, 0}";
|
||||
sepNavVisRange = "{0, 264}";
|
||||
};
|
||||
};
|
||||
8D1107260486CEB800E47090 /* DDWRT-Monitor */ = {
|
||||
activeExec = 0;
|
||||
executables = (
|
||||
F2CB88B8139017C000C2B7BC /* DDWRT-Monitor */,
|
||||
);
|
||||
};
|
||||
F2511F2C139148970053990C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 089C165DFE840E0CC02AAC07 /* English */;
|
||||
name = "InfoPlist.strings: 1";
|
||||
rLen = 0;
|
||||
rLoc = 0;
|
||||
rType = 0;
|
||||
vrLen = 45;
|
||||
vrLoc = 0;
|
||||
};
|
||||
F2511F5B13914A120053990C /* MenuIcon.png */ = {
|
||||
uiCtxt = {
|
||||
sepNavWindowFrame = "{{15, 317}, {992, 808}}";
|
||||
};
|
||||
};
|
||||
F2511F6413914A6B0053990C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 29B97316FDCFA39411CA2CEA /* main.m */;
|
||||
name = "main.m: 15";
|
||||
rLen = 0;
|
||||
rLoc = 264;
|
||||
rType = 0;
|
||||
vrLen = 264;
|
||||
vrLoc = 0;
|
||||
};
|
||||
F2511F8513914C350053990C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 256AC3F00F4B6AF500CF3369 /* DDWRT_Monitor_Prefix.pch */;
|
||||
name = "DDWRT_Monitor_Prefix.pch: 1";
|
||||
rLen = 0;
|
||||
rLoc = 0;
|
||||
rType = 0;
|
||||
vrLen = 157;
|
||||
vrLoc = 0;
|
||||
};
|
||||
F251207E13915EF40053990C /* PBXBookmark */ = {
|
||||
isa = PBXBookmark;
|
||||
fRef = F2511F5B13914A120053990C /* MenuIcon.png */;
|
||||
};
|
||||
F25120AD13918DE50053990C /* PBXBookmark */ = {
|
||||
isa = PBXBookmark;
|
||||
fRef = F25120A113918CD10053990C /* AppIcon.icns */;
|
||||
};
|
||||
F25120AE13918DE50053990C /* PlistBookmark */ = {
|
||||
isa = PlistBookmark;
|
||||
fRef = 8D1107310486CEB800E47090 /* DDWRT_Monitor-Info.plist */;
|
||||
fallbackIsa = PBXBookmark;
|
||||
isK = 0;
|
||||
kPath = (
|
||||
NSPrincipalClass,
|
||||
);
|
||||
name = "/Users/mlalonde/Documents/DDWRT-Monitor/DDWRT_Monitor-Info.plist";
|
||||
rLen = 0;
|
||||
rLoc = 9223372036854775807;
|
||||
};
|
||||
F25121AB1392B72E0053990C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 256AC3D90F4B6AC300CF3369 /* DDWRT_MonitorAppDelegate.m */;
|
||||
name = "DDWRT_MonitorAppDelegate.m: 115";
|
||||
rLen = 0;
|
||||
rLoc = 2417;
|
||||
rType = 0;
|
||||
vrLen = 562;
|
||||
vrLoc = 2192;
|
||||
};
|
||||
F25121AC1392B72E0053990C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 256AC3D80F4B6AC300CF3369 /* DDWRT_MonitorAppDelegate.h */;
|
||||
name = "DDWRT_MonitorAppDelegate.h: 41";
|
||||
rLen = 292;
|
||||
rLoc = 1088;
|
||||
rType = 0;
|
||||
vrLen = 1064;
|
||||
vrLoc = 100;
|
||||
};
|
||||
F25121B21392D0610053990C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 256AC3D80F4B6AC300CF3369 /* DDWRT_MonitorAppDelegate.h */;
|
||||
name = "DDWRT_MonitorAppDelegate.h: 46";
|
||||
rLen = 0;
|
||||
rLoc = 1215;
|
||||
rType = 0;
|
||||
vrLen = 1063;
|
||||
vrLoc = 0;
|
||||
};
|
||||
F2CB88B8139017C000C2B7BC /* DDWRT-Monitor */ = {
|
||||
isa = PBXExecutable;
|
||||
activeArgIndices = (
|
||||
);
|
||||
argumentStrings = (
|
||||
);
|
||||
autoAttachOnCrash = 1;
|
||||
breakpointsEnabled = 0;
|
||||
configStateDict = {
|
||||
};
|
||||
customDataFormattersEnabled = 1;
|
||||
dataTipCustomDataFormattersEnabled = 1;
|
||||
dataTipShowTypeColumn = 1;
|
||||
dataTipSortType = 0;
|
||||
debuggerPlugin = GDBDebugging;
|
||||
disassemblyDisplayState = 0;
|
||||
dylibVariantSuffix = "";
|
||||
enableDebugStr = 1;
|
||||
environmentEntries = (
|
||||
);
|
||||
executableSystemSymbolLevel = 0;
|
||||
executableUserSymbolLevel = 0;
|
||||
libgmallocEnabled = 0;
|
||||
name = "DDWRT-Monitor";
|
||||
savedGlobals = {
|
||||
};
|
||||
showTypeColumn = 0;
|
||||
sourceDirectories = (
|
||||
);
|
||||
};
|
||||
F2CB88CA139017C500C2B7BC /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
F2CB88CB139017C500C2B7BC /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
}
|
@ -0,0 +1,318 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 45;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; };
|
||||
256AC3DA0F4B6AC300CF3369 /* DDWRT_MonitorAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 256AC3D90F4B6AC300CF3369 /* DDWRT_MonitorAppDelegate.m */; };
|
||||
8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
|
||||
8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
|
||||
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
|
||||
96DEDE2A139486BB00EF8526 /* WRTStatusClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 96DEDE29139486BB00EF8526 /* WRTStatusClient.m */; };
|
||||
F215851013930D1700853C55 /* WRTRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = F215850F13930D1700853C55 /* WRTRequest.m */; };
|
||||
F215851213931CF000853C55 /* MenuIconDisabled.png in Resources */ = {isa = PBXBuildFile; fileRef = F215851113931CF000853C55 /* MenuIconDisabled.png */; };
|
||||
F2511F5C13914A120053990C /* MenuIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = F2511F5B13914A120053990C /* MenuIcon.png */; };
|
||||
F2511FFB1391543E0053990C /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F2511FFA1391543E0053990C /* WebKit.framework */; };
|
||||
F25120A213918CD10053990C /* AppIcon.icns in Resources */ = {isa = PBXBuildFile; fileRef = F25120A113918CD10053990C /* AppIcon.icns */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
|
||||
13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
|
||||
1DDD58150DA1D0A300B32029 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||
256AC3D80F4B6AC300CF3369 /* DDWRT_MonitorAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDWRT_MonitorAppDelegate.h; sourceTree = "<group>"; };
|
||||
256AC3D90F4B6AC300CF3369 /* DDWRT_MonitorAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDWRT_MonitorAppDelegate.m; sourceTree = "<group>"; };
|
||||
256AC3F00F4B6AF500CF3369 /* DDWRT_Monitor_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDWRT_Monitor_Prefix.pch; sourceTree = "<group>"; };
|
||||
29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||
29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
|
||||
29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
|
||||
8D1107310486CEB800E47090 /* DDWRT_Monitor-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "DDWRT_Monitor-Info.plist"; sourceTree = "<group>"; };
|
||||
8D1107320486CEB800E47090 /* DDWRT-Monitor.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "DDWRT-Monitor.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
96DEDE28139486BB00EF8526 /* WRTStatusClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WRTStatusClient.h; sourceTree = "<group>"; };
|
||||
96DEDE29139486BB00EF8526 /* WRTStatusClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WRTStatusClient.m; sourceTree = "<group>"; };
|
||||
F215850E13930D1700853C55 /* WRTRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WRTRequest.h; sourceTree = "<group>"; };
|
||||
F215850F13930D1700853C55 /* WRTRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WRTRequest.m; sourceTree = "<group>"; };
|
||||
F215851113931CF000853C55 /* MenuIconDisabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = MenuIconDisabled.png; sourceTree = "<group>"; };
|
||||
F2511F5B13914A120053990C /* MenuIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = MenuIcon.png; sourceTree = "<group>"; };
|
||||
F2511FFA1391543E0053990C /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
|
||||
F25120A113918CD10053990C /* AppIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon.icns; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
8D11072E0486CEB800E47090 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
|
||||
F2511FFB1391543E0053990C /* WebKit.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
080E96DDFE201D6D7F000001 /* Classes */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
256AC3D80F4B6AC300CF3369 /* DDWRT_MonitorAppDelegate.h */,
|
||||
256AC3D90F4B6AC300CF3369 /* DDWRT_MonitorAppDelegate.m */,
|
||||
96DEDE28139486BB00EF8526 /* WRTStatusClient.h */,
|
||||
96DEDE29139486BB00EF8526 /* WRTStatusClient.m */,
|
||||
F215850E13930D1700853C55 /* WRTRequest.h */,
|
||||
F215850F13930D1700853C55 /* WRTRequest.m */,
|
||||
);
|
||||
name = Classes;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
|
||||
);
|
||||
name = "Linked Frameworks";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
29B97324FDCFA39411CA2CEA /* AppKit.framework */,
|
||||
13E42FB307B3F0F600E4EEF1 /* CoreData.framework */,
|
||||
29B97325FDCFA39411CA2CEA /* Foundation.framework */,
|
||||
);
|
||||
name = "Other Frameworks";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
19C28FACFE9D520D11CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D1107320486CEB800E47090 /* DDWRT-Monitor.app */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
29B97314FDCFA39411CA2CEA /* DDWRT-Monitor */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
080E96DDFE201D6D7F000001 /* Classes */,
|
||||
29B97315FDCFA39411CA2CEA /* Other Sources */,
|
||||
29B97317FDCFA39411CA2CEA /* Resources */,
|
||||
29B97323FDCFA39411CA2CEA /* Frameworks */,
|
||||
19C28FACFE9D520D11CA2CBB /* Products */,
|
||||
);
|
||||
name = "DDWRT-Monitor";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
29B97315FDCFA39411CA2CEA /* Other Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
256AC3F00F4B6AF500CF3369 /* DDWRT_Monitor_Prefix.pch */,
|
||||
29B97316FDCFA39411CA2CEA /* main.m */,
|
||||
);
|
||||
name = "Other Sources";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
29B97317FDCFA39411CA2CEA /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F215851113931CF000853C55 /* MenuIconDisabled.png */,
|
||||
F25120A113918CD10053990C /* AppIcon.icns */,
|
||||
F2511F5B13914A120053990C /* MenuIcon.png */,
|
||||
8D1107310486CEB800E47090 /* DDWRT_Monitor-Info.plist */,
|
||||
089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
|
||||
1DDD58140DA1D0A300B32029 /* MainMenu.xib */,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
29B97323FDCFA39411CA2CEA /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
|
||||
1058C7A2FEA54F0111CA2CBB /* Other Frameworks */,
|
||||
F2511FFA1391543E0053990C /* WebKit.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
8D1107260486CEB800E47090 /* DDWRT-Monitor */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "DDWRT-Monitor" */;
|
||||
buildPhases = (
|
||||
8D1107290486CEB800E47090 /* Resources */,
|
||||
8D11072C0486CEB800E47090 /* Sources */,
|
||||
8D11072E0486CEB800E47090 /* Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = "DDWRT-Monitor";
|
||||
productInstallPath = "$(HOME)/Applications";
|
||||
productName = "DDWRT-Monitor";
|
||||
productReference = 8D1107320486CEB800E47090 /* DDWRT-Monitor.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
29B97313FDCFA39411CA2CEA /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "DDWRT-Monitor" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
English,
|
||||
Japanese,
|
||||
French,
|
||||
German,
|
||||
en,
|
||||
);
|
||||
mainGroup = 29B97314FDCFA39411CA2CEA /* DDWRT-Monitor */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D1107260486CEB800E47090 /* DDWRT-Monitor */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
8D1107290486CEB800E47090 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
|
||||
1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */,
|
||||
F2511F5C13914A120053990C /* MenuIcon.png in Resources */,
|
||||
F25120A213918CD10053990C /* AppIcon.icns in Resources */,
|
||||
F215851213931CF000853C55 /* MenuIconDisabled.png in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
8D11072C0486CEB800E47090 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8D11072D0486CEB800E47090 /* main.m in Sources */,
|
||||
256AC3DA0F4B6AC300CF3369 /* DDWRT_MonitorAppDelegate.m in Sources */,
|
||||
F215851013930D1700853C55 /* WRTRequest.m in Sources */,
|
||||
96DEDE2A139486BB00EF8526 /* WRTStatusClient.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
089C165DFE840E0CC02AAC07 /* English */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
1DDD58140DA1D0A300B32029 /* MainMenu.xib */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
1DDD58150DA1D0A300B32029 /* English */,
|
||||
);
|
||||
name = MainMenu.xib;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
C01FCF4B08A954540054247B /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = YES;
|
||||
GCC_MODEL_TUNING = G5;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = DDWRT_Monitor_Prefix.pch;
|
||||
INFOPLIST_FILE = "DDWRT_Monitor-Info.plist";
|
||||
INSTALL_PATH = "$(HOME)/Applications";
|
||||
PRODUCT_NAME = "DDWRT-Monitor";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
C01FCF4C08A954540054247B /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_MODEL_TUNING = G5;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = DDWRT_Monitor_Prefix.pch;
|
||||
INFOPLIST_FILE = "DDWRT_Monitor-Info.plist";
|
||||
INSTALL_PATH = "$(HOME)/Applications";
|
||||
PRODUCT_NAME = "DDWRT-Monitor";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
C01FCF4F08A954540054247B /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
PREBINDING = NO;
|
||||
SDKROOT = macosx10.6;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
C01FCF5008A954540054247B /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
PREBINDING = NO;
|
||||
SDKROOT = macosx10.6;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "DDWRT-Monitor" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
C01FCF4B08A954540054247B /* Debug */,
|
||||
C01FCF4C08A954540054247B /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
C01FCF4E08A954540054247B /* Build configuration list for PBXProject "DDWRT-Monitor" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
C01FCF4F08A954540054247B /* Debug */,
|
||||
C01FCF5008A954540054247B /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:DDWRT-Monitor.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Bucket
|
||||
type = "1"
|
||||
version = "1.0">
|
||||
</Bucket>
|
@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D1107260486CEB800E47090"
|
||||
BuildableName = "DDWRT-Monitor.app"
|
||||
BlueprintName = "DDWRT-Monitor"
|
||||
ReferencedContainer = "container:DDWRT-Monitor.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
|
||||
displayScaleIsEnabled = "NO"
|
||||
displayScale = "1.00"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Debug">
|
||||
<BuildableProductRunnable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D1107260486CEB800E47090"
|
||||
BuildableName = "DDWRT-Monitor.app"
|
||||
BlueprintName = "DDWRT-Monitor"
|
||||
ReferencedContainer = "container:DDWRT-Monitor.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
displayScaleIsEnabled = "NO"
|
||||
displayScale = "1.00"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release">
|
||||
<BuildableProductRunnable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D1107260486CEB800E47090"
|
||||
BuildableName = "DDWRT-Monitor.app"
|
||||
BlueprintName = "DDWRT-Monitor"
|
||||
ReferencedContainer = "container:DDWRT-Monitor.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>DDWRT-Monitor.xcscheme</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>8D1107260486CEB800E47090</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Bucket
|
||||
type = "1"
|
||||
version = "1.0">
|
||||
</Bucket>
|
@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D1107260486CEB800E47090"
|
||||
BuildableName = "DDWRT-Monitor.app"
|
||||
BlueprintName = "DDWRT-Monitor"
|
||||
ReferencedContainer = "container:DDWRT-Monitor.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
|
||||
displayScaleIsEnabled = "NO"
|
||||
displayScale = "1.00"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Debug">
|
||||
<BuildableProductRunnable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D1107260486CEB800E47090"
|
||||
BuildableName = "DDWRT-Monitor.app"
|
||||
BlueprintName = "DDWRT-Monitor"
|
||||
ReferencedContainer = "container:DDWRT-Monitor.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
displayScaleIsEnabled = "NO"
|
||||
displayScale = "1.00"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release">
|
||||
<BuildableProductRunnable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "8D1107260486CEB800E47090"
|
||||
BuildableName = "DDWRT-Monitor.app"
|
||||
BlueprintName = "DDWRT-Monitor"
|
||||
ReferencedContainer = "container:DDWRT-Monitor.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>DDWRT-Monitor.xcscheme</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>8D1107260486CEB800E47090</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>AppIcon.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.spurf.${PRODUCT_NAME:rfc1034identifier}</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string>public.app-category.utilities</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>${MACOSX_DEPLOYMENT_TARGET}</string>
|
||||
<key>NSAppleScriptEnabled</key>
|
||||
<false/>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>MainMenu</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>NSApplication</string>
|
||||
<key>LSUIElement</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
@ -0,0 +1,105 @@
|
||||
//
|
||||
// DDWRT_MonitorAppDelegate.h
|
||||
// DDWRT-Monitor
|
||||
//
|
||||
// Created by Matthieu Lalonde on 11-05-27.
|
||||
// Copyright 2011 __MyCompanyName__. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import<WebKit/WebKit.h>
|
||||
#import "WRTStatusClient.h"
|
||||
|
||||
@interface DDWRT_MonitorAppDelegate : NSObject <NSApplicationDelegate> {
|
||||
IBOutlet NSMenu *AppMenu;
|
||||
|
||||
IBOutlet NSPanel *ConfigPanel;
|
||||
IBOutlet NSPanel *BandwidthViewer;
|
||||
|
||||
IBOutlet WebView* BandwidthViewerWebView;
|
||||
|
||||
IBOutlet id configFieldHostname;
|
||||
IBOutlet id configFieldProtocol;
|
||||
IBOutlet id configFieldProtocolHTTP;
|
||||
IBOutlet id configFieldProtocolHTTPS;
|
||||
IBOutlet id configFieldPort;
|
||||
IBOutlet id configFieldRefresh;
|
||||
IBOutlet id configLabelRefresh;
|
||||
IBOutlet id configFieldUseBytes;
|
||||
IBOutlet id configFieldShowIcon;
|
||||
IBOutlet id configLabelStatus;
|
||||
IBOutlet NSProgressIndicator *configStateStatus;
|
||||
IBOutlet id configButtonSave;
|
||||
|
||||
IBOutlet id menuUptime;
|
||||
IBOutlet id menuLoad;
|
||||
IBOutlet id menuWanIP;
|
||||
IBOutlet id menuConnections;
|
||||
|
||||
IBOutlet id menuWanStatus;
|
||||
IBOutlet id menuWanUptime;
|
||||
|
||||
IBOutlet id menuWanTrafficIn;
|
||||
IBOutlet id menuWanTrafficOut;
|
||||
|
||||
IBOutlet id menuWanSeparator;
|
||||
|
||||
IBOutlet id menuWanDNS;
|
||||
IBOutlet id menuWanDNSItem0;
|
||||
IBOutlet id menuWanDNSItem1;
|
||||
IBOutlet id menuWanDNSItem2;
|
||||
IBOutlet id menuWanBandwidthGraph;
|
||||
|
||||
|
||||
NSStatusItem *_appMenu;
|
||||
NSAlert *modalWindow;
|
||||
|
||||
NSTimer *_readTimer;
|
||||
NSTimeInterval _lastSpeedRead;
|
||||
|
||||
WRTStatusClient *wrt_client;
|
||||
|
||||
unsigned long long _lastInThroughput;
|
||||
unsigned long long _lastOutThroughput;
|
||||
|
||||
BOOL _wrtReachable;
|
||||
}
|
||||
|
||||
- (void) terminate:(id)sender;
|
||||
- (void) showConfigPanel:(id)sender;
|
||||
- (void) hideConfigPanel:(id)sender;
|
||||
- (void) showBandwidthViewer:(id)sender;
|
||||
- (void) hideBandwidthViewer:(id)sender;
|
||||
- (void) showMenubar;
|
||||
- (void) hideMenubar;
|
||||
- (void) showMenubarIcon:(BOOL)enabled;
|
||||
- (void) hideMenubarIcon;
|
||||
- (void) setMenubarText:(NSString *)menubarText;
|
||||
|
||||
- (void) setConfigHostname:(id)sender;
|
||||
- (void) setConfigProtocol:(id)sender;
|
||||
- (void) setConfigPort:(id)sender;
|
||||
- (void) setConfigRefresh:(id)sender;
|
||||
- (void) setConfigWan:(id)sender;
|
||||
- (void) setConfigBytes:(id)sender;
|
||||
- (void) setConfigIcon:(id)sender;
|
||||
|
||||
- (IBAction) refreshMenu:(id)sender;
|
||||
- (IBAction) refreshSystemMenu:(id)sender;
|
||||
- (IBAction) refreshWanMenu:(id)sender;
|
||||
- (void) wanRequestCallback:(NSData *)data;
|
||||
- (IBAction) refreshClientsMenu:(id)sender;
|
||||
|
||||
- (void) saveConfig:(id)sender;
|
||||
- (void) updateThroughput;
|
||||
- (void) throughputCallback:(NSData *)data;
|
||||
- (void) doUpdateStatus:(NSData *)data;
|
||||
- (void) configSaveRequestCallback:(NSData *)data;
|
||||
- (NSString *) getKey:(NSString * )data key:(NSString *)key;
|
||||
|
||||
- (NSString *) stringFromFileSize:(unsigned long long)theSize;
|
||||
//@property (assign) IBOutlet NSWindow *window;
|
||||
|
||||
- (void) connection:(NSURLConnection*)connection didReceiveData:(NSData*)data;
|
||||
|
||||
@end
|
@ -0,0 +1,481 @@
|
||||
//
|
||||
// DDWRT_MonitorAppDelegate.m
|
||||
// DDWRT-Monitor
|
||||
//
|
||||
// Created by Matthieu Lalonde on 11-05-27.
|
||||
// Copyright 2011 __MyCompanyName__. All rights reserved.
|
||||
//
|
||||
|
||||
#import "DDWRT_MonitorAppDelegate.h"
|
||||
#import "WRTRequest.h"
|
||||
#import "WRTStatusClient.h"
|
||||
|
||||
@implementation DDWRT_MonitorAppDelegate
|
||||
|
||||
//@synthesize window;
|
||||
|
||||
//- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
|
||||
- (void) awakeFromNib
|
||||
{
|
||||
NSLog(@"Spike debug start.");
|
||||
|
||||
wrt_client = [[WRTStatusClient alloc] initWithHostname:@"router" port:80 username:@"spike" password:@"aaaassss"];
|
||||
|
||||
[wrt_client getStatusUpdate:@"graph_if.svg?vlan2" delegate: self];
|
||||
|
||||
NSLog(@"Spike debug end.");
|
||||
|
||||
|
||||
// Insert code here to initialize your application
|
||||
[self showMenubar];
|
||||
|
||||
_wrtReachable = false;
|
||||
|
||||
// initialize defaults
|
||||
NSString *hostname = [[NSUserDefaults standardUserDefaults] stringForKey:@"hostname"];
|
||||
|
||||
if (hostname == nil) // App first run: set up user defaults.
|
||||
{
|
||||
NSDictionary *appDefaults = [NSDictionary dictionaryWithObjectsAndKeys:nil];
|
||||
|
||||
NSLog(@"Creating new user defaults");
|
||||
|
||||
// do any other initialization you want to do here - e.g. the starting default values.
|
||||
//[[NSUserDefaults standardUserDefaults] setObject:@"192.168.1.1" foKey:@"hostname"];
|
||||
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"showMenuIcon"];
|
||||
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"useBytes"];
|
||||
[[NSUserDefaults standardUserDefaults] setInteger:80 forKey:@"port"];
|
||||
[[NSUserDefaults standardUserDefaults] setInteger:4 forKey:@"refreshTime"];
|
||||
|
||||
// sync the defaults to disk
|
||||
[[NSUserDefaults standardUserDefaults] registerDefaults:appDefaults];
|
||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||
|
||||
// TODO: Add modal alert "First launch" here...
|
||||
[self showConfigPanel:nil];
|
||||
} else {
|
||||
NSLog(@"Using existing user defaults");
|
||||
|
||||
//_readTimer = [NSTimer scheduledTimerWithTimeInterval:[[NSUserDefaults standardUserDefaults] integerForKey:@"refreshTime"] target:self selector:@selector(updateThroughput:) userInfo:nil repeats:YES];
|
||||
//[_readTimer fire];
|
||||
|
||||
[self updateThroughput];
|
||||
|
||||
WRTRequest *wrtr = [[WRTRequest alloc] init];
|
||||
|
||||
[wrtr doRequest:self requestSelector:@selector(doUpdateStatus:) uri:@"Status_Router.live.asp"];
|
||||
}
|
||||
}
|
||||
|
||||
- (void) dealloc {
|
||||
//[_readTimer invalidate];
|
||||
[AppMenu release];
|
||||
[_appMenu release];
|
||||
[ConfigPanel release];
|
||||
[BandwidthViewer release];
|
||||
[modalWindow release];
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void) terminate:(id)sender {
|
||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||
[self dealloc];
|
||||
[[NSApplication sharedApplication] terminate:self];
|
||||
}
|
||||
|
||||
- (void) showMenubar
|
||||
{
|
||||
NSLog(@"Showing Menu Item");
|
||||
|
||||
NSStatusBar* bar = [NSStatusBar systemStatusBar];
|
||||
_appMenu = [bar statusItemWithLength:NSVariableStatusItemLength];
|
||||
[_appMenu retain];
|
||||
|
||||
//[self setMenubarText:@"000KB/s\n000KB/s"];
|
||||
|
||||
//BOOL showIcon = [[NSUserDefaults standardUserDefaults] boolForKey:@"showMenuIcon"];
|
||||
//if (showIcon == true) {
|
||||
[self showMenubarIcon:false];
|
||||
//}
|
||||
|
||||
[_appMenu setHighlightMode:YES];
|
||||
[_appMenu setMenu:AppMenu];
|
||||
}
|
||||
|
||||
- (void) hideMenubar
|
||||
{
|
||||
[_appMenu release];
|
||||
_appMenu = nil;
|
||||
[AppMenu release];
|
||||
AppMenu = nil;
|
||||
}
|
||||
|
||||
- (void) showMenubarIcon:(BOOL)enabled
|
||||
{
|
||||
NSImage* icon = [NSImage imageNamed:(enabled == true ? @"MenuIcon" : @"MenuIconDisabled")];
|
||||
[_appMenu setImage:icon];
|
||||
[_appMenu setAlternateImage:nil];
|
||||
[icon release];
|
||||
}
|
||||
|
||||
- (void) hideMenubarIcon
|
||||
{
|
||||
[_appMenu setImage:nil];
|
||||
[_appMenu setAlternateImage:nil];
|
||||
}
|
||||
|
||||
- (void) setMenubarText:(NSString *)menubarText
|
||||
{
|
||||
|
||||
// Todo set proper line height
|
||||
NSFontManager *fontManager = [NSFontManager sharedFontManager];
|
||||
NSFont *menuFont = [fontManager fontWithFamily:@"Lucida Grande" traits:NSBoldFontMask weight:10 size:8];
|
||||
|
||||
NSDictionary *titleAttributes = [[NSDictionary alloc] initWithObjectsAndKeys:menuFont, NSFontAttributeName,
|
||||
[NSColor blackColor], NSForegroundColorAttributeName, nil];
|
||||
NSAttributedString *menuTitle = [[NSAttributedString alloc] initWithString:menubarText attributes:titleAttributes];
|
||||
|
||||
[_appMenu setAttributedTitle:menuTitle];
|
||||
|
||||
[fontManager release];
|
||||
[menuFont release];
|
||||
[menuTitle release];
|
||||
}
|
||||
|
||||
- (void) showConfigPanel:(id)sender
|
||||
{
|
||||
[configFieldShowIcon setState:([[NSUserDefaults standardUserDefaults] boolForKey:@"showMenuIcon"] ? 1 : 0)];
|
||||
[configFieldUseBytes setState:([[NSUserDefaults standardUserDefaults] boolForKey:@"useBytes"] ? 1 : 0)];
|
||||
|
||||
NSString *hostname = [[NSUserDefaults standardUserDefaults] stringForKey:@"hostname"];
|
||||
if (hostname != nil) {
|
||||
[configFieldHostname setStringValue:hostname];
|
||||
}
|
||||
|
||||
[configFieldPort setIntValue:[[NSUserDefaults standardUserDefaults] integerForKey:@"port"]];
|
||||
|
||||
[configFieldRefresh setIntegerValue:[[NSUserDefaults standardUserDefaults] integerForKey:@"refreshTime"]];
|
||||
|
||||
[configLabelRefresh setStringValue:[NSString stringWithFormat:@"%d s", ([[NSUserDefaults standardUserDefaults] integerForKey:@"refreshTime"] + 1)]];
|
||||
|
||||
[ConfigPanel makeKeyAndOrderFront:nil];
|
||||
}
|
||||
|
||||
- (void) hideConfigPanel:(id)sender
|
||||
{
|
||||
NSString *hostname = [[NSUserDefaults standardUserDefaults] stringForKey:@"hostname"];
|
||||
|
||||
if (hostname == nil && [[sender title] isEqualToString:@"Cancel"]) {
|
||||
// TODO: Add modal alert "will quit if not configured"
|
||||
[self terminate:nil];
|
||||
}
|
||||
|
||||
[ConfigPanel orderOut:nil];
|
||||
}
|
||||
|
||||
- (void) showBandwidthViewer:(id)sender
|
||||
{
|
||||
|
||||
|
||||
|
||||
// NSString *urlAddress = [NSString stringWithFormat:@"https://%@:%d/graph_if.svg?ppp1",
|
||||
// [[NSUserDefaults standardUserDefaults] stringForKey:@"hostname"],
|
||||
// [[NSUserDefaults standardUserDefaults] integerForKey:@"port"]];
|
||||
// NSLog(@"%@", urlAddress);
|
||||
//
|
||||
|
||||
[BandwidthViewer makeKeyAndOrderFront:nil];
|
||||
|
||||
NSURLRequest *request = [[wrt_client buildRequest:@"graph_if.svg?vlan2"] retain];
|
||||
|
||||
[ [BandwidthViewerWebView mainFrame] loadRequest: request ];
|
||||
}
|
||||
|
||||
- (void) hideBandwidthViewer:(id)sender
|
||||
{
|
||||
[BandwidthViewer orderOut:nil];
|
||||
}
|
||||
|
||||
- (void) setConfigHostname:(id)sender
|
||||
{
|
||||
NSLog(@"%@", [sender title]);
|
||||
}
|
||||
|
||||
- (IBAction) setConfigProtocol:(id)sender
|
||||
{
|
||||
NSLog(@"%@", [sender title]);
|
||||
if ([sender state] == NSOnState) {
|
||||
NSLog(@"Yes");
|
||||
//NSLog(@"%s", [sender title]);
|
||||
} else {
|
||||
NSLog(@"No");
|
||||
//NSLog(@"%s", [sender title]);
|
||||
}
|
||||
}
|
||||
|
||||
- (void) setConfigPort:(id)sender
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
- (void) setConfigRefresh:(id)sender
|
||||
{
|
||||
[configLabelRefresh setStringValue:[NSString stringWithFormat:@"%u s", ([sender integerValue] + 1)]];
|
||||
}
|
||||
|
||||
- (void) setConfigWan:(id)sender
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
- (void) setConfigBytes:(id)sender
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
- (void) setConfigIcon:(id)sender
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
- (void) saveConfig:(id)sender
|
||||
{
|
||||
[configStateStatus startAnimation:nil];
|
||||
[configStateStatus setHidden:false];
|
||||
|
||||
WRTRequest *wrtr = [[WRTRequest alloc] init];
|
||||
|
||||
[wrtr doRequest:self requestSelector:@selector(configSaveRequestCallback:) uri:@"Status_Router.live.asp"];
|
||||
}
|
||||
|
||||
-(NSString *)getKey:(NSString *)stringData key:(NSString *)key
|
||||
{
|
||||
NSString *keyString = [NSString stringWithFormat:@"%@::", key];
|
||||
NSString *returnData;
|
||||
NSRange formatValid = [stringData rangeOfString:@"}"];
|
||||
|
||||
if (formatValid.location != NSNotFound) {
|
||||
NSRange startRange = [stringData rangeOfString:keyString];
|
||||
|
||||
if (startRange.location != NSNotFound) {
|
||||
|
||||
returnData = [NSString stringWithString:stringData];
|
||||
returnData = [returnData substringFromIndex:(startRange.location + [keyString length])];
|
||||
returnData = [returnData substringToIndex:[returnData rangeOfString:@"}"].location];
|
||||
}
|
||||
|
||||
returnData = [returnData stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
|
||||
}
|
||||
|
||||
//[keyString release];
|
||||
|
||||
return returnData;
|
||||
|
||||
}
|
||||
|
||||
-(void)configSaveRequestCallback:(NSData *)data
|
||||
{
|
||||
// TODO check that the request is actually successful
|
||||
|
||||
NSString *hostname = [configFieldHostname stringValue];
|
||||
[[NSUserDefaults standardUserDefaults] setObject:hostname forKey:@"hostname"];
|
||||
|
||||
NSString *port = [configFieldPort stringValue];
|
||||
[[NSUserDefaults standardUserDefaults] setObject:port forKey:@"port"];
|
||||
|
||||
NSLog(@"Got %@", hostname);
|
||||
|
||||
//NSLog(@"%@", [configFieldProtocol str]);
|
||||
|
||||
[[NSUserDefaults standardUserDefaults] setInteger:[configFieldRefresh integerValue] forKey:@"refreshTime"];
|
||||
|
||||
[[NSUserDefaults standardUserDefaults] setBool:([configFieldUseBytes state] == 1 ? true: false) forKey:@"useBytes"];
|
||||
|
||||
if ([configFieldShowIcon state] == NSOffState && [[NSUserDefaults standardUserDefaults] boolForKey:@"showMenuIcon"] == true) {
|
||||
[self hideMenubarIcon];
|
||||
} else if ([configFieldShowIcon state] == NSOnState && [[NSUserDefaults standardUserDefaults] boolForKey:@"showMenuIcon"] == false) {
|
||||
[self showMenubarIcon:false];
|
||||
}
|
||||
|
||||
[[NSUserDefaults standardUserDefaults] setBool:([configFieldShowIcon state] == 1 ? true: false) forKey:@"showMenuIcon"];
|
||||
|
||||
[configStateStatus stopAnimation:nil];
|
||||
[configStateStatus setHidden:true];
|
||||
|
||||
[self doUpdateStatus:data];
|
||||
|
||||
[self hideConfigPanel:nil];
|
||||
}
|
||||
|
||||
- (void) updateThroughput
|
||||
{
|
||||
|
||||
WRTRequest *wrtr = [[WRTRequest alloc] init];
|
||||
|
||||
[wrtr doRequest:self requestSelector:@selector(throughputCallback:) uri:@"fetchif.cgi?ppp1"];
|
||||
}
|
||||
|
||||
- (void) throughputCallback:(NSData *)data
|
||||
{
|
||||
|
||||
NSDate *start = [NSDate date];
|
||||
NSTimeInterval timeInterval = [start timeIntervalSinceNow];
|
||||
NSLog(@"%f", timeInterval);
|
||||
|
||||
NSString *stringData = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
|
||||
stringData = [stringData substringFromIndex:([stringData rangeOfString:@":"].location + 1)];
|
||||
NSArray *listItems = [stringData componentsSeparatedByString:@" "];
|
||||
|
||||
NSLog(@"%@", [listItems objectAtIndex:0]);
|
||||
unsigned long long ifIn = [NSNumber numberWithString:[listItems objectAtIndex:0]];
|
||||
unsigned long long ifOut = [NSNumber numberWithString:[listItems objectAtIndex:8]];
|
||||
|
||||
NSTimeInterval currentTime = [NSDate timeIntervalSinceReferenceDate];
|
||||
}
|
||||
|
||||
-(void)doUpdateStatus:(NSData *)data
|
||||
{
|
||||
NSString *stringData = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
|
||||
|
||||
NSString *ipconn = [self getKey:stringData key:@"ip_conntrack"];
|
||||
|
||||
NSString *wanip = [self getKey:stringData key:@"ipinfo"];
|
||||
wanip = [wanip substringFromIndex:([wanip rangeOfString:@" "].location+1)];
|
||||
|
||||
NSString *uptime = [self getKey:stringData key:@"uptime"];
|
||||
NSString *loadSplit = @", load average: ";
|
||||
NSString *load = [uptime substringFromIndex:[uptime rangeOfString:loadSplit].location+[loadSplit length]];
|
||||
uptime = [uptime substringToIndex:[uptime rangeOfString:@", load"].location]; // Cut the load
|
||||
uptime = [uptime substringFromIndex:[uptime rangeOfString:@" "].location+1]; // Trim
|
||||
uptime = [uptime stringByReplacingCharactersInRange:NSMakeRange(0,1) withString:[[uptime substringToIndex:1] uppercaseString]]; // UCFirst
|
||||
|
||||
[menuWanIP setTitle:wanip];
|
||||
[menuUptime setTitle:uptime];
|
||||
[menuLoad setTitle:load];
|
||||
[menuLoad setHidden:false];
|
||||
[menuConnections setTitle:[NSString stringWithFormat:@"Connections: %@", ipconn]];
|
||||
}
|
||||
|
||||
- (void) refreshMenu:(id)sender
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
- (void) refreshSystemMenu:(id)sender
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
- (void) refreshWanMenu:(id)sender
|
||||
{
|
||||
NSLog(@"Refreshing Wan Menu");
|
||||
WRTRequest *wrtr = [[WRTRequest alloc] init];
|
||||
|
||||
[wrtr doRequest:self requestSelector:@selector(wanRequestCallback:) uri:@"Status_Internet.live.asp"];
|
||||
}
|
||||
|
||||
- (void) wanRequestCallback:(NSData *)data
|
||||
{
|
||||
NSString *stringData = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
|
||||
|
||||
NSString *wanStatus = [self getKey:stringData key:@"wan_status"];
|
||||
NSString *wanName = [self getKey:stringData key:@"wan_shortproto"];
|
||||
if ([wanName isEqualToString:@"pppoe"] == true) {
|
||||
wanName = @"PPPoE";
|
||||
} else if ([wanName isEqualToString:@"static"] == true) {
|
||||
wanName = @"Static";
|
||||
} else {
|
||||
wanName = [wanName uppercaseString];
|
||||
}
|
||||
|
||||
wanStatus = [wanStatus substringToIndex:[wanStatus rangeOfString:@"&"].location];
|
||||
[menuWanStatus setTitle:[NSString stringWithFormat:@"%@ %@", wanName, wanStatus]];
|
||||
|
||||
if ([_appMenu image] != nil) {
|
||||
[self showMenubarIcon:[wanStatus isEqualToString:@"Connected"]];
|
||||
}
|
||||
|
||||
NSString *wanUptime = [self getKey:stringData key:@"wan_uptime"];
|
||||
if ([wanStatus isEqualToString:@"Connected"] == true) {
|
||||
[menuWanUptime setTitle:wanUptime];
|
||||
[menuWanUptime setHidden:false];
|
||||
[menuWanSeparator setHidden:false];
|
||||
[menuWanBandwidthGraph setEnabled:true];
|
||||
[menuWanTrafficIn setHidden:false];
|
||||
[menuWanTrafficOut setHidden:false];
|
||||
|
||||
} else {
|
||||
[menuWanUptime setHidden:true];
|
||||
[menuWanSeparator setHidden:true];
|
||||
[menuWanBandwidthGraph setEnabled:false];
|
||||
[menuWanTrafficIn setHidden:true];
|
||||
[menuWanTrafficOut setHidden:true];
|
||||
|
||||
}
|
||||
|
||||
NSString *trafficIn = [self getKey:stringData key:@"ttraff_in"];
|
||||
NSString *trafficOut = [self getKey:stringData key:@"ttraff_out"];
|
||||
trafficIn = [self stringFromFileSize:([trafficIn longLongValue] * 1024 * 1024)];
|
||||
trafficOut = [self stringFromFileSize:([trafficOut longLongValue] * 1024 * 1024)];
|
||||
|
||||
[menuWanTrafficIn setTitle:[NSString stringWithFormat:@"In: %@", trafficIn]];
|
||||
[menuWanTrafficOut setTitle:[NSString stringWithFormat:@"Out: %@", trafficOut]];
|
||||
|
||||
NSString *wanDNS0 = [self getKey:stringData key:@"wan_dns0"];
|
||||
NSString *wanDNS1 = [self getKey:stringData key:@"wan_dns1"];
|
||||
NSString *wanDNS2 = [self getKey:stringData key:@"wan_dns2"];
|
||||
|
||||
if ([wanDNS0 length] > 0) {
|
||||
[menuWanDNS setEnabled:true];
|
||||
[menuWanDNSItem0 setTitle: wanDNS0];
|
||||
[menuWanDNSItem0 setHidden:false];
|
||||
}
|
||||
|
||||
if ([wanDNS1 length] > 0) {
|
||||
[menuWanDNS setEnabled:true];
|
||||
[menuWanDNSItem1 setTitle: wanDNS1];
|
||||
[menuWanDNSItem1 setHidden:false];
|
||||
}
|
||||
|
||||
if ([wanDNS2 length] > 0) {
|
||||
[menuWanDNS setEnabled:true];
|
||||
[menuWanDNSItem2 setTitle: wanDNS2];
|
||||
[menuWanDNSItem2 setHidden:false];
|
||||
}
|
||||
|
||||
[stringData release];
|
||||
}
|
||||
|
||||
- (void) refreshClientsMenu:(id)sender
|
||||
{
|
||||
[self updateThroughput];
|
||||
}
|
||||
|
||||
- (NSString *) stringFromFileSize:(unsigned long long)theSize
|
||||
{
|
||||
|
||||
double floatSize = theSize;
|
||||
if (theSize<1023)
|
||||
return([NSString stringWithFormat:@"%qx bytes",theSize]);
|
||||
floatSize = floatSize / 1024;
|
||||
if (floatSize<1023)
|
||||
return([NSString stringWithFormat:@"%1.1f KiB",floatSize]);
|
||||
floatSize = floatSize / 1024;
|
||||
if (floatSize<1023)
|
||||
return([NSString stringWithFormat:@"%1.1f MiB",floatSize]);
|
||||
floatSize = floatSize / 1024;
|
||||
if (floatSize<1023)
|
||||
return([NSString stringWithFormat:@"%1.1f GiB",floatSize]);
|
||||
floatSize = floatSize / 1024;
|
||||
|
||||
return([NSString stringWithFormat:@"%1.1f TiB",floatSize]);
|
||||
}
|
||||
|
||||
|
||||
- (void) connection:(NSURLConnection*)connection didReceiveData:(NSData*)data
|
||||
{
|
||||
NSLog(@"Delegate Received: %@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
|
||||
|
||||
}
|
||||
|
||||
@end
|
@ -0,0 +1,7 @@
|
||||
//
|
||||
// Prefix header for all source files of the 'DDWRT-Monitor' target in the 'DDWRT-Monitor' project
|
||||
//
|
||||
|
||||
#ifdef __OBJC__
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#endif
|
@ -0,0 +1,2 @@
|
||||
/* Localized versions of Info.plist keys */
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>URL</key>
|
||||
<string>http://www.opensecurityarchitecture.org/cms/library/icon-library</string>
|
||||
</dict>
|
||||
</plist>
|
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 2.1 KiB |
@ -0,0 +1,35 @@
|
||||
//
|
||||
// WRTRequest.h
|
||||
// DDWRT-Monitor
|
||||
//
|
||||
// Created by Matthieu Lalonde on 11-05-29.
|
||||
// Copyright 2011 __MyCompanyName__. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
|
||||
@interface WRTRequest : NSObject {
|
||||
BOOL wrtReachable;
|
||||
@private
|
||||
NSString *username;
|
||||
NSString *password;
|
||||
NSMutableData *receivedData;
|
||||
NSURLRequest *theRequest;
|
||||
NSURLConnection *theConnection;
|
||||
id delegate;
|
||||
SEL callback;
|
||||
SEL errorCallback;
|
||||
}
|
||||
|
||||
@property(nonatomic, retain) NSString *username;
|
||||
@property(nonatomic, retain) NSString *password;
|
||||
@property(nonatomic, retain) NSMutableData *receivedData;
|
||||
@property(nonatomic, retain) id delegate;
|
||||
@property(nonatomic) SEL callback;
|
||||
@property(nonatomic) SEL errorCallback;
|
||||
|
||||
-(void)doRequest:(id)requestDelegate requestSelector:(SEL)requestSelector uri:(NSString *)uri;
|
||||
-(void)request:(NSURL *) url;
|
||||
|
||||
@end
|
@ -0,0 +1,127 @@
|
||||
//
|
||||
// WRTRequest.m
|
||||
// DDWRT-Monitor
|
||||
//
|
||||
// Created by Matthieu Lalonde on 11-05-29.
|
||||
// Copyright 2011 __MyCompanyName__. All rights reserved.
|
||||
//
|
||||
|
||||
#import "WRTRequest.h"
|
||||
|
||||
|
||||
@implementation WRTRequest
|
||||
|
||||
@synthesize username;
|
||||
@synthesize password;
|
||||
@synthesize receivedData;
|
||||
@synthesize delegate;
|
||||
@synthesize callback;
|
||||
@synthesize errorCallback;
|
||||
|
||||
- (id)init
|
||||
{
|
||||
self = [super init];
|
||||
if (self) {
|
||||
// Initialization code here.
|
||||
wrtReachable = false;
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
-(void)doRequest:(id)requestDelegate requestSelector:(SEL)requestSelector uri:(NSString *)uri
|
||||
{
|
||||
self.delegate = requestDelegate;
|
||||
self.callback = requestSelector;
|
||||
|
||||
NSString *urlAddress = [NSString stringWithFormat:@"https://%@:%d/%@",
|
||||
[[NSUserDefaults standardUserDefaults] stringForKey:@"hostname"],
|
||||
[[NSUserDefaults standardUserDefaults] integerForKey:@"port"],
|
||||
uri];
|
||||
|
||||
NSURL *url = [NSURL URLWithString:urlAddress];
|
||||
|
||||
[self request:url];
|
||||
}
|
||||
|
||||
-(void)request:(NSURL *) url
|
||||
{
|
||||
theRequest = [[NSMutableURLRequest alloc] initWithURL:url];
|
||||
theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
|
||||
|
||||
if (theConnection) {
|
||||
receivedData = [[NSMutableData data] retain];
|
||||
} else {
|
||||
// TODO return error
|
||||
}
|
||||
}
|
||||
|
||||
-(void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
|
||||
{
|
||||
NSLog(@"1");
|
||||
if ([challenge previousFailureCount] == 0) {
|
||||
NSLog(@"1.1.1");
|
||||
NSURLCredential *newCredential;
|
||||
newCredential = [NSURLCredential credentialWithUser:@"user" password:@"password" persistence:NSURLCredentialPersistenceForSession];
|
||||
|
||||
NSLog(@"1.1.2");
|
||||
[[challenge sender] useCredential:newCredential forAuthenticationChallenge:challenge];
|
||||
} else {
|
||||
NSLog(@"1.2");
|
||||
[[challenge sender] cancelAuthenticationChallenge:challenge];
|
||||
// TODO Pop up authentication error
|
||||
NSLog(@"Invalid Username or Password");
|
||||
}
|
||||
}
|
||||
|
||||
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
|
||||
{
|
||||
NSLog(@"2");
|
||||
[receivedData setLength:0];
|
||||
}
|
||||
|
||||
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
|
||||
{
|
||||
NSLog(@"3");
|
||||
[receivedData appendData:data];
|
||||
}
|
||||
|
||||
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
|
||||
{
|
||||
NSLog(@"4");
|
||||
[connection release];
|
||||
[receivedData release];
|
||||
[theRequest release];
|
||||
|
||||
//TODO Return alert
|
||||
NSLog(@"Connection failed! Error - %@ %@", [error localizedDescription], [[error userInfo] objectForKey:NSErrorFailingURLStringKey]);
|
||||
|
||||
if (errorCallback) {
|
||||
[delegate performSelector:errorCallback withObject:error];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
|
||||
{
|
||||
NSLog(@"5");
|
||||
// TODO: Return the data
|
||||
if (delegate && callback) {
|
||||
if ([delegate respondsToSelector:self.callback]) {
|
||||
[delegate performSelector:self.callback withObject:receivedData];
|
||||
} else {
|
||||
// TODO: Return no data
|
||||
NSLog(@"No response data from delegate");
|
||||
}
|
||||
}
|
||||
|
||||
[theConnection release];
|
||||
[receivedData release];
|
||||
[theRequest release];
|
||||
}
|
||||
@end
|
@ -0,0 +1,48 @@
|
||||
//
|
||||
// WRTStatusClient.h
|
||||
// DDWRT-Monitor
|
||||
//
|
||||
// Created by Spike Grobstein on 5/30/11.
|
||||
// Copyright 2011 Sadistech. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
|
||||
@interface WRTStatusClient : NSObject {
|
||||
BOOL wrtReachable;
|
||||
@private
|
||||
NSString *hostname;
|
||||
NSInteger *port;
|
||||
NSString *username;
|
||||
NSString *password;
|
||||
|
||||
|
||||
//NSMutableData *receivedData;
|
||||
//NSURLRequest *theRequest;
|
||||
//NSURLConnection *theConnection;
|
||||
|
||||
//id delegate;
|
||||
//SEL callback;
|
||||
//SEL errorCallback;
|
||||
}
|
||||
|
||||
- (id) initWithHostname:(NSString*)new_hostname port:(NSInteger*)new_port username:(NSString*)new_username password:(NSString*)new_password;
|
||||
|
||||
- (NSMutableURLRequest*) buildRequest:(NSString*)uri;
|
||||
- (void) getStatusUpdate:(NSString*)uri delegate:(id)delegate;
|
||||
|
||||
- (NSString*) getHostname;
|
||||
- (void) setHostname:(NSString*)new_hostname;
|
||||
|
||||
- (NSInteger*) getPort;
|
||||
- (void) setPort:(NSInteger*)new_port;
|
||||
|
||||
- (NSString*) getUsername;
|
||||
- (void) setUsername:(NSString*)new_username;
|
||||
|
||||
- (NSString*) getPassword;
|
||||
- (void) setPassword:(NSString*)new_password;
|
||||
|
||||
|
||||
@end
|
@ -0,0 +1,111 @@
|
||||
//
|
||||
// WRTStatusClient.m
|
||||
// DDWRT-Monitor
|
||||
//
|
||||
// Created by Spike Grobstein on 5/30/11.
|
||||
// Copyright 2011 Sadistech. All rights reserved.
|
||||
//
|
||||
|
||||
#import "WRTStatusClient.h"
|
||||
|
||||
|
||||
@implementation WRTStatusClient
|
||||
|
||||
- (id) initWithHostname:(NSString*)new_hostname port:(NSInteger*)new_port username:(NSString*)new_username password:(NSString*)new_password
|
||||
{
|
||||
self = [super init];
|
||||
|
||||
[self setHostname: new_hostname];
|
||||
[self setPort: new_port];
|
||||
[self setUsername: new_username];
|
||||
[self setPassword: new_password];
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
|
||||
- (NSMutableURLRequest*) buildRequest:(NSString*)uri
|
||||
{
|
||||
NSString *urlAddress = [NSString stringWithFormat:@"http://%@:%d/%@",
|
||||
hostname,
|
||||
port,
|
||||
uri];
|
||||
|
||||
NSURL *url = [NSURL URLWithString:urlAddress];
|
||||
|
||||
//[self request:url]; // ---V
|
||||
|
||||
NSURLRequest *theRequest;
|
||||
|
||||
theRequest = [[NSMutableURLRequest alloc] initWithURL: url];
|
||||
|
||||
return [theRequest autorelease];
|
||||
}
|
||||
|
||||
- (void) getStatusUpdate:(NSString*)uri delegate:(id)delegate
|
||||
{
|
||||
|
||||
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:[self buildRequest: uri] delegate:delegate];
|
||||
|
||||
[theConnection autorelease];
|
||||
|
||||
|
||||
// this function returns immediately
|
||||
// the delegate will receive a function call with the following signature upon completion:
|
||||
// - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
|
||||
|
||||
}
|
||||
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Accessors:
|
||||
|
||||
- (NSString*) getHostname
|
||||
{
|
||||
return hostname;
|
||||
}
|
||||
|
||||
- (void) setHostname:(NSString*)new_hostname
|
||||
{
|
||||
NSString *old_hostname = hostname;
|
||||
hostname = [new_hostname retain];
|
||||
[old_hostname autorelease];
|
||||
}
|
||||
|
||||
- (NSInteger*) getPort
|
||||
{
|
||||
return port;
|
||||
}
|
||||
|
||||
- (void) setPort:(NSInteger*)new_port
|
||||
{
|
||||
port = new_port;
|
||||
}
|
||||
|
||||
- (NSString*) getUsername
|
||||
{
|
||||
return username;
|
||||
}
|
||||
|
||||
- (void) setUsername:(NSString*)new_username
|
||||
{
|
||||
NSString *old_username = username;
|
||||
username = [new_username retain];
|
||||
[old_username autorelease];
|
||||
}
|
||||
|
||||
- (NSString*) getPassword
|
||||
{
|
||||
return password;
|
||||
}
|
||||
|
||||
- (void) setPassword:(NSString*)new_password
|
||||
{
|
||||
NSString *old_password = password;
|
||||
password = [new_password retain];
|
||||
[old_password autorelease];
|
||||
}
|
||||
|
||||
|
||||
@end
|
After Width: | Height: | Size: 10 KiB |
@ -0,0 +1,14 @@
|
||||
//
|
||||
// main.m
|
||||
// DDWRT-Monitor
|
||||
//
|
||||
// Created by Matthieu Lalonde on 11-05-27.
|
||||
// Copyright 2011 __MyCompanyName__. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
return NSApplicationMain(argc, (const char **) argv);
|
||||
}
|
After Width: | Height: | Size: 5.8 KiB |
Loading…
Reference in new issue