Skip to content
Browse files

first commit, copied from svn elsewhere

  • Loading branch information...
0 parents commit d115f9704fdacc969dbe97b782ca5fd9dc64327f @elliotwoods committed Sep 18, 2012
57 .gitignore
@@ -0,0 +1,57 @@
+#OS junk files
+[Tt]humbs.db
+*.DS_Store
+
+#Visual Studio files
+*.[Oo]bj
+*.user
+*.aps
+*.pch
+*.vspscc
+*.vssscc
+*_i.c
+*_p.c
+*.ncb
+*.suo
+*.tlb
+*.tlh
+*.bak
+*.[Cc]ache
+*.ilk
+*.log
+*.lib
+*.sbr
+*.sdf
+*.pdb
+*.opensdf
+ipch/
+obj/
+[Bb]in
+[Bb]uild
+[Dd]ebug*/
+[Rr]elease*/
+Ankh.NoLoad
+
+#Tooling
+_ReSharper*/
+*.resharper
+[Tt]est[Rr]esult*
+
+#Archives
+.zip
+.7z
+
+#Subversion files
+.svn
+
+# Office Temp Files
+~$*
+
+# VVVV bcp
+*~.xml
+
+#dll's
+*.dll
+
+#media files
+*.avi
20 Backup/NPCameraSDKDotNet.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NPCameraSDKDotNet", "NPCameraSDKDotNet.vcproj", "{D04530D4-58C9-476E-8249-30CCEB669D63}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D04530D4-58C9-476E-8249-30CCEB669D63}.Debug|Win32.ActiveCfg = Debug|Win32
+ {D04530D4-58C9-476E-8249-30CCEB669D63}.Debug|Win32.Build.0 = Debug|Win32
+ {D04530D4-58C9-476E-8249-30CCEB669D63}.Release|Win32.ActiveCfg = Release|Win32
+ {D04530D4-58C9-476E-8249-30CCEB669D63}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
165 LICENSE.txt
@@ -0,0 +1,165 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+ This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+ 0. Additional Definitions.
+
+ As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+ "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+ An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+ A "Combined Work" is a work produced by combining or linking an
+Application with the Library. The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+ The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+ The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+ 1. Exception to Section 3 of the GNU GPL.
+
+ You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+ 2. Conveying Modified Versions.
+
+ If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+ a) under this License, provided that you make a good faith effort to
+ ensure that, in the event an Application does not supply the
+ function or data, the facility still operates, and performs
+ whatever part of its purpose remains meaningful, or
+
+ b) under the GNU GPL, with none of the additional permissions of
+ this License applicable to that copy.
+
+ 3. Object Code Incorporating Material from Library Header Files.
+
+ The object code form of an Application may incorporate material from
+a header file that is part of the Library. You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+ a) Give prominent notice with each copy of the object code that the
+ Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the object code with a copy of the GNU GPL and this license
+ document.
+
+ 4. Combined Works.
+
+ You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+ a) Give prominent notice with each copy of the Combined Work that
+ the Library is used in it and that the Library and its use are
+ covered by this License.
+
+ b) Accompany the Combined Work with a copy of the GNU GPL and this license
+ document.
+
+ c) For a Combined Work that displays copyright notices during
+ execution, include the copyright notice for the Library among
+ these notices, as well as a reference directing the user to the
+ copies of the GNU GPL and this license document.
+
+ d) Do one of the following:
+
+ 0) Convey the Minimal Corresponding Source under the terms of this
+ License, and the Corresponding Application Code in a form
+ suitable for, and under terms that permit, the user to
+ recombine or relink the Application with a modified version of
+ the Linked Version to produce a modified Combined Work, in the
+ manner specified by section 6 of the GNU GPL for conveying
+ Corresponding Source.
+
+ 1) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (a) uses at run time
+ a copy of the Library already present on the user's computer
+ system, and (b) will operate properly with a modified version
+ of the Library that is interface-compatible with the Linked
+ Version.
+
+ e) Provide Installation Information, but only if you would otherwise
+ be required to provide such information under section 6 of the
+ GNU GPL, and only to the extent that such information is
+ necessary to install and execute a modified version of the
+ Combined Work produced by recombining or relinking the
+ Application with a modified version of the Linked Version. (If
+ you use option 4d0, the Installation Information must accompany
+ the Minimal Corresponding Source and Corresponding Application
+ Code. If you use option 4d1, you must provide the Installation
+ Information in the manner specified by section 6 of the GNU GPL
+ for conveying Corresponding Source.)
+
+ 5. Combined Libraries.
+
+ You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+ a) Accompany the combined library with a copy of the same work based
+ on the Library, uncombined with any other library facilities,
+ conveyed under the terms of this License.
+
+ b) Give prominent notice with the combined library that part of it
+ is a work based on the Library, and explaining where to find the
+ accompanying uncombined form of the same work.
+
+ 6. Revised Versions of the GNU Lesser General Public License.
+
+ The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+ If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.
20 NPCameraSDKDotNet.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NPCameraSDKDotNet", "NPCameraSDKDotNet.vcxproj", "{D04530D4-58C9-476E-8249-30CCEB669D63}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {D04530D4-58C9-476E-8249-30CCEB669D63}.Debug|Win32.ActiveCfg = Debug|Win32
+ {D04530D4-58C9-476E-8249-30CCEB669D63}.Debug|Win32.Build.0 = Debug|Win32
+ {D04530D4-58C9-476E-8249-30CCEB669D63}.Release|Win32.ActiveCfg = Release|Win32
+ {D04530D4-58C9-476E-8249-30CCEB669D63}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
186 NPCameraSDKDotNet.vcproj
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="NPCameraSDKDotNet"
+ ProjectGUID="{D04530D4-58C9-476E-8249-30CCEB669D63}"
+ RootNamespace="SimpleCameraTest"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="2"
+ CharacterSet="1"
+ ManagedExtensions="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\include"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;CAMERALIBRARY_IMPORTS"
+ MinimalRebuild="false"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="cameralibrary.lib ws2_32.lib setupapi.lib"
+ LinkIncremental="2"
+ AdditionalLibraryDirectories="..\..\lib"
+ GenerateDebugInformation="true"
+ AssemblyDebug="1"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ ManagedExtensions="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories="..\..\..\cameracommon;..\..;..\..\..\common\inc;..\..\..\..\drivers\USBIO\V2.41\source\usbiolib;..\..\..\..\drivers\USBIO\V2.41\source\inc"
+ PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+ RuntimeLibrary="0"
+ UsePrecompiledHeader="0"
+ WarningLevel="3"
+ Detect64BitPortabilityProblems="true"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="opengl32.lib glu32.lib glaux.lib ws2_32.lib setupapi.lib"
+ LinkIncremental="1"
+ GenerateDebugInformation="true"
+ SubSystem="1"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <File
+ RelativePath=".\Wrapper.cpp"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
104 NPCameraSDKDotNet.vcxproj
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{D04530D4-58C9-476E-8249-30CCEB669D63}</ProjectGuid>
+ <RootNamespace>SimpleCameraTest</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v110</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ <CLRSupport>true</CLRSupport>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v110</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ <CLRSupport>true</CLRSupport>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>11.0.50727.1</_ProjectFileVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
+ <IntDir>$(Configuration)\</IntDir>
+ <LinkIncremental>true</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
+ <IntDir>$(Configuration)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>C:\Program Files %28x86%29\OptiTrack\Camera SDK\include;..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;CAMERALIBRARY_IMPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>false</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader />
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>cameralibrary.lib;ws2_32.lib;setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories>C:\Program Files %28x86%29\OptiTrack\Camera SDK\lib;..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <AssemblyDebug>true</AssemblyDebug>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention />
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <AdditionalIncludeDirectories>..\..\..\cameracommon;..\..;..\..\..\common\inc;..\..\..\..\drivers\USBIO\V2.41\source\usbiolib;..\..\..\..\drivers\USBIO\V2.41\source\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <PrecompiledHeader />
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>opengl32.lib;glu32.lib;glaux.lib;ws2_32.lib;setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention />
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="Wrapper.cpp" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
BIN UpgradeLog.XML
Binary file not shown.
BIN UpgradeLog.htm
Binary file not shown.
540 Wrapper.cpp
@@ -0,0 +1,540 @@
+
+#define WIN32_LEAN_AND_MEAN
+
+#include <windows.h>
+#include <stdio.h>
+#include <tchar.h>
+
+#include "cameralibrary.h"
+using namespace CameraLibrary;
+using namespace System;
+
+namespace NPCameraSDKDotNet{
+
+ public enum class VideoMode
+ {
+ SegmentMode = 0,
+ GrayscaleMode = 1,
+ ObjectMode = 2,
+ InterleavedGrayscaleMode = 3,
+ PrecisionMode = 4,
+ BitPackedPrecisionMode = 5,
+ MJPEGMode = 6,
+ VideoModeCount ,
+ UnknownMode
+ };
+
+ public enum class StatusLEDs
+ {
+ GreenStatusLED = 0x20,
+ RedStatusLED = 0x10,
+ CaseStatusLED = 0x40,
+ IlluminationLED = 0x80,
+
+ LeftRedStatusLED = 16,
+ LeftGreenStatusLED = 32,
+ RightRedStatusLED = 1,
+ RightGreenStatusLED = 2,
+ };
+
+
+ public ref class MObject{
+ public:
+ MObject(cObject * cobject){
+ this->cobject = cobject;
+ }
+ ~MObject(){
+ delete this->cobject;
+ }
+
+ int Left(){return cobject->Left();}
+ int Right(){return cobject->Right();}
+ int Top(){return cobject->Top();}
+ int Bottom(){return cobject->Bottom();}
+ float Area(){return cobject->Area();}
+
+ float Radius(){return cobject->Radius();}
+ float Aspect(){return cobject->Aspect();}
+ float Roundness(){return cobject->Roundness();}
+
+ int Width(){return cobject->Width();}
+ int Height(){return cobject->Height();}
+
+ float X(){return cobject->X();}
+ float Y(){return cobject->Y();}
+
+ ////== Creation & processing functions ==--
+ //
+ //void Clear();
+ //void AddSegment ( Segment* segment );
+ //void AddSegmentList( cObject * objectSource );
+
+ //void PurgeReferences();
+
+ ////== Generate object information from attached segments ==--
+ //void ProcessLineSegments ();
+ //void ProcessWeightedLineSegments();
+ //void ProcessSubPixelLineSegments();
+ //void CalculateDimensions ();
+
+ //Segment * SegmentHead();
+ //Segment * SegmentTail();
+
+
+ protected:
+ private:
+ cObject * cobject;
+ };
+
+
+ public ref class MFrame{
+ public:
+ MFrame(Frame * frame){
+ this->frame = frame;
+ }
+ ~MFrame(){
+ delete this->frame;
+ }
+
+ int ObjectCount(){return frame->ObjectCount();}
+ int FrameID(){return frame->FrameID();}
+ //eVideoMode FrameType(); //== Frame Type =============================----
+ //int MJPEGQuality(); //== For MJPEG Frames, MJPEG Quality (1-100) ----
+
+ MObject ^ Object(int index){
+ cObject * obj = frame->Object(index);
+ if (obj == 0){
+ return nullptr;
+ } else {
+ return gcnew MObject(obj);
+ }
+ }
+ //ObjectLink * GetLink(int index);
+ //Camera * GetCamera(); //== Reference to originating camera ========----
+
+ bool IsInvalid(){return frame->IsInvalid();}
+ bool IsEmpty(){return frame->IsEmpty();}
+ bool IsGrayscale(){return frame->IsGrayscale();}
+
+ double TimeStamp(){return frame->TimeStamp();}
+
+ void Release(){frame->Release();}
+
+ int RefCount(){return frame->RefCount();}
+ void AddRef(){frame->AddRef();}
+
+ ////== Rasterization Functionality ==========--
+
+ //void Rasterize(unsigned int Width, unsigned int Height, unsigned int Span,
+ // unsigned int BitsPerPixel, void *Buffer);
+
+ //void Rasterize(Bitmap *BitmapRef);
+
+ ////== Frame Decompression Functionality (Advanced Feature) ======---
+
+ //void PopulateFrom(CompressedFrame *Frame);
+
+ ////== Uncommonly Needed Methods =================================---
+
+ //unsigned char* GetGrayscaleData();
+ //int GetGrayscaleDataSize();
+ void CopyGrayScaleDataTo(IntPtr buffer) {
+ memcpy(buffer.ToPointer(), frame->GetGrayscaleData(), frame->GetGrayscaleDataSize());
+ }
+
+
+
+ protected:
+ private:
+ Frame * frame;
+
+ };
+
+ public ref class MCamera{
+ //Camera();
+ //~Camera();
+
+ //virtual void PacketTest(int PacketCount) {};
+
+
+ ////== Intended Public Command Interface ==============================================----
+
+ void SetGrayscaleDecimation(int Value){camera->SetGrayscaleDecimation(Value);}
+
+
+ //void SetLateMJPEGDecompression(bool Enable);
+ //bool LateMJPEGDecompression();
+
+ //int Serial();
+ //int Model();
+ //int Revision();
+ //int HardwareInterface();
+ //void ResetFrameCount();
+
+ //virtual bool CameraIDValid();
+
+ //virtual void SetIRFilter(bool Enabled); //== Enable/Disable IR Bandpass Filter ===----
+ //virtual bool IRFilter();
+ //virtual bool IsFilterSwitchAvailable() { return false; }
+
+
+ //virtual void SetHighPowerMode(bool Enable) {};
+ //virtual bool HighPowerMode() { return false; }
+ //virtual bool IsHighPowerModeAvailable() { return false; }
+ //virtual bool IsHighPowerModeSupported() { return false; }
+ //int LowPowerSetting();
+
+ //void SetMJPEGQuality(int Value); //== Set MJPEG Quality Level (0-100) =====----
+ //virtual int MJPEGQuality();
+ //virtual bool IsMJPEGAvailable() { return false; }
+
+ //int SwitchState(); //== SmartNav4's switch state ============----
+
+ //HealthMonitor * Health(); //== Camera Health Information ===========----
+
+ //virtual void GetDistortionModel(Core::DistortionModel &Model) {}; //== Distortion Model -
+
+ ////== Status LEDs ====================================================================----
+ //
+
+
+ ////== Camera Physical Constants ======================================================----
+
+ //virtual double FocalLength() { return 0.0; }
+
+ ////== Additional =====================================================================----
+
+ //void SetTextOverlay (bool Enable);
+ //void SetMarkerOverlay(bool Enable);
+
+ //bool TextOverlay();
+ //bool MarkerOverlay();
+ //
+ //void SetName(const char *Name);
+
+ //
+ //InputManager::ConnectionTypes ConnectionType(); //== Returns type of input USB, etc. ---
+
+ ////== Less Commonly Used Public Methods ==============================================----
+
+ //virtual void AttachInput(cInputBase * Input); //== Manually attach a camera input =---
+
+ //bool IsCommandQueueEmpty(); //== Know if camera is busy with ====---
+ // //== communicating with the device ==---
+
+ //void ReleaseFrame(Frame* frame); //== Alternative release frame call =---
+
+ //const char* DevicePath(); //== Returns Device Path for USB ====---
+
+ //virtual void SendCommand(cCameraCommand * Command); //== Push a camera command =======---
+ //void AttachModule (cCameraModule * Module); //== Attach additional functionality ---
+ //void RemoveModule (cCameraModule * Module); //== Remove additional functionality ---
+ //void AttachListener(cCameraListener * Listener); //== Attach for camera events =======---
+ //void RemoveListener(cCameraListener * Listener); //== Remove camera listener =========---
+ //void Shutdown(); //== Permanently shutdown camera ====---
+
+ //virtual bool IsHardwareKey () { return false; } //== For separation of cameras & keys --
+ //virtual bool IsHub () { return false; } //== For separation of cameras & Hubs --
+ //virtual bool IsUSB () { return true; } //== Camera helpers =================---
+ //virtual bool IsEthernet() { return false; } //== Camera helpers =================---
+ //virtual bool IsTBar () { return false; } //== Camera helpers =================---
+
+
+
+
+
+
+ public:
+
+ MCamera(Camera * camera){
+ this->camera = camera;
+
+ }
+ ~MCamera(){
+ delete this->camera;
+ }
+
+ MFrame ^ GetFrame(){
+ Frame * frame;
+ frame = camera->GetFrame();
+ if (frame == 0){
+ return nullptr;
+ } else {
+ return gcnew MFrame(frame);
+ }
+ }
+ MFrame ^ GetLatestFrame(){
+ Frame * frame;
+ frame = camera->GetFrame();
+ if (frame == 0){
+ return nullptr;
+ } else {
+ return gcnew MFrame(frame);
+ }
+ }
+
+ //const char* Name(); //== Returns name of camera ===========----
+ //
+
+ void SetLED(StatusLEDs LED, bool Enable){
+ eStatusLEDs leds = static_cast<eStatusLEDs>(LED);
+ camera->SetLED(leds, Enable);
+ }
+ //void SetAllLED(eStatusLEDs LED); //== Turn Camera LEDs On/Off ========----
+ //void SetStatusIntensity(int Intensity); //== All Status LED to (0-->255) ====----
+
+
+ void Start(){camera->Start();}
+ void Stop(bool TurnNumericOff){camera->Stop(TurnNumericOff);}
+ //
+ bool IsValid(){return camera != 0;}
+ bool IsCameraRunning(){return camera->IsCameraRunning();}
+
+ void Release(){camera->Release();}
+
+ void SetExposure(int Value){camera->SetExposure(Value);}
+ void SetThreshold(int Value){camera->SetThreshold(Value);}
+ void SetIntensity(int Value){camera->SetIntensity(Value);}
+ void SetPrecisionCap(int Value){camera->SetPrecisionCap(Value);}
+ void SetShutterDelay(int Value){camera->SetShutterDelay(Value);}
+
+ void SetFrameRate(int Value){camera->SetFrameRate(Value);}
+ //void SetFrameDecimation(int Value); //== Set Camera Frame Decimation ==----
+
+ int FrameRate(){return camera->FrameRate();}
+ //int FrameDecimation(); //== Get Camera Frame Decimation ==----
+ //int GrayscaleDecimation(); //== Get Camera Grayscale Decimation --
+
+ int PrecisionCap(){return camera->PrecisionCap();}
+ int ShutterDelay(){return camera->ShutterDelay();}
+
+ int Exposure(){return camera->Exposure();}
+ int Threshold(){return camera->Threshold();}
+ int Intensity(){return camera->Intensity();}
+
+ void SetVideoType(VideoMode Value){
+ eVideoMode mode = static_cast<eVideoMode>(Value);
+ camera->SetVideoType(mode);
+ }
+
+ VideoMode VideoType(){
+ VideoMode mode;
+ mode = static_cast<VideoMode>(camera->VideoType());
+ return mode;
+ }
+
+
+ float DataRate(){return camera->DataRate();}
+ float PacketSize(){return camera->PacketSize();}
+
+ void ResetWindow(){camera->ResetWindow();}
+ void SetWindow(int X1, int Y1, int X2, int Y2){camera->SetWindow(X1,Y1,X2,Y2);}
+
+ void SendEmptyFrames(bool Enable){camera->SendEmptyFrames(Enable);}
+ void SendInvalidFrames(bool Enable){camera->SendInvalidFrames(Enable);}
+
+
+ void SetAGC(bool Enable){camera->SetAGC(Enable);}
+ bool AGC(){return camera->AGC();}
+ bool IsAGCAvailable() { return camera->IsAGCAvailable();}
+
+ void SetAEC(bool Enable){camera->SetAEC(Enable);}
+ bool AEC(){return camera->AEC();}
+ bool IsAECAvailable(){return camera->IsAECAvailable();}
+
+ int HardwareFrameRate() { return camera->HardwareFrameRate(); }
+
+ bool IsInitilized (){return camera->IsInitilized();}
+ bool IsDisconnected(){return camera->IsDisconnected();}
+
+ //eCameraState State ();
+ int UID(){return camera->UID();}
+ int Model(){return camera->Model();}
+ int Serial(){return camera->Serial();}
+
+
+ void SetEnableBlockingMask(bool Enabled){camera->SetEnableBlockingMask(Enabled);}
+ bool IsBlockingMaskEnabled(){return camera->IsBlockingMaskEnabled();}
+ void AddBlockingRectangle (int X1, int Y1, int X2, int Y2){camera->AddBlockingRectangle(X1,Y1,X2,Y2);}
+ //void RemoveBlockingRectangle(int X1, int Y1, int X2, int Y2);
+ void SetBitMaskPixel(int X, int Y, bool Mask){camera->SetBitMaskPixel(X,Y,Mask);}
+ void ClearBlockingMask () {camera->ClearBlockingMask();}
+ //void GetBlockingMask (unsigned char *Buffer, int BufferSize);
+ //void SetBlockingMask (const unsigned char *Buffer, int BufferSize);
+ void UpdateBlockingMask (){camera->UpdateBlockingMask();}
+ int BlockingMaskWidth (){return camera->BlockingMaskWidth();}
+ int BlockingMaskHeight (){return camera->BlockingMaskHeight();}
+ int BlockingGrid (){return camera->BlockingGrid();}
+
+
+ int PhysicalPixelWidth(){return camera->PhysicalPixelWidth();}
+ int PhysicalPixelHeight(){return camera->PhysicalPixelHeight();}
+ double ImagerWidth(){ return camera->ImagerWidth(); }
+ double ImagerHeight(){ return camera->ImagerHeight(); }
+ int Width(){return camera->Width();}
+ int Height(){return camera->Height();}
+
+ void SetObjectColor(int Color){
+ camera->SetObjectColor(Color);
+ }
+
+ int ObjectColor(){
+ return camera->ObjectColor();
+ }
+
+ bool IsCameraTempValid(){
+ return camera->IsCameraTempValid();
+ }
+
+ float CameraTemp(){
+ return camera->CameraTemp();
+ }
+
+ bool IsCameraFanSpeedValid(){
+ return camera->IsCameraFanSpeedValid();
+ }
+
+ float CameraFanSpeed(){
+ return camera->CameraFanSpeed();
+ }
+
+ int MinimumExposureValue(){
+ return camera->MinimumExposureValue();
+ }
+
+ int MaximumExposureValue(){
+ return camera->MaximumExposureValue();
+ }
+
+ int MinimumFrameRateValue(){
+ return camera->MinimumFrameRateValue();
+ }
+
+ int MaximumFrameRateValue(){
+ return camera->MaximumFrameRateValue();
+ }
+
+ int CameraID (){
+ return this->camera->CameraID();
+ }
+
+ void SetNumeric(bool enable, int num){
+ this->camera->SetNumeric(enable, num);
+ }
+
+ protected:
+ private:
+ Camera * camera;
+ };
+
+ public ref class MCameraManager{
+ public:
+ static void EnableDevelopment(){
+ CameraLibrary_EnableDevelopment();
+ }
+
+ static bool WaitForInitialization(){
+ return CameraManager::X().WaitForInitialization();
+ }
+
+ static bool AreCamerasInitialized(){
+ return CameraManager::X().AreCamerasInitialized();
+ }
+
+
+ static void Shutdown(){
+ CameraManager::X().Shutdown();
+ }
+
+ static MCamera^ GetCamera(){
+ Camera * cam = CameraManager::X().GetCamera();
+ if (cam == 0){
+ return nullptr;
+ } else {
+ return gcnew MCamera(cam);
+ }
+ }
+
+ static array<MCamera^>^ GetCameras(){
+ CameraList list;
+ array<MCamera^>^ ret = gcnew array<MCamera^>(list.Count());
+ for (int c=0;c < list.Count(); c++){
+ ret[c] = gcnew MCamera(CameraManager::X().GetCamera(list[c].UID()));
+ }
+ return ret;
+
+ }
+ };
+
+ public enum class CameraState
+ {
+ Uninitialized = 0,
+ InitializingDevice,
+ InitializingCamera,
+ Initializing,
+ Initialized,
+ Disconnected,
+ Shutdown
+ };
+
+ public enum class SyncMode
+ {
+ SyncModeDefault = 0,
+ SyncModeCustom,
+ SyncModeShutterGoggles
+ };
+
+ public enum class SyncType
+ {
+ SyncTypeOptiSync = 0,
+ SyncTypeWiredSync
+ };
+
+ public enum class SyncCameraSync
+ {
+ SyncAutoUSBSync = 0,
+ SyncForceUSBSync
+ };
+
+ public enum class SyncInputSource
+ {
+ SyncInputSourceWired = 0,
+ SyncInputSourceInternal = 0,
+ SyncInputSourceSMPTEInput,
+ SyncInputSourceSyncExternal=2,
+ SyncInputSourceSyncExternalEitherEdge=2,
+ SyncInputSourceSyncExternalRisingEdge,
+ SyncInputSourceSyncExternalFallingEdge,
+ SyncInputSourceSyncExternalHighGated,
+ SyncInputSourceSyncExternalLowGated,
+ SyncInputSourceUSB
+ };
+
+ public enum class SyncOutputPhase
+ {
+ SyncOutputInPhase = 0,
+ SyncOutputDelayedByGlobalOffset
+ };
+ public enum class SyncOutputPulseDuration
+ {
+ SyncOutputPulseDurationExposureTime = 0,
+ SyncOutputPulseDurationPassThrough,
+ SyncOutputPulseDurationRecordingLevel,
+ SyncOutputPulseDurationRecordingPulse
+ };
+
+ public enum class SyncOutputPolarity
+ {
+ SyncOutputPolarityNormal = 0,
+ SyncOutputPolarityInverted
+ };
+ public enum class USBSyncInControl
+ {
+ USBSyncInControlGateClosedDisabled=0,
+ USBSyncInControlGateOpenEnabled
+ };
+
+
+
+
+}
118 _UpgradeReport_Files/UpgradeReport.css
@@ -0,0 +1,118 @@
+/* Body style, for the entire document */
+body
+{
+ background: #F3F3F4;
+ color: #1E1E1F;
+ font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
+ padding: 0;
+ margin: 0;
+}
+
+/* Header1 style, used for the main title */
+h1
+{
+ padding: 10px 0px 10px 10px;
+ font-size: 21pt;
+ background-color: #E2E2E2;
+ border-bottom: 1px #C1C1C2 solid;
+ color: #201F20;
+ margin: 0;
+ font-weight: normal;
+}
+
+/* Header2 style, used for "Overview" and other sections */
+h2
+{
+ font-size: 18pt;
+ font-weight: normal;
+ padding: 15px 0 5px 0;
+ margin: 0;
+}
+
+/* Header3 style, used for sub-sections, such as project name */
+h3
+{
+ font-weight: normal;
+ font-size: 15pt;
+ margin: 0;
+ padding: 15px 0 5px 0;
+ background-color: transparent;
+}
+
+/* Color all hyperlinks one color */
+a
+{
+ color: #1382CE;
+}
+
+/* Table styles */
+table
+{
+ border-spacing: 0 0;
+ border-collapse: collapse;
+ font-size: 10pt;
+}
+
+table th
+{
+ background: #E7E7E8;
+ text-align: left;
+ text-decoration: none;
+ font-weight: normal;
+ padding: 3px 6px 3px 6px;
+}
+
+table td
+{
+ vertical-align: top;
+ padding: 3px 6px 5px 5px;
+ margin: 0px;
+ border: 1px solid #E7E7E8;
+ background: #F7F7F8;
+}
+
+/* Local link is a style for hyperlinks that link to file:/// content, there are lots so color them as 'normal' text until the user mouse overs */
+.localLink
+{
+ color: #1E1E1F;
+ background: #EEEEED;
+ text-decoration: none;
+}
+
+.localLink:hover
+{
+ color: #1382CE;
+ background: #FFFF99;
+ text-decoration: none;
+}
+
+/* Center text, used in the over views cells that contain message level counts */
+.textCentered
+{
+ text-align: center;
+}
+
+/* The message cells in message tables should take up all avaliable space */
+.messageCell
+{
+ width: 100%;
+}
+
+/* Padding around the content after the h1 */
+#content
+{
+ padding: 0px 12px 12px 12px;
+}
+
+/* The overview table expands to width, with a max width of 97% */
+#overview table
+{
+ width: auto;
+ max-width: 75%;
+}
+
+/* The messages tables are always 97% width */
+#messages table
+{
+ width: 97%;
+}
558 _UpgradeReport_Files/UpgradeReport.xslt
@@ -0,0 +1,558 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl='urn:schemas-microsoft-com:xslt'>
+ <xsl:output omit-xml-declaration="yes" />
+
+ <!-- Keys -->
+ <xsl:key name="ProjectKey" match="Event" use="@Project" />
+
+ <!-- String split template -->
+ <xsl:template name="SplitString">
+ <xsl:param name="source" select="''" />
+ <xsl:param name="separator" select="','" />
+ <xsl:if test="not($source = '' or $separator = '')">
+ <xsl:variable name="head" select="substring-before(concat($source, $separator), $separator)" />
+ <xsl:variable name="tail" select="substring-after($source, $separator)" />
+ <part>
+ <xsl:value-of select="$head"/>
+ </part>
+ <xsl:call-template name="SplitString">
+ <xsl:with-param name="source" select="$tail" />
+ <xsl:with-param name="separator" select="$separator" />
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- Intermediate Templates -->
+ <xsl:template match="UpgradeReport" mode="ProjectOverviewXML">
+ <Projects>
+ <xsl:for-each select="Event[generate-id(.) = generate-id(key('ProjectKey', @Project))]">
+ <Project>
+ <xsl:variable name="pNode" select="current()" />
+ <xsl:variable name="errorCount" select="count(../Event[@Project = current()/@Project and @ErrorLevel=2])" />
+ <xsl:variable name="warningCount" select="count(../Event[@Project = current()/@Project and @ErrorLevel=1])" />
+ <xsl:variable name="messageCount" select="count(../Event[@Project = current()/@Project and @ErrorLevel=0])" />
+ <xsl:variable name="pathSplitSeparator">
+ <xsl:text>\</xsl:text>
+ </xsl:variable>
+ <xsl:variable name="projectName">
+ <xsl:choose>
+ <xsl:when test="@Project = ''">Solution</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@Project"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="IsSolution">
+ <xsl:value-of select="@Project = ''"/>
+ </xsl:attribute>
+ <xsl:attribute name="Project">
+ <xsl:value-of select="$projectName"/>
+ </xsl:attribute>
+ <xsl:attribute name="ProjectDisplayName">
+
+ <xsl:variable name="localProjectName" select="@Project" />
+
+ <!-- Sometimes it is possible to have project name set to a path over a real project name,
+ we split the string on '\' and if we end up with >1 part in the resulting tokens set
+ we format the ProjectDisplayName as ..\prior\last -->
+ <xsl:variable name="pathTokens">
+ <xsl:call-template name="SplitString">
+ <xsl:with-param name="source" select="$localProjectName" />
+ <xsl:with-param name="separator" select="$pathSplitSeparator" />
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="count(msxsl:node-set($pathTokens)/part) > 1">
+ <xsl:value-of select="concat('..', $pathSplitSeparator, msxsl:node-set($pathTokens)/part[last() - 1], $pathSplitSeparator, msxsl:node-set($pathTokens)/part[last()])"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$localProjectName"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:attribute>
+ <xsl:attribute name="ProjectSafeName">
+ <xsl:value-of select="translate($projectName, '\', '-')"/>
+ </xsl:attribute>
+ <xsl:attribute name="Solution">
+ <xsl:value-of select="/UpgradeReport/Properties/Property[@Name='Solution']/@Value"/>
+ </xsl:attribute>
+ <xsl:attribute name="Source">
+ <xsl:value-of select="@Source"/>
+ </xsl:attribute>
+ <xsl:attribute name="Status">
+ <xsl:choose>
+ <xsl:when test="$errorCount > 0">Error</xsl:when>
+ <xsl:when test="$warningCount > 0">Warning</xsl:when>
+ <xsl:otherwise>Success</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:attribute name="ErrorCount">
+ <xsl:value-of select="$errorCount" />
+ </xsl:attribute>
+ <xsl:attribute name="WarningCount">
+ <xsl:value-of select="$warningCount" />
+ </xsl:attribute>
+ <xsl:attribute name="MessageCount">
+ <xsl:value-of select="$messageCount" />
+ </xsl:attribute>
+ <xsl:attribute name="TotalCount">
+ <xsl:value-of select="$errorCount + $warningCount + $messageCount"/>
+ </xsl:attribute>
+ <xsl:for-each select="../Event[@Project = $pNode/@Project and @ErrorLevel=3]">
+ <ConversionStatus>
+ <xsl:value-of select="@Description"/>
+ </ConversionStatus>
+ </xsl:for-each>
+ <Messages>
+ <xsl:for-each select="../Event[@Project = $pNode/@Project and @ErrorLevel&lt;3]">
+ <Message>
+ <xsl:attribute name="Level">
+ <xsl:value-of select="@ErrorLevel" />
+ </xsl:attribute>
+ <xsl:attribute name="Status">
+ <xsl:choose>
+ <xsl:when test="@ErrorLevel = 0">Message</xsl:when>
+ <xsl:when test="@ErrorLevel = 1">Warning</xsl:when>
+ <xsl:when test="@ErrorLevel = 2">Error</xsl:when>
+ <xsl:otherwise>Message</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:attribute name="Source">
+ <xsl:value-of select="@Source"/>
+ </xsl:attribute>
+ <xsl:attribute name="Message">
+ <xsl:value-of select="@Description"/>
+ </xsl:attribute>
+ </Message>
+ </xsl:for-each>
+ </Messages>
+ </Project>
+ </xsl:for-each>
+ </Projects>
+ </xsl:template>
+
+
+
+ <!-- Project Overview template -->
+ <xsl:template match="Projects" mode="ProjectOverview">
+
+ <table>
+ <tr>
+ <th></th>
+ <th _locID="ProjectTableHeader">Project</th>
+ <th _locID="PathTableHeader">Path</th>
+ <th _locID="ErrorsTableHeader">Errors</th>
+ <th _locID="WarningsTableHeader">Warnings</th>
+ <th _locID="MessagesTableHeader">Messages</th>
+ </tr>
+
+ <xsl:for-each select="Project">
+
+ <xsl:sort select="@ErrorCount" order="descending" />
+ <xsl:sort select="@WarningCount" order="descending" />
+ <!-- Always make solution last within a group -->
+ <xsl:sort select="@IsSolution" order="ascending" />
+ <xsl:sort select="@ProjectSafeName" order="ascending" />
+
+ <tr>
+ <td>
+ <img width="16" height="16">
+ <xsl:attribute name="src">
+ <xsl:choose>
+ <xsl:when test="@Status = 'Error'">_UpgradeReport_Files\UpgradeReport_Error.png</xsl:when>
+ <xsl:when test="@Status = 'Warning'">_UpgradeReport_Files\UpgradeReport_Warning.png</xsl:when>
+ <xsl:when test="@Status = 'Success'">_UpgradeReport_Files\UpgradeReport_Success.png</xsl:when>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:attribute name="alt">
+ <xsl:value-of select="@Status" />
+ </xsl:attribute>
+ </img>
+ </td>
+ <td>
+ <strong>
+ <a>
+ <xsl:attribute name="href">
+ <xsl:value-of select="concat('#', @ProjectSafeName)"/>
+ </xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="@ProjectDisplayName = ''">
+ <span _locID="OverviewSolutionSpan">Solution</span>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@ProjectDisplayName" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ </strong>
+ </td>
+ <td>
+ <xsl:value-of select="@Source" />
+ </td>
+ <td class="textCentered">
+ <a>
+ <xsl:if test="@ErrorCount > 0">
+ <xsl:attribute name="href">
+ <xsl:value-of select="concat('#', @ProjectSafeName, 'Error')"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:value-of select="@ErrorCount" />
+ </a>
+ </td>
+ <td class="textCentered">
+ <a>
+ <xsl:if test="@WarningCount > 0">
+ <xsl:attribute name="href">
+ <xsl:value-of select="concat('#', @ProjectSafeName, 'Warning')"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:value-of select="@WarningCount" />
+ </a>
+ </td>
+ <td class="textCentered">
+ <a href="#">
+ <xsl:if test="@MessageCount > 0">
+ <xsl:attribute name="onclick">
+ <xsl:variable name="apos">
+ <xsl:text>'</xsl:text>
+ </xsl:variable>
+ <xsl:variable name="JS" select="concat('ScrollToFirstVisibleMessage(', $apos, @ProjectSafeName, $apos, ')')" />
+ <xsl:value-of select="concat($JS, '; return false;')"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:value-of select="@MessageCount" />
+ </a>
+ </td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:template>
+
+ <!-- Show messages row -->
+ <xsl:template match="Project" mode="ProjectShowMessages">
+ <tr>
+ <xsl:attribute name="name">
+ <xsl:value-of select="concat('MessageRowHeaderShow', @ProjectSafeName)"/>
+ </xsl:attribute>
+ <td>
+ <img width="16" height="16" src="_UpgradeReport_Files\UpgradeReport_Information.png" />
+ </td>
+ <td class="messageCell">
+ <xsl:variable name="apos">
+ <xsl:text>'</xsl:text>
+ </xsl:variable>
+ <xsl:variable name="toggleRowsJS" select="concat('ToggleMessageVisibility(', $apos, @ProjectSafeName, $apos, ')')" />
+
+ <a _locID="ShowAdditionalMessages" href="#">
+ <xsl:attribute name="name">
+ <xsl:value-of select="concat(@ProjectSafeName, 'Message')"/>
+ </xsl:attribute>
+ <xsl:attribute name="onclick">
+ <xsl:value-of select="concat($toggleRowsJS, '; return false;')"/>
+ </xsl:attribute>
+ Show <xsl:value-of select="@MessageCount" /> additional messages
+ </a>
+ </td>
+ </tr>
+ </xsl:template>
+
+ <!-- Hide messages row -->
+ <xsl:template match="Project" mode="ProjectHideMessages">
+ <tr style="display: none">
+ <xsl:attribute name="name">
+ <xsl:value-of select="concat('MessageRowHeaderHide', @ProjectSafeName)"/>
+ </xsl:attribute>
+ <td>
+ <img width="16" height="16" src="_UpgradeReport_Files\UpgradeReport_Information.png" />
+ </td>
+ <td class="messageCell">
+ <xsl:variable name="apos">
+ <xsl:text>'</xsl:text>
+ </xsl:variable>
+ <xsl:variable name="toggleRowsJS" select="concat('ToggleMessageVisibility(', $apos, @ProjectSafeName, $apos, ')')" />
+
+ <a _locID="HideAdditionalMessages" href="#">
+ <xsl:attribute name="name">
+ <xsl:value-of select="concat(@ProjectSafeName, 'Message')"/>
+ </xsl:attribute>
+ <xsl:attribute name="onclick">
+ <xsl:value-of select="concat($toggleRowsJS, '; return false;')"/>
+ </xsl:attribute>
+ Hide <xsl:value-of select="@MessageCount" /> additional messages
+ </a>
+ </td>
+ </tr>
+ </xsl:template>
+
+ <!-- Message row templates -->
+ <xsl:template match="Message">
+ <tr>
+ <xsl:attribute name="name">
+ <xsl:value-of select="concat(@Status, 'RowClass', ../../@ProjectSafeName)"/>
+ </xsl:attribute>
+
+ <xsl:if test="@Level = 0">
+ <xsl:attribute name="style">display: none</xsl:attribute>
+ </xsl:if>
+ <td>
+ <a>
+ <xsl:attribute name="name">
+ <xsl:value-of select="concat(../../@ProjectSafeName, @Status)"/>
+ </xsl:attribute>
+ </a>
+ <img width="16" height="16">
+ <xsl:attribute name="src">
+ <xsl:choose>
+ <xsl:when test="@Status = 'Error'">_UpgradeReport_Files\UpgradeReport_Error.png</xsl:when>
+ <xsl:when test="@Status = 'Warning'">_UpgradeReport_Files\UpgradeReport_Warning.png</xsl:when>
+ <xsl:when test="@Status = 'Message'">_UpgradeReport_Files\UpgradeReport_Information.png</xsl:when>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:attribute name="alt">
+ <xsl:value-of select="@Status" />
+ </xsl:attribute>
+ </img>
+ </td>
+ <td class="messageCell">
+ <strong>
+ <xsl:value-of select="@Source"/>:
+ </strong>
+ <span>
+ <xsl:value-of select="@Message"/>
+ </span>
+ </td>
+ </tr>
+ </xsl:template>
+
+ <!-- Project Details Template -->
+ <xsl:template match="Projects" mode="ProjectDetails">
+
+ <xsl:for-each select="Project">
+ <xsl:sort select="@ErrorCount" order="descending" />
+ <xsl:sort select="@WarningCount" order="descending" />
+ <!-- Always make solution last within a group -->
+ <xsl:sort select="@IsSolution" order="ascending" />
+ <xsl:sort select="@ProjectSafeName" order="ascending" />
+
+ <a>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@ProjectSafeName"/>
+ </xsl:attribute>
+ </a>
+ <xsl:choose>
+ <xsl:when test="@ProjectDisplayName = ''">
+ <h3 _locID="ProjectDisplayNameHeader">Solution</h3>
+ </xsl:when>
+ <xsl:otherwise>
+ <h3>
+ <xsl:value-of select="@ProjectDisplayName"/>
+ </h3>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <table>
+ <tr>
+ <xsl:attribute name="id">
+ <xsl:value-of select="concat(@ProjectSafeName, 'HeaderRow')"/>
+ </xsl:attribute>
+ <th></th>
+ <th class="messageCell" _locID="MessageTableHeader">Message</th>
+ </tr>
+
+ <!-- Errors and warnings -->
+ <xsl:for-each select="Messages/Message[@Level &gt; 0]">
+ <xsl:sort select="@Level" order="descending" />
+ <xsl:apply-templates select="." />
+ </xsl:for-each>
+
+ <xsl:if test="@MessageCount > 0">
+ <xsl:apply-templates select="." mode="ProjectShowMessages" />
+ </xsl:if>
+
+ <!-- Messages -->
+ <xsl:for-each select="Messages/Message[@Level = 0]">
+ <xsl:apply-templates select="." />
+ </xsl:for-each>
+
+ <xsl:choose>
+ <!-- Additional row as a 'place holder' for 'Show/Hide' additional messages -->
+ <xsl:when test="@MessageCount > 0">
+ <xsl:apply-templates select="." mode="ProjectHideMessages" />
+ </xsl:when>
+ <!-- No messages at all, show blank row -->
+ <xsl:when test="@TotalCount = 0">
+ <tr>
+ <td>
+ <img width="16" height="16" src="_UpgradeReport_Files\UpgradeReport_Information.png" />
+ </td>
+ <xsl:choose>
+ <xsl:when test="@ProjectDisplayName = ''">
+ <td class="messageCell" _locID="NoMessagesRow2">
+ Solution logged no messages.
+ </td>
+ </xsl:when>
+ <xsl:otherwise>
+ <td class="messageCell" _locID="NoMessagesRow">
+ <xsl:value-of select="@ProjectDisplayName" /> logged no messages.
+ </td>
+ </xsl:otherwise>
+ </xsl:choose>
+ </tr>
+ </xsl:when>
+ </xsl:choose>
+ </table>
+ </xsl:for-each>
+ </xsl:template>
+
+ <!-- Document, matches "UpgradeReport" -->
+ <xsl:template match="UpgradeReport">
+ <!-- Output doc type the 'Mark of the web' which disabled prompting to run JavaScript from local HTML Files in IE -->
+ <!-- NOTE: The whitespace around the 'Mark of the web' is important it must be exact -->
+ <xsl:text disable-output-escaping="yes"><![CDATA[<!DOCTYPE html>
+<!-- saved from url=(0014)about:internet -->
+]]>
+ </xsl:text>
+ <html>
+ <head>
+ <meta content="en-us" http-equiv="Content-Language" />
+ <meta content="text/html; charset=utf-16" http-equiv="Content-Type" />
+ <link type="text/css" rel="stylesheet" href="_UpgradeReport_Files\UpgradeReport.css" />
+ <title _locID="ConversionReport0">
+ Migration Report
+ </title>
+
+ <script type="text/javascript" language="javascript">
+ <xsl:text disable-output-escaping="yes">
+ <![CDATA[
+
+ // Startup
+ // Hook up the the loaded event for the document/window, to linkify the document content
+ var startupFunction = function() { linkifyElement("messages"); };
+
+ if(window.attachEvent)
+ {
+ window.attachEvent('onload', startupFunction);
+ }
+ else if (window.addEventListener)
+ {
+ window.addEventListener('load', startupFunction, false);
+ }
+ else
+ {
+ document.addEventListener('load', startupFunction, false);
+ }
+
+ // Toggles the visibility of table rows with the specified name
+ function toggleTableRowsByName(name)
+ {
+ var allRows = document.getElementsByTagName('tr');
+ for (i=0; i < allRows.length; i++)
+ {
+ var currentName = allRows[i].getAttribute('name');
+ if(!!currentName && currentName.indexOf(name) == 0)
+ {
+ var isVisible = allRows[i].style.display == '';
+ isVisible ? allRows[i].style.display = 'none' : allRows[i].style.display = '';
+ }
+ }
+ }
+
+ function scrollToFirstVisibleRow(name)
+ {
+ var allRows = document.getElementsByTagName('tr');
+ for (i=0; i < allRows.length; i++)
+ {
+ var currentName = allRows[i].getAttribute('name');
+ var isVisible = allRows[i].style.display == '';
+ if(!!currentName && currentName.indexOf(name) == 0 && isVisible)
+ {
+ allRows[i].scrollIntoView(true);
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ // Linkifies the specified text content, replaces candidate links with html links
+ function linkify(text)
+ {
+ if(!text || 0 === text.length)
+ {
+ return text;
+ }
+
+ // Find http, https and ftp links and replace them with hyper links
+ var urlLink = /(http|https|ftp)\:\/\/[a-zA-Z0-9\-\.]+(:[a-zA-Z0-9]*)?\/?([a-zA-Z0-9\-\._\?\,\/\\\+&%\$#\=~;\{\}])*/gi;
+
+ return text.replace(urlLink, '<a href="$&">$&</a>') ;
+ }
+
+ // Linkifies the specified element by ID
+ function linkifyElement(id)
+ {
+ var element = document.getElementById(id);
+ if(!!element)
+ {
+ element.innerHTML = linkify(element.innerHTML);
+ }
+ }
+
+ function ToggleMessageVisibility(projectName)
+ {
+ if(!projectName || 0 === projectName.length)
+ {
+ return;
+ }
+
+ toggleTableRowsByName("MessageRowClass" + projectName);
+ toggleTableRowsByName('MessageRowHeaderShow' + projectName);
+ toggleTableRowsByName('MessageRowHeaderHide' + projectName);
+ }
+
+ function ScrollToFirstVisibleMessage(projectName)
+ {
+ if(!projectName || 0 === projectName.length)
+ {
+ return;
+ }
+
+ // First try the 'Show messages' row
+ if(!scrollToFirstVisibleRow('MessageRowHeaderShow' + projectName))
+ {
+ // Failed to find a visible row for 'Show messages', try an actual message row
+ scrollToFirstVisibleRow('MessageRowClass' + projectName);
+ }
+ }
+ ]]>
+ </xsl:text>
+ </script>
+ </head>
+ <body>
+ <h1 _locID="ConversionReport">
+ Migration Report - <xsl:value-of select="Properties/Property[@Name='Solution']/@Value"/>
+ </h1>
+
+ <div id="content">
+ <h2 _locID="OverviewTitle">Overview</h2>
+ <xsl:variable name="projectOverview">
+ <xsl:apply-templates select="self::node()" mode="ProjectOverviewXML" />
+ </xsl:variable>
+
+ <div id="overview">
+ <xsl:apply-templates select="msxsl:node-set($projectOverview)/*" mode="ProjectOverview" />
+ </div>
+
+ <h2 _locID="SolutionAndProjectsTitle">Solution and projects</h2>
+
+ <div id="messages">
+ <xsl:apply-templates select="msxsl:node-set($projectOverview)/*" mode="ProjectDetails" />
+ </div>
+ </div>
+ </body>
+ </html>
+ </xsl:template>
+
+</xsl:stylesheet>
BIN _UpgradeReport_Files/UpgradeReport_Error.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN _UpgradeReport_Files/UpgradeReport_Information.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN _UpgradeReport_Files/UpgradeReport_Success.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN _UpgradeReport_Files/UpgradeReport_Warning.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit d115f97

Please sign in to comment.
Something went wrong with that request. Please try again.