diff --git a/MSVC/.gitignore b/MSVC/.gitignore
new file mode 100644
index 00000000..a462d955
--- /dev/null
+++ b/MSVC/.gitignore
@@ -0,0 +1,9 @@
+# Visual Studio files
+x64
+cd-info
+_UpgradeReport_Files
+Backup
+*.user
+UpgradeLog.*
+*.sdf
+*.suo
\ No newline at end of file
diff --git a/MSVC/cd-info.vcxproj b/MSVC/cd-info.vcxproj
new file mode 100644
index 00000000..f86789f0
--- /dev/null
+++ b/MSVC/cd-info.vcxproj
@@ -0,0 +1,185 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+ {8E55CFDB-5E38-4A07-84F8-36939C825735}
+ cd-info
+ Win32Proj
+
+
+
+ Application
+ v110
+ MultiByte
+
+
+ Application
+ v110
+ MultiByte
+
+
+ Application
+ v110
+ MultiByte
+
+
+ Application
+ v110
+ MultiByte
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>11.0.51106.1
+
+
+ Debug\
+ Debug\
+ true
+
+
+ true
+
+
+ Release\
+ Release\
+ false
+
+
+ false
+
+
+
+ Disabled
+ ..\include\cdio;..\src;..\lib\driver;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)
+ WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H;HAVE_WINDOWS_H;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
+ MultiThreadedDebug
+
+ $(ProjectName)/$(IntDir)
+ $(ProjectName)/$(IntDir)vc70.pdb
+ Level3
+ EditAndContinue
+
+
+ libcdiod.lib;winmm.lib;%(AdditionalDependencies)
+ $(ProjectName)/$(OutDir)cd-info.exe
+ Debug;%(AdditionalLibraryDirectories)
+ true
+ $(ProjectName)/$(OutDir)cd-info.pdb
+ Console
+ MachineX86
+
+
+
+
+ Disabled
+ ..\include\cdio;..\src;..\lib\driver;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)
+ WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H;HAVE_WINDOWS_H;%(PreprocessorDefinitions)
+ EnableFastChecks
+ MultiThreadedDebug
+
+
+ $(ProjectName)/$(IntDir)
+ $(ProjectName)/$(IntDir)vc70.pdb
+ Level3
+ ProgramDatabase
+
+
+ libcdiod.lib;winmm.lib;%(AdditionalDependencies)
+ $(ProjectName)/$(OutDir)cd-info.exe
+ Debug;%(AdditionalLibraryDirectories)
+ true
+ $(ProjectName)/$(OutDir)cd-info.pdb
+ Console
+
+
+
+
+ ..\include\cdio;..\src;..\lib\driver;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)
+ WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H;HAVE_WINDOWS_H;%(PreprocessorDefinitions)
+ MultiThreaded
+
+ $(ProjectName)/$(IntDir)
+ $(ProjectName)/$(IntDir)vc70.pdb
+ Level3
+ ProgramDatabase
+
+
+ libcdio.lib;winmm.lib;%(AdditionalDependencies)
+ $(ProjectName)/$(OutDir)cd-info.exe
+ Release;%(AdditionalLibraryDirectories)
+ true
+ $(ProjectName)/$(OutDir)$(ProjectName).pdb
+ Console
+ true
+ true
+ MachineX86
+
+
+
+
+ ..\include\cdio;..\src;..\lib\driver;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)
+ WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H;HAVE_WINDOWS_H;%(PreprocessorDefinitions)
+ MultiThreaded
+
+
+ $(ProjectName)/$(IntDir)
+ $(ProjectName)/$(IntDir)vc70.pdb
+ Level3
+ ProgramDatabase
+
+
+ libcdio.lib;winmm.lib;%(AdditionalDependencies)
+ $(ProjectName)/$(OutDir)cd-info.exe
+ Release;%(AdditionalLibraryDirectories)
+ true
+ $(ProjectName)/$(OutDir)$(ProjectName).pdb
+ Console
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MSVC/cd-info.vcxproj.filters b/MSVC/cd-info.vcxproj.filters
new file mode 100644
index 00000000..0ce770cb
--- /dev/null
+++ b/MSVC/cd-info.vcxproj.filters
@@ -0,0 +1,30 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hpp;hxx;hm;inl;inc;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+
+
+ Header Files
+
+
+
\ No newline at end of file
diff --git a/MSVC/libcdio.sln b/MSVC/libcdio.sln
index fe8a64af..a4072bc8 100644
--- a/MSVC/libcdio.sln
+++ b/MSVC/libcdio.sln
@@ -1,39 +1,38 @@
-Microsoft Visual Studio Solution File, Format Version 8.00
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcdio", "libcdio.vcproj", "{E465056A-C6F3-45EE-B791-CAF8E0CE629D}"
- ProjectSection(ProjectDependencies) = postProject
- EndProjectSection
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcdio", "libcdio.vcxproj", "{E465056A-C6F3-45EE-B791-CAF8E0CE629D}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cd-info", "cd-info.vcproj", "{8E55CFDB-5E38-4A07-84F8-36939C825735}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cd-info", "cd-info.vcxproj", "{8E55CFDB-5E38-4A07-84F8-36939C825735}"
ProjectSection(ProjectDependencies) = postProject
+ {E465056A-C6F3-45EE-B791-CAF8E0CE629D} = {E465056A-C6F3-45EE-B791-CAF8E0CE629D}
EndProjectSection
EndProject
Global
- GlobalSection(SolutionConfiguration) = preSolution
- Debug = Debug
- Release = Release
- XBOX_Debug = XBOX_Debug
- XBOX_Release = XBOX_Release
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
EndGlobalSection
- GlobalSection(ProjectConfiguration) = postSolution
- {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Debug.ActiveCfg = Debug|Win32
- {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Debug.Build.0 = Debug|Win32
- {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Release.ActiveCfg = Release|Win32
- {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Release.Build.0 = Release|Win32
- {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.XBOX_Debug.ActiveCfg = XBOX_Debug|Xbox
- {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.XBOX_Debug.Build.0 = XBOX_Debug|Xbox
- {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.XBOX_Release.ActiveCfg = XBOX_Release|Xbox
- {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.XBOX_Release.Build.0 = XBOX_Release|Xbox
- {8E55CFDB-5E38-4A07-84F8-36939C825735}.Debug.ActiveCfg = Debug|Win32
- {8E55CFDB-5E38-4A07-84F8-36939C825735}.Debug.Build.0 = Debug|Win32
- {8E55CFDB-5E38-4A07-84F8-36939C825735}.Release.ActiveCfg = Release|Win32
- {8E55CFDB-5E38-4A07-84F8-36939C825735}.Release.Build.0 = Release|Win32
- {8E55CFDB-5E38-4A07-84F8-36939C825735}.XBOX_Debug.ActiveCfg = XBOX_Debug|Xbox
- {8E55CFDB-5E38-4A07-84F8-36939C825735}.XBOX_Debug.Build.0 = XBOX_Debug|Xbox
- {8E55CFDB-5E38-4A07-84F8-36939C825735}.XBOX_Release.ActiveCfg = XBOX_Release|Xbox
- {8E55CFDB-5E38-4A07-84F8-36939C825735}.XBOX_Release.Build.0 = XBOX_Release|Xbox
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Debug|Win32.ActiveCfg = Debug|Win32
+ {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Debug|Win32.Build.0 = Debug|Win32
+ {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Debug|x64.ActiveCfg = Debug|x64
+ {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Debug|x64.Build.0 = Debug|x64
+ {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Release|Win32.ActiveCfg = Release|Win32
+ {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Release|Win32.Build.0 = Release|Win32
+ {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Release|x64.ActiveCfg = Release|x64
+ {E465056A-C6F3-45EE-B791-CAF8E0CE629D}.Release|x64.Build.0 = Release|x64
+ {8E55CFDB-5E38-4A07-84F8-36939C825735}.Debug|Win32.ActiveCfg = Debug|Win32
+ {8E55CFDB-5E38-4A07-84F8-36939C825735}.Debug|Win32.Build.0 = Debug|Win32
+ {8E55CFDB-5E38-4A07-84F8-36939C825735}.Debug|x64.ActiveCfg = Debug|x64
+ {8E55CFDB-5E38-4A07-84F8-36939C825735}.Debug|x64.Build.0 = Debug|x64
+ {8E55CFDB-5E38-4A07-84F8-36939C825735}.Release|Win32.ActiveCfg = Release|Win32
+ {8E55CFDB-5E38-4A07-84F8-36939C825735}.Release|Win32.Build.0 = Release|Win32
+ {8E55CFDB-5E38-4A07-84F8-36939C825735}.Release|x64.ActiveCfg = Release|x64
+ {8E55CFDB-5E38-4A07-84F8-36939C825735}.Release|x64.Build.0 = Release|x64
EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- EndGlobalSection
- GlobalSection(ExtensibilityAddIns) = postSolution
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
diff --git a/MSVC/libcdio.vcxproj b/MSVC/libcdio.vcxproj
new file mode 100644
index 00000000..98338bad
--- /dev/null
+++ b/MSVC/libcdio.vcxproj
@@ -0,0 +1,235 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+ {E465056A-C6F3-45EE-B791-CAF8E0CE629D}
+ Win32Proj
+
+
+
+ StaticLibrary
+ v110
+ MultiByte
+
+
+ StaticLibrary
+ v110
+ MultiByte
+
+
+ StaticLibrary
+ v110
+ MultiByte
+
+
+ StaticLibrary
+ v110
+ MultiByte
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectFileVersion>11.0.51106.1
+
+
+ Debug\
+ Debug\
+
+
+
+ Release\
+ Release\
+
+
+
+
+ Disabled
+ ..\MSVC;..\include;..\lib\driver;..\lib\driver\MSWindows;..\lib\driver\mmc;..\lib\driver\image;..\lib\driver\FreeBSD;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)
+ WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H;HAVE_WINDOWS_H;%(PreprocessorDefinitions)
+ true
+ EnableFastChecks
+ MultiThreadedDebug
+
+ Level3
+ EditAndContinue
+
+
+ $(OutDir)$(ProjectName)d.lib
+
+
+
+
+ Disabled
+ ..\MSVC;..\include;..\lib\driver;..\lib\driver\MSWindows;..\lib\driver\mmc;..\lib\driver\image;..\lib\driver\FreeBSD;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)
+ WIN32;_DEBUG;_CONSOLE;HAVE_CONFIG_H;HAVE_WINDOWS_H;%(PreprocessorDefinitions)
+ EnableFastChecks
+ MultiThreadedDebug
+
+
+ Level3
+ ProgramDatabase
+
+
+ $(OutDir)$(ProjectName)d.lib
+
+
+
+
+ ..\MSVC;..\include;..\lib\driver;..\lib\driver\MSWindows;..\lib\driver\mmc;..\lib\driver\image;..\lib\driver\FreeBSD;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)
+ WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H;HAVE_WINDOWS_H;%(PreprocessorDefinitions)
+ MultiThreaded
+
+ Level3
+ ProgramDatabase
+
+
+
+
+ ..\MSVC;..\include;..\lib\driver;..\lib\driver\MSWindows;..\lib\driver\mmc;..\lib\driver\image;..\lib\driver\FreeBSD;..\lib\iso9660;..\lib\udf;%(AdditionalIncludeDirectories)
+ WIN32;NDEBUG;_CONSOLE;HAVE_CONFIG_H;%(PreprocessorDefinitions)
+ MultiThreaded
+
+
+ Level3
+ ProgramDatabase
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MSVC/libcdio.vcxproj.filters b/MSVC/libcdio.vcxproj.filters
new file mode 100644
index 00000000..b5987b80
--- /dev/null
+++ b/MSVC/libcdio.vcxproj.filters
@@ -0,0 +1,367 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {1ccad4fe-bf79-427a-8dbc-c16c700cc2d3}
+
+
+ {3b4f92ed-660d-4415-a252-685e2f9fa4e3}
+
+
+ {f83086f3-c8ae-4e7a-aab6-037b2caa229a}
+
+
+ {8f2d6b54-9af9-4834-a1e9-1b0596b9fb31}
+
+
+ {831d9ff6-69d6-4af7-9b69-05529d86fa8c}
+
+
+ {4a15ee1f-56e9-4f8e-992d-b8171b4b2fbe}
+
+
+ {c48c999a-bfa8-407a-9ad1-2ae0575411d7}
+
+
+ {f9566a07-3cd6-410c-abb8-5d292d91d496}
+
+
+ {7050c012-edf5-40cb-9487-a59d85b18b0f}
+
+
+ {6274b3bd-7c49-4399-837a-16dfac9e036f}
+
+
+ {551721c2-51db-4fd7-bcfb-df978c6bb839}
+
+
+ {6f904c48-01ae-4c60-89fb-ef689c526549}
+
+
+ {dae44b13-c6e5-4d59-8269-23577de9e587}
+
+
+ {7e8c5436-1648-4bf0-aa55-8cfa3275b8e6}
+
+
+ {3c610521-a705-49b6-8d38-1731b4968640}
+
+
+ {d17f543b-3f32-4445-bb72-f0cf360890d5}
+
+
+ {1fc82f46-df3f-4e53-b1b7-799071823563}
+
+
+ {9294b999-1d55-467d-8520-f3e7faa8c888}
+
+
+
+
+ Source Files\driver\FreeBSD
+
+
+ Source Files\driver\FreeBSD
+
+
+ Source Files\driver\FreeBSD
+
+
+ Source Files\driver
+
+
+ Source Files\driver
+
+
+ Source Files\driver
+
+
+ Source Files\driver
+
+
+ Source Files\driver
+
+
+ Source Files\driver
+
+
+ Source Files\driver\image
+
+
+ Source Files\driver\image
+
+
+ Source Files\driver
+
+
+ Source Files\driver
+
+
+ Source Files\driver
+
+
+ Source Files\driver
+
+
+ Source Files\driver
+
+
+ Source Files\driver
+
+
+ Source Files\driver
+
+
+ Source Files\driver
+
+
+ Source Files\driver
+
+
+ Source Files\iso9660
+
+
+ Source Files\iso9660
+
+
+ Source Files\driver\mmc
+
+
+ Source Files\driver\mmc
+
+
+ Source Files\driver\mmc
+
+
+ Source Files\driver\mmc
+
+
+ Source Files\driver
+
+
+ Source Files\driver
+
+
+ Source Files\driver
+
+
+ Source Files\driver
+
+
+ Source Files\driver
+
+
+ Source Files\driver
+
+
+ Source Files\driver
+
+
+ Source Files\iso9660
+
+
+ Source Files\driver
+
+
+ Source Files\driver
+
+
+ Source Files\driver
+
+
+ Source Files\iso9660
+
+
+ Source Files\driver\MSWindows
+
+
+ Source Files\driver\MSWindows
+
+
+ Source Files\driver
+
+
+ Source Files\driver
+
+
+ Source Files\driver\MSWindows
+
+
+
+
+ Source Files\udf
+
+
+ Source Files\udf
+
+
+ Source Files\udf
+
+
+ Source Files\udf
+
+
+ Source Files\udf
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio
+
+
+ Include Files\cdio\msvc
+
+
+ Include Files\lib\iso9660
+
+
+ Include Files\lib\driver\FreeBSD
+
+
+ Include Files\lib\driver\image
+
+
+ Include Files\lib\driver\mmc
+
+
+ Include Files\lib\driver\mmc
+
+
+ Include Files\lib\driver\MSWindows
+
+
+ Include Files\lib\driver\MSWindows
+
+
+ Include Files\lib\driver
+
+
+ Include Files\lib\driver
+
+
+ Include Files\lib\driver
+
+
+ Include Files\lib\driver
+
+
+ Include Files\lib\driver
+
+
+ Include Files\lib\driver
+
+
+ Include Files\lib\driver
+
+
+ Include Files\lib\driver
+
+
+ Include Files\lib\driver
+
+
+ Include Files\lib\driver
+
+
+ Include Files\lib\udf
+
+
+ Include Files\lib\udf
+
+
+ Include Files\cdio\msvc
+
+
+
\ No newline at end of file
diff --git a/include/cdio/cdio.h b/include/cdio/cdio.h
index 044f3469..76712ae5 100644
--- a/include/cdio/cdio.h
+++ b/include/cdio/cdio.h
@@ -31,7 +31,11 @@
*/
#define CDIO_API_VERSION 6
-#include
+#if defined (_MSC_VER) || defined (_XBOX)
+ #include
+#else
+ #include
+#endif
#include
#include
diff --git a/include/cdio/msvc/version.h b/include/cdio/msvc/version.h
new file mode 100644
index 00000000..bc21f1e4
--- /dev/null
+++ b/include/cdio/msvc/version.h
@@ -0,0 +1,20 @@
+/* $Id: version.h.in,v 1.6 2005/01/29 20:54:20 rocky Exp $ */
+/** \file version.h
+ *
+ * \brief A file containing the libcdio package version
+ * number (@LIBCDIO_VERSION_NUM@) and OS build name.
+ */
+
+/*! CDIO_VERSION is a C-Preprocessor macro of a string that shows what
+ version is used. cdio_version_string has the same value, but it is a
+ constant variable that can be accessed at run time. */
+#define CDIO_VERSION "@VERSION@ @build@"
+extern const char *cdio_version_string; /**< = CDIO_VERSION */
+
+/*! LIBCDIO_VERSION_NUM is a C-Preprocessor macro that can be used for
+ testing in the C preprocessor. libcdio_version_num has the same
+ value, but it is a constant variable that can be accessed at run
+ time. */
+#define LIBCDIO_VERSION_NUM @LIBCDIO_VERSION_NUM@
+
+extern const unsigned int libcdio_version_num; /**< = LIBCDIO_VERSION_NUM */