commit
4d8ee57445
133 changed files with 5180 additions and 0 deletions
@ -0,0 +1,577 @@
@@ -0,0 +1,577 @@
|
||||
Imports System.IO |
||||
Imports System.Drawing |
||||
|
||||
|
||||
Public Class CDGFile |
||||
Implements IDisposable |
||||
|
||||
|
||||
#Region "Constants" |
||||
'CDG Command Code |
||||
Const CDG_COMMAND As Byte = &H9 |
||||
|
||||
'CDG Instruction Codes |
||||
Const CDG_INST_MEMORY_PRESET As Integer = 1 |
||||
Const CDG_INST_BORDER_PRESET As Integer = 2 |
||||
Const CDG_INST_TILE_BLOCK As Integer = 6 |
||||
Const CDG_INST_SCROLL_PRESET As Integer = 20 |
||||
Const CDG_INST_SCROLL_COPY As Integer = 24 |
||||
Const CDG_INST_DEF_TRANSP_COL As Integer = 28 |
||||
Const CDG_INST_LOAD_COL_TBL_LO As Integer = 30 |
||||
Const CDG_INST_LOAD_COL_TBL_HIGH As Integer = 31 |
||||
Const CDG_INST_TILE_BLOCK_XOR As Integer = 38 |
||||
|
||||
'Bitmask for all CDG fields |
||||
Const CDG_MASK As Byte = &H3F |
||||
Const CDG_PACKET_SIZE As Integer = 24 |
||||
Const TILE_HEIGHT As Integer = 12 |
||||
Const TILE_WIDTH As Integer = 6 |
||||
|
||||
'This is the size of the display as defined by the CDG specification. |
||||
'The pixels in this region can be painted, and scrolling operations |
||||
'rotate through this number of pixels. |
||||
Public Const CDG_FULL_WIDTH As Integer = 300 |
||||
Public Const CDG_FULL_HEIGHT As Integer = 216 |
||||
|
||||
'This is the size of the screen that is actually intended to be |
||||
'visible. It is the center area of CDG_FULL. |
||||
Const CDG_DISPLAY_WIDTH As Integer = 294 |
||||
Const CDG_DISPLAY_HEIGHT As Integer = 204 |
||||
|
||||
Const COLOUR_TABLE_SIZE As Integer = 16 |
||||
#End Region |
||||
|
||||
#Region "Private Declarations" |
||||
|
||||
Private m_pixelColours(CDG_FULL_HEIGHT - 1, CDG_FULL_WIDTH - 1) As Byte |
||||
Private m_colourTable(COLOUR_TABLE_SIZE - 1) As Integer |
||||
Private m_presetColourIndex As Integer |
||||
Private m_borderColourIndex As Integer |
||||
Private m_transparentColour As Integer |
||||
|
||||
Private m_hOffset As Integer |
||||
Private m_vOffset As Integer |
||||
|
||||
Private m_pStream As CdgFileIoStream |
||||
Private m_pSurface As ISurface |
||||
Private m_positionMs As Long |
||||
Private m_duration As Long |
||||
|
||||
Private mImage As Bitmap |
||||
|
||||
#End Region |
||||
|
||||
#Region "Properties" |
||||
|
||||
Public ReadOnly Property RGBImage(Optional ByVal makeTransparent As Boolean = False) As System.Drawing.Image |
||||
Get |
||||
Dim temp As New MemoryStream |
||||
Try |
||||
Dim i As Integer = 0 |
||||
For ri = 0 To CDG_FULL_HEIGHT - 1 |
||||
For ci = 0 To CDG_FULL_WIDTH - 1 |
||||
Dim ARGBInt As Integer = m_pSurface.rgbData(ri, ci) |
||||
Dim myByte(3) As Byte |
||||
myByte = BitConverter.GetBytes(ARGBInt) |
||||
temp.Write(myByte, 0, 4) |
||||
Next |
||||
Next |
||||
Catch ex As Exception |
||||
'Do nothing (empty bitmap will be returned) |
||||
End Try |
||||
Dim myBitmap As Bitmap = GraphicUtil.StreamToBitmap(temp, CDG_FULL_WIDTH, CDG_FULL_HEIGHT) |
||||
If makeTransparent Then |
||||
myBitmap.MakeTransparent(myBitmap.GetPixel(1, 1)) |
||||
End If |
||||
Return myBitmap |
||||
End Get |
||||
|
||||
End Property |
||||
|
||||
#End Region |
||||
|
||||
#Region "Public Methods" |
||||
|
||||
'Png Export |
||||
Public Sub SavePng(ByVal filename As String) |
||||
RGBImage.Save(filename, System.Drawing.Imaging.ImageFormat.Png) |
||||
End Sub |
||||
|
||||
'New |
||||
Public Sub New(ByVal cdgFileName As String) |
||||
m_pStream = New CdgFileIoStream |
||||
m_pStream.open(cdgFileName) |
||||
m_pSurface = New ISurface |
||||
If m_pStream IsNot Nothing AndAlso m_pSurface IsNot Nothing Then |
||||
Me.reset() |
||||
m_duration = ((m_pStream.getsize() / CDG_PACKET_SIZE) * 1000) / 300 |
||||
End If |
||||
End Sub |
||||
|
||||
Public Function getTotalDuration() As Long |
||||
Return m_duration |
||||
End Function |
||||
|
||||
Public Function renderAtPosition(ByVal ms As Long) As Boolean |
||||
Dim pack As New CdgPacket |
||||
Dim numPacks As Long = 0 |
||||
Dim res As Boolean = True |
||||
|
||||
If (m_pStream Is Nothing) Then |
||||
Return False |
||||
End If |
||||
|
||||
If (ms < m_positionMs) Then |
||||
If (m_pStream.seek(0, SeekOrigin.Begin) < 0) Then Return False |
||||
m_positionMs = 0 |
||||
End If |
||||
|
||||
'duration of one packet is 1/300 seconds (4 packets per sector, 75 sectors per second) |
||||
|
||||
numPacks = ms - m_positionMs |
||||
numPacks /= 10 |
||||
|
||||
m_positionMs += numPacks * 10 |
||||
numPacks *= 3 |
||||
|
||||
'TODO: double check logic due to inline while loop fucntionality |
||||
While numPacks > 0 'AndAlso m_pSurface.rgbData Is Nothing |
||||
res = readPacket(pack) |
||||
processPacket(pack) |
||||
numPacks -= 1 |
||||
End While |
||||
|
||||
render() |
||||
Return res |
||||
|
||||
End Function |
||||
|
||||
#End Region |
||||
|
||||
#Region "Private Methods" |
||||
|
||||
Private Sub reset() |
||||
|
||||
Array.Clear(m_pixelColours, 0, m_pixelColours.LongLength) |
||||
Array.Clear(m_colourTable, 0, m_colourTable.LongLength) |
||||
|
||||
m_presetColourIndex = 0 |
||||
m_borderColourIndex = 0 |
||||
m_transparentColour = 0 |
||||
m_hOffset = 0 |
||||
m_vOffset = 0 |
||||
|
||||
m_duration = 0 |
||||
m_positionMs = 0 |
||||
|
||||
'clear surface |
||||
If (m_pSurface.rgbData IsNot Nothing) Then |
||||
Array.Clear(m_pSurface.rgbData, 0, m_pSurface.rgbData.LongLength) |
||||
End If |
||||
|
||||
End Sub |
||||
|
||||
Private Function readPacket(ByRef pack As CdgPacket) As Boolean |
||||
|
||||
If m_pStream Is Nothing Or m_pStream.eof() Then |
||||
Return False |
||||
End If |
||||
|
||||
Dim read As Integer = 0 |
||||
|
||||
read += m_pStream.read(pack.command, 1) |
||||
read += m_pStream.read(pack.instruction, 1) |
||||
read += m_pStream.read(pack.parityQ, 2) |
||||
read += m_pStream.read(pack.data, 16) |
||||
read += m_pStream.read(pack.parityP, 4) |
||||
|
||||
Return (read = 24) |
||||
End Function |
||||
|
||||
Private Sub processPacket(ByRef pack As CdgPacket) |
||||
|
||||
Dim inst_code As Integer |
||||
|
||||
If ((pack.command(0) And CDG_MASK) = CDG_COMMAND) Then |
||||
inst_code = (pack.instruction(0) And CDG_MASK) |
||||
Select Case inst_code |
||||
Case CDG_INST_MEMORY_PRESET |
||||
memoryPreset(pack) |
||||
Exit Sub |
||||
|
||||
Case CDG_INST_BORDER_PRESET |
||||
borderPreset(pack) |
||||
Exit Sub |
||||
|
||||
Case CDG_INST_TILE_BLOCK |
||||
tileBlock(pack, False) |
||||
Exit Sub |
||||
|
||||
Case CDG_INST_SCROLL_PRESET |
||||
scroll(pack, False) |
||||
Exit Sub |
||||
|
||||
Case CDG_INST_SCROLL_COPY |
||||
scroll(pack, True) |
||||
Exit Sub |
||||
|
||||
Case CDG_INST_DEF_TRANSP_COL |
||||
defineTransparentColour(pack) |
||||
Exit Sub |
||||
|
||||
Case CDG_INST_LOAD_COL_TBL_LO |
||||
loadColorTable(pack, 0) |
||||
Exit Sub |
||||
|
||||
Case CDG_INST_LOAD_COL_TBL_HIGH |
||||
loadColorTable(pack, 1) |
||||
Exit Sub |
||||
|
||||
Case CDG_INST_TILE_BLOCK_XOR |
||||
tileBlock(pack, True) |
||||
Exit Sub |
||||
|
||||
Case Else |
||||
'Ignore the unsupported commands |
||||
Exit Sub |
||||
End Select |
||||
End If |
||||
End Sub |
||||
|
||||
Private Sub memoryPreset(ByRef pack As CdgPacket) |
||||
|
||||
Dim colour As Integer |
||||
Dim ri As Integer |
||||
Dim ci As Integer |
||||
Dim repeat As Integer |
||||
|
||||
colour = pack.data(0) And &HF |
||||
repeat = pack.data(1) And &HF |
||||
|
||||
'Our new interpretation of CD+G Revealed is that memory preset |
||||
'commands should also change the border |
||||
m_presetColourIndex = colour |
||||
m_borderColourIndex = colour |
||||
|
||||
'we have a reliable data stream, so the repeat command |
||||
'is executed only the first time |
||||
|
||||
If (repeat = 0) Then |
||||
|
||||
'Note that this may be done before any load colour table |
||||
'commands by some CDGs. So the load colour table itself |
||||
'actual recalculates the RGB values for all pixels when |
||||
'the colour table changes. |
||||
|
||||
'Set the preset colour for every pixel. Must be stored in |
||||
'the pixel colour table indeces array |
||||
|
||||
For ri = 0 To CDG_FULL_HEIGHT - 1 |
||||
For ci = 0 To CDG_FULL_WIDTH - 1 |
||||
m_pixelColours(ri, ci) = colour |
||||
Next |
||||
Next |
||||
End If |
||||
|
||||
End Sub |
||||
|
||||
Private Sub borderPreset(ByRef pack As CdgPacket) |
||||
|
||||
Dim colour As Integer |
||||
Dim ri As Integer |
||||
Dim ci As Integer |
||||
|
||||
colour = pack.data(0) And &HF |
||||
m_borderColourIndex = colour |
||||
|
||||
'The border area is the area contained with a rectangle |
||||
'defined by (0,0,300,216) minus the interior pixels which are contained |
||||
'within a rectangle defined by (6,12,294,204). |
||||
|
||||
For ri = 0 To CDG_FULL_HEIGHT - 1 |
||||
For ci = 0 To 5 |
||||
m_pixelColours(ri, ci) = colour |
||||
Next |
||||
|
||||
For ci = CDG_FULL_WIDTH - 6 To CDG_FULL_WIDTH - 1 |
||||
m_pixelColours(ri, ci) = colour |
||||
Next |
||||
Next |
||||
|
||||
For ci = 6 To CDG_FULL_WIDTH - 7 |
||||
For ri = 0 To 11 |
||||
m_pixelColours(ri, ci) = colour |
||||
Next |
||||
|
||||
For ri = CDG_FULL_HEIGHT - 12 To CDG_FULL_HEIGHT - 1 |
||||
m_pixelColours(ri, ci) = colour |
||||
Next |
||||
Next |
||||
|
||||
End Sub |
||||
|
||||
Private Sub loadColorTable(ByRef pack As CdgPacket, ByVal table As Integer) |
||||
|
||||
For i As Integer = 0 To 7 |
||||
|
||||
'[---high byte---] [---low byte----] |
||||
'7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 |
||||
'X X r r r r g g X X g g b b b b |
||||
|
||||
Dim byte0 As Byte = pack.data(2 * i) |
||||
Dim byte1 As Byte = pack.data(2 * i + 1) |
||||
Dim red As Integer = (byte0 And &H3F) >> 2 |
||||
Dim green As Integer = ((byte0 And &H3) << 2) Or ((byte1 And &H3F) >> 4) |
||||
Dim blue As Integer = byte1 And &HF |
||||
|
||||
red *= 17 |
||||
green *= 17 |
||||
blue *= 17 |
||||
|
||||
If m_pSurface IsNot Nothing Then |
||||
m_colourTable(i + table * 8) = m_pSurface.MapRGBColour(red, green, blue) |
||||
End If |
||||
Next |
||||
|
||||
End Sub |
||||
|
||||
Private Sub tileBlock(ByRef pack As CdgPacket, ByVal bXor As Boolean) |
||||
|
||||
Dim colour0 As Integer |
||||
Dim colour1 As Integer |
||||
Dim column_index As Integer |
||||
Dim row_index As Integer |
||||
Dim myByte As Integer |
||||
Dim pixel As Integer |
||||
Dim xor_col As Integer |
||||
Dim currentColourIndex As Integer |
||||
Dim new_col As Integer |
||||
|
||||
colour0 = pack.data(0) And &HF |
||||
colour1 = pack.data(1) And &HF |
||||
row_index = ((pack.data(2) And &H1F) * 12) |
||||
column_index = ((pack.data(3) And &H3F) * 6) |
||||
|
||||
If (row_index > (CDG_FULL_HEIGHT - TILE_HEIGHT)) Then Exit Sub |
||||
If (column_index > (CDG_FULL_WIDTH - TILE_WIDTH)) Then Exit Sub |
||||
|
||||
'Set the pixel array for each of the pixels in the 12x6 tile. |
||||
'Normal = Set the colour to either colour0 or colour1 depending |
||||
'on whether the pixel value is 0 or 1. |
||||
'XOR = XOR the colour with the colour index currently there. |
||||
|
||||
For i As Integer = 0 To 11 |
||||
|
||||
myByte = (pack.data(4 + i) And &H3F) |
||||
For j As Integer = 0 To 5 |
||||
pixel = (myByte >> (5 - j)) And &H1 |
||||
If (bXor) Then |
||||
'Tile Block XOR |
||||
If (pixel = 0) Then |
||||
xor_col = colour0 |
||||
Else |
||||
xor_col = colour1 |
||||
End If |
||||
|
||||
'Get the colour index currently at this location, and xor with it |
||||
currentColourIndex = m_pixelColours(row_index + i, column_index + j) |
||||
new_col = currentColourIndex Xor xor_col |
||||
Else |
||||
If (pixel = 0) Then |
||||
new_col = colour0 |
||||
Else |
||||
new_col = colour1 |
||||
End If |
||||
End If |
||||
|
||||
'Set the pixel with the new colour. We set both the surfarray |
||||
'containing actual RGB values, as well as our array containing |
||||
'the colour indexes into our colour table. |
||||
m_pixelColours(row_index + i, column_index + j) = new_col |
||||
Next |
||||
|
||||
Next |
||||
End Sub |
||||
|
||||
Private Sub defineTransparentColour(ByRef pack As CdgPacket) |
||||
m_transparentColour = pack.data(0) And &HF |
||||
End Sub |
||||
|
||||
Private Sub scroll(ByRef pack As CdgPacket, ByVal copy As Boolean) |
||||
|
||||
Dim colour As Integer |
||||
Dim hScroll As Integer |
||||
Dim vScroll As Integer |
||||
Dim hSCmd As Integer |
||||
Dim hOffset As Integer |
||||
Dim vSCmd As Integer |
||||
Dim vOffset As Integer |
||||
Dim vScrollPixels As Integer |
||||
Dim hScrollPixels As Integer |
||||
|
||||
'Decode the scroll command parameters |
||||
colour = pack.data(0) And &HF |
||||
hScroll = pack.data(1) And &H3F |
||||
vScroll = pack.data(2) And &H3F |
||||
|
||||
hSCmd = (hScroll And &H30) >> 4 |
||||
hOffset = (hScroll And &H7) |
||||
vSCmd = (vScroll And &H30) >> 4 |
||||
vOffset = (vScroll And &HF) |
||||
|
||||
|
||||
m_hOffset = If(hOffset < 5, hOffset, 5) |
||||
m_vOffset = If(vOffset < 11, vOffset, 11) |
||||
|
||||
'Scroll Vertical - Calculate number of pixels |
||||
|
||||
vScrollPixels = 0 |
||||
If (vSCmd = 2) Then |
||||
vScrollPixels = -12 |
||||
ElseIf (vSCmd = 1) Then |
||||
vScrollPixels = 12 |
||||
End If |
||||
|
||||
'Scroll Horizontal- Calculate number of pixels |
||||
|
||||
hScrollPixels = 0 |
||||
If (hSCmd = 2) Then |
||||
hScrollPixels = -6 |
||||
ElseIf (hSCmd = 1) Then |
||||
hScrollPixels = 6 |
||||
End If |
||||
|
||||
If (hScrollPixels = 0 AndAlso vScrollPixels = 0) Then |
||||
Exit Sub |
||||
End If |
||||
|
||||
'Perform the actual scroll. |
||||
|
||||
Dim temp(CDG_FULL_HEIGHT, CDG_FULL_WIDTH) As Byte |
||||
Dim vInc As Integer = vScrollPixels + CDG_FULL_HEIGHT |
||||
Dim hInc As Integer = hScrollPixels + CDG_FULL_WIDTH |
||||
Dim ri As Integer 'row index |
||||
Dim ci As Integer 'column index |
||||
|
||||
For ri = 0 To CDG_FULL_HEIGHT - 1 |
||||
For ci = 0 To CDG_FULL_WIDTH - 1 |
||||
temp((ri + vInc) Mod CDG_FULL_HEIGHT, (ci + hInc) Mod CDG_FULL_WIDTH) = m_pixelColours(ri, ci) |
||||
Next |
||||
Next |
||||
|
||||
|
||||
'if copy is false, we were supposed to fill in the new pixels |
||||
'with a new colour. Go back and do that now. |
||||
|
||||
If (copy = False) Then |
||||
|
||||
If (vScrollPixels > 0) Then |
||||
|
||||
For ci = 0 To CDG_FULL_WIDTH - 1 |
||||
For ri = 0 To vScrollPixels - 1 |
||||
temp(ri, ci) = colour |
||||
Next |
||||
Next |
||||
|
||||
ElseIf (vScrollPixels < 0) Then |
||||
|
||||
For ci = 0 To CDG_FULL_WIDTH - 1 |
||||
For ri = CDG_FULL_HEIGHT + vScrollPixels To CDG_FULL_HEIGHT - 1 |
||||
temp(ri, ci) = colour |
||||
Next |
||||
Next |
||||
|
||||
End If |
||||
|
||||
If (hScrollPixels > 0) Then |
||||
|
||||
For ci = 0 To hScrollPixels - 1 |
||||
For ri = 0 To CDG_FULL_HEIGHT - 1 |
||||
temp(ri, ci) = colour |
||||
Next |
||||
Next |
||||
|
||||
ElseIf (hScrollPixels < 0) Then |
||||
|
||||
For ci = CDG_FULL_WIDTH + hScrollPixels To CDG_FULL_WIDTH - 1 |
||||
For ri = 0 To CDG_FULL_HEIGHT - 1 |
||||
temp(ri, ci) = colour |
||||
Next |
||||
Next |
||||
|
||||
End If |
||||
|
||||
End If |
||||
|
||||
'Now copy the temporary buffer back to our array |
||||
|
||||
For ri = 0 To CDG_FULL_HEIGHT - 1 |
||||
For ci = 0 To CDG_FULL_WIDTH - 1 |
||||
m_pixelColours(ri, ci) = temp(ri, ci) |
||||
Next |
||||
Next |
||||
|
||||
End Sub |
||||
|
||||
Private Sub render() |
||||
|
||||
If (m_pSurface Is Nothing) Then Exit Sub |
||||
For ri As Integer = 0 To CDG_FULL_HEIGHT - 1 |
||||
For ci As Integer = 0 To CDG_FULL_WIDTH - 1 |
||||
If (ri < TILE_HEIGHT OrElse ri >= CDG_FULL_HEIGHT - TILE_HEIGHT _ |
||||
OrElse ci < TILE_WIDTH OrElse ci >= CDG_FULL_WIDTH - TILE_WIDTH) Then |
||||
m_pSurface.rgbData(ri, ci) = m_colourTable(m_borderColourIndex) |
||||
Else |
||||
m_pSurface.rgbData(ri, ci) = m_colourTable(m_pixelColours(ri + m_vOffset, ci + m_hOffset)) |
||||
End If |
||||
Next |
||||
Next |
||||
|
||||
End Sub |
||||
|
||||
#End Region |
||||
|
||||
Private disposedValue As Boolean = False ' To detect redundant calls |
||||
|
||||
' IDisposable |
||||
Protected Overridable Sub Dispose(ByVal disposing As Boolean) |
||||
If Not Me.disposedValue Then |
||||
If disposing Then |
||||
m_pStream.close() |
||||
End If |
||||
m_pStream = Nothing |
||||
m_pSurface = Nothing |
||||
End If |
||||
Me.disposedValue = True |
||||
End Sub |
||||
|
||||
#Region " IDisposable Support " |
||||
' This code added by Visual Basic to correctly implement the disposable pattern. |
||||
Public Sub Dispose() Implements IDisposable.Dispose |
||||
' Do not change this code. Put cleanup code in Dispose(ByVal disposing As Boolean) above. |
||||
Dispose(True) |
||||
GC.SuppressFinalize(Me) |
||||
End Sub |
||||
#End Region |
||||
|
||||
End Class |
||||
|
||||
Public Class CdgPacket |
||||
Public command(0) As Byte |
||||
Public instruction(0) As Byte |
||||
Public parityQ(1) As Byte |
||||
Public data(15) As Byte |
||||
Public parityP(3) As Byte |
||||
End Class |
||||
|
||||
Public Class ISurface |
||||
|
||||
Public rgbData(CDGFile.CDG_FULL_HEIGHT - 1, CDGFile.CDG_FULL_WIDTH - 1) As Long |
||||
|
||||
Public Function MapRGBColour(ByVal red As Integer, ByVal green As Integer, ByVal blue As Integer) As Integer |
||||
Return Color.FromArgb(red, green, blue).ToArgb |
||||
End Function |
||||
|
||||
End Class |
||||
|
||||
|
@ -0,0 +1,140 @@
@@ -0,0 +1,140 @@
|
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||
<PropertyGroup> |
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
||||
<ProductVersion>9.0.21022</ProductVersion> |
||||
<SchemaVersion>2.0</SchemaVersion> |
||||
<ProjectGuid>{1A466A65-6F1D-465B-A7CB-79B69F76F2D0}</ProjectGuid> |
||||
<OutputType>Library</OutputType> |
||||
<RootNamespace>CDGNet</RootNamespace> |
||||
<AssemblyName>CDGNet</AssemblyName> |
||||
<FileAlignment>512</FileAlignment> |
||||
<MyType>Windows</MyType> |
||||
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion> |
||||
<OptionExplicit>On</OptionExplicit> |
||||
<OptionCompare>Binary</OptionCompare> |
||||
<OptionStrict>Off</OptionStrict> |
||||
<OptionInfer>On</OptionInfer> |
||||
<FileUpgradeFlags> |
||||
</FileUpgradeFlags> |
||||
<OldToolsVersion>3.5</OldToolsVersion> |
||||
<UpgradeBackupLocation /> |
||||
<PublishUrl>publish\</PublishUrl> |
||||
<Install>true</Install> |
||||
<InstallFrom>Disk</InstallFrom> |
||||
<UpdateEnabled>false</UpdateEnabled> |
||||
<UpdateMode>Foreground</UpdateMode> |
||||
<UpdateInterval>7</UpdateInterval> |
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits> |
||||
<UpdatePeriodically>false</UpdatePeriodically> |
||||
<UpdateRequired>false</UpdateRequired> |
||||
<MapFileExtensions>true</MapFileExtensions> |
||||
<ApplicationRevision>0</ApplicationRevision> |
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion> |
||||
<IsWebBootstrapper>false</IsWebBootstrapper> |
||||
<UseApplicationTrust>false</UseApplicationTrust> |
||||
<BootstrapperEnabled>true</BootstrapperEnabled> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> |
||||
<DebugSymbols>true</DebugSymbols> |
||||
<DebugType>full</DebugType> |
||||
<DefineDebug>true</DefineDebug> |
||||
<DefineTrace>true</DefineTrace> |
||||
<OutputPath>bin\Debug\</OutputPath> |
||||
<DocumentationFile>CDGNet.xml</DocumentationFile> |
||||
<NoWarn>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42353,42354,42355</NoWarn> |
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> |
||||
<DebugType>pdbonly</DebugType> |
||||
<DefineDebug>false</DefineDebug> |
||||
<DefineTrace>true</DefineTrace> |
||||
<Optimize>true</Optimize> |
||||
<OutputPath>bin\Release\</OutputPath> |
||||
<DocumentationFile>CDGNet.xml</DocumentationFile> |
||||
<NoWarn>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42353,42354,42355</NoWarn> |
||||
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet> |
||||
</PropertyGroup> |
||||
<ItemGroup> |
||||
<Reference Include="MetroFramework"> |
||||
<HintPath>..\lib\Metro\MetroFramework.dll</HintPath> |
||||
</Reference> |
||||
<Reference Include="System" /> |
||||
<Reference Include="System.Data" /> |
||||
<Reference Include="System.Drawing" /> |
||||
<Reference Include="System.Xml" /> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<Import Include="Microsoft.VisualBasic" /> |
||||
<Import Include="System" /> |
||||
<Import Include="System.Collections" /> |
||||
<Import Include="System.Collections.Generic" /> |
||||
<Import Include="System.Data" /> |
||||
<Import Include="System.Diagnostics" /> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<Compile Include="CDGFile.vb" /> |
||||
<Compile Include="CdgFileIoStream.vb" /> |
||||
<Compile Include="GraphicUtil.vb" /> |
||||
<Compile Include="My Project\AssemblyInfo.vb" /> |
||||
<Compile Include="My Project\Application.Designer.vb"> |
||||
<AutoGen>True</AutoGen> |
||||
<DependentUpon>Application.myapp</DependentUpon> |
||||
</Compile> |
||||
<Compile Include="My Project\Resources.Designer.vb"> |
||||
<AutoGen>True</AutoGen> |
||||
<DesignTime>True</DesignTime> |
||||
<DependentUpon>Resources.resx</DependentUpon> |
||||
</Compile> |
||||
<Compile Include="My Project\Settings.Designer.vb"> |
||||
<AutoGen>True</AutoGen> |
||||
<DependentUpon>Settings.settings</DependentUpon> |
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput> |
||||
</Compile> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<EmbeddedResource Include="My Project\Resources.resx"> |
||||
<Generator>VbMyResourcesResXFileCodeGenerator</Generator> |
||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput> |
||||
<CustomToolNamespace>My.Resources</CustomToolNamespace> |
||||
<SubType>Designer</SubType> |
||||
</EmbeddedResource> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<None Include="My Project\Application.myapp"> |
||||
<Generator>MyApplicationCodeGenerator</Generator> |
||||
<LastGenOutput>Application.Designer.vb</LastGenOutput> |
||||
</None> |
||||
<None Include="My Project\Settings.settings"> |
||||
<Generator>SettingsSingleFileGenerator</Generator> |
||||
<CustomToolNamespace>My</CustomToolNamespace> |
||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput> |
||||
</None> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<BootstrapperPackage Include="Microsoft.Net.Client.3.5"> |
||||
<Visible>False</Visible> |
||||
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName> |
||||
<Install>false</Install> |
||||
</BootstrapperPackage> |
||||
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1"> |
||||
<Visible>False</Visible> |
||||
<ProductName>.NET Framework 3.5 SP1</ProductName> |
||||
<Install>true</Install> |
||||
</BootstrapperPackage> |
||||
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1"> |
||||
<Visible>False</Visible> |
||||
<ProductName>Windows Installer 3.1</ProductName> |
||||
<Install>true</Install> |
||||
</BootstrapperPackage> |
||||
</ItemGroup> |
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" /> |
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. |
||||
Other similar extension points exist, see Microsoft.Common.targets. |
||||
<Target Name="BeforeBuild"> |
||||
</Target> |
||||
<Target Name="AfterBuild"> |
||||
</Target> |
||||
--> |
||||
</Project> |
@ -0,0 +1,13 @@
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||
<PropertyGroup> |
||||
<PublishUrlHistory /> |
||||
<InstallUrlHistory /> |
||||
<SupportUrlHistory /> |
||||
<UpdateUrlHistory /> |
||||
<BootstrapperUrlHistory /> |
||||
<ErrorReportUrlHistory /> |
||||
<FallbackCulture>en-US</FallbackCulture> |
||||
<VerifyUploadedFiles>false</VerifyUploadedFiles> |
||||
</PropertyGroup> |
||||
</Project> |
@ -0,0 +1,54 @@
@@ -0,0 +1,54 @@
|
||||
Imports System.IO |
||||
Public Class CdgFileIoStream |
||||
|
||||
#Region "Declarations" |
||||
|
||||
Private m_file As Stream |
||||
#End Region |
||||
|
||||
#Region "Public Methods" |
||||
Public Sub New() |
||||
m_file = Nothing |
||||
End Sub |
||||
|
||||
Public Function read(ByRef buf As Byte(), ByVal buf_size As Integer) As Integer |
||||
Return m_file.Read(buf, 0, buf_size) |
||||
End Function |
||||
|
||||
Public Function write(ByRef buf As Byte(), ByVal buf_size As Integer) As Integer |
||||
m_file.Write(buf, 0, buf_size) |
||||
Return 1 |
||||
End Function |
||||
|
||||
Public Function seek(ByVal offset As Integer, ByVal whence As SeekOrigin) As Integer |
||||
Return m_file.Seek(offset, whence) |
||||
End Function |
||||
|
||||
Public Function eof() As Integer |
||||
If (m_file.Position >= m_file.Length) Then |
||||
Return 1 |
||||
Else |
||||
Return 0 |
||||
End If |
||||
End Function |
||||
|
||||
Public Function getsize() As Integer |
||||
Return m_file.Length |
||||
End Function |
||||
|
||||
Public Function open(ByVal filename As String) As Boolean |
||||
close() |
||||
m_file = New FileStream(filename, FileMode.Open) |
||||
Return (m_file IsNot Nothing) |
||||
End Function |
||||
|
||||
Public Sub close() |
||||
If (m_file IsNot Nothing) Then |
||||
m_file.Close() |
||||
m_file = Nothing |
||||
End If |
||||
End Sub |
||||
|
||||
#End Region |
||||
|
||||
End Class |
@ -0,0 +1,65 @@
@@ -0,0 +1,65 @@
|
||||
Imports System.IO |
||||
Imports System.Drawing.Imaging |
||||
Imports System.Runtime.InteropServices |
||||
Imports System.Drawing |
||||
|
||||
Public Class GraphicUtil |
||||
|
||||
'copy a stream of pixels |
||||
Public Shared Function BitmapToStream(ByVal filename As String) As Stream |
||||
Dim oldBmp As Bitmap = DirectCast(Image.FromFile(filename), Bitmap) |
||||
Dim width As Integer = oldBmp.Width, height As Integer = oldBmp.Width |
||||
Dim oldData As BitmapData = oldBmp.LockBits(New Rectangle(0, 0, oldBmp.Width, oldBmp.Height), ImageLockMode.[WriteOnly], PixelFormat.Format24bppRgb) |
||||
Dim length As Integer = oldData.Stride * oldBmp.Height |
||||
Dim stream As Byte() = New Byte(length - 1) {} |
||||
Marshal.Copy(oldData.Scan0, stream, 0, length) |
||||
oldBmp.UnlockBits(oldData) |
||||
oldBmp.Dispose() |
||||
Return New MemoryStream(stream) |
||||
End Function |
||||
|
||||
|
||||
Public Shared Function StreamToBitmap(ByRef stream As Stream, ByVal width As Integer, ByVal height As Integer) As Bitmap |
||||
'create a new bitmap |
||||
Dim bmp As New Bitmap(width, height, PixelFormat.Format32bppArgb) |
||||
Dim bmpData As BitmapData = bmp.LockBits(New Rectangle(0, 0, width, height), ImageLockMode.[WriteOnly], bmp.PixelFormat) |
||||
stream.Seek(0, SeekOrigin.Begin) |
||||
'copy the stream of pixel |
||||
For n As Integer = 0 To stream.Length - 1 |
||||
Dim myByte(0) As Byte |
||||
stream.Read(myByte, 0, 1) |
||||
Marshal.WriteByte(bmpData.Scan0, n, myByte(0)) |
||||
Next |
||||
bmp.UnlockBits(bmpData) |
||||
Return bmp |
||||
End Function |
||||
|
||||
Public Shared Function GetCDGSizeBitmap(ByVal filename As String) As Bitmap |
||||
Dim bm As New Bitmap(filename) |
||||
Return ResizeBitmap(bm, CDGFile.CDG_FULL_WIDTH, CDGFile.CDG_FULL_HEIGHT) |
||||
End Function |
||||
|
||||
Public Shared Function ResizeBitmap(ByRef bm As Bitmap, ByVal width As Integer, ByVal height As Integer) As Bitmap |
||||
Dim thumb As New Bitmap(width, height) |
||||
Dim g As Graphics = Graphics.FromImage(thumb) |
||||
g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic |
||||
g.DrawImage(bm, New Rectangle(0, 0, width, height), New Rectangle(0, 0, bm.Width, _ |
||||
bm.Height), GraphicsUnit.Pixel) |
||||
g.Dispose() |
||||
bm.Dispose() |
||||
Return thumb |
||||
End Function |
||||
|
||||
Public Shared Function MergeImagesWithTransparency(ByVal Pic1 As Bitmap, ByVal pic2 As Bitmap) As Bitmap |
||||
Dim MergedImage As Image |
||||
Dim bm As New Bitmap(Pic1.Width, Pic1.Height) |
||||
Dim gr As Graphics = Graphics.FromImage(bm) |
||||
gr.DrawImage(Pic1, 0, 0) |
||||
pic2.MakeTransparent(pic2.GetPixel(1, 1)) |
||||
gr.DrawImage(pic2, 0, 0) |
||||
MergedImage = bm |
||||
gr.Dispose() |
||||
Return MergedImage |
||||
End Function |
||||
|
||||
End Class |
@ -0,0 +1,13 @@
@@ -0,0 +1,13 @@
|
||||
'------------------------------------------------------------------------------ |
||||
' <auto-generated> |
||||
' This code was generated by a tool. |
||||
' Runtime Version:4.0.30319.1026 |
||||
' |
||||
' Changes to this file may cause incorrect behavior and will be lost if |
||||
' the code is regenerated. |
||||
' </auto-generated> |
||||
'------------------------------------------------------------------------------ |
||||
|
||||
Option Strict On |
||||
Option Explicit On |
||||
|
@ -0,0 +1,10 @@
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> |
||||
<MySubMain>false</MySubMain> |
||||
<SingleInstance>false</SingleInstance> |
||||
<ShutdownMode>0</ShutdownMode> |
||||
<EnableVisualStyles>true</EnableVisualStyles> |
||||
<AuthenticationMode>0</AuthenticationMode> |
||||
<ApplicationType>1</ApplicationType> |
||||
<SaveMySettingsOnExit>true</SaveMySettingsOnExit> |
||||
</MyApplicationData> |
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
Imports System |
||||
Imports System.Reflection |
||||
Imports System.Runtime.InteropServices |
||||
|
||||
' General Information about an assembly is controlled through the following |
||||
' set of attributes. Change these attribute values to modify the information |
||||
' associated with an assembly. |
||||
|
||||
' Review the values of the assembly attributes |
||||
|
||||
<Assembly: AssemblyTitle("CDGNet")> |
||||
<Assembly: AssemblyDescription("")> |
||||
<Assembly: AssemblyCompany("")> |
||||
<Assembly: AssemblyProduct("CDGNet")> |
||||
<Assembly: AssemblyCopyright("Copyright © 2010")> |
||||
<Assembly: AssemblyTrademark("")> |
||||
|
||||
<Assembly: ComVisible(False)> |
||||
|
||||
'The following GUID is for the ID of the typelib if this project is exposed to COM |
||||
<Assembly: Guid("3ac6d65c-eadd-4387-95b7-56d5b902adfb")> |
||||
|
||||
' Version information for an assembly consists of the following four values: |
||||
' |
||||
' Major Version |
||||
' Minor Version |
||||
' Build Number |
||||
' Revision |
||||
' |
||||
' You can specify all the values or you can default the Build and Revision Numbers |
||||
' by using the '*' as shown below: |
||||
' <Assembly: AssemblyVersion("1.0.*")> |
||||
|
||||
<Assembly: AssemblyVersion("1.0.0.0")> |
||||
<Assembly: AssemblyFileVersion("1.0.0.0")> |
@ -0,0 +1,63 @@
@@ -0,0 +1,63 @@
|
||||
'------------------------------------------------------------------------------ |
||||
' <auto-generated> |
||||
' This code was generated by a tool. |
||||
' Runtime Version:4.0.30319.1026 |
||||
' |
||||
' Changes to this file may cause incorrect behavior and will be lost if |
||||
' the code is regenerated. |
||||
' </auto-generated> |
||||
'------------------------------------------------------------------------------ |
||||
|
||||
Option Strict On |
||||
Option Explicit On |
||||
|
||||
Imports System |
||||
|
||||
Namespace My.Resources |
||||
|
||||
'This class was auto-generated by the StronglyTypedResourceBuilder |
||||
'class via a tool like ResGen or Visual Studio. |
||||
'To add or remove a member, edit your .ResX file then rerun ResGen |
||||
'with the /str option, or rebuild your VS project. |
||||
'''<summary> |
||||
''' A strongly-typed resource class, for looking up localized strings, etc. |
||||
'''</summary> |
||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _ |
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _ |
||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _ |
||||
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _ |
||||
Friend Module Resources |
||||
|
||||
Private resourceMan As Global.System.Resources.ResourceManager |
||||
|
||||
Private resourceCulture As Global.System.Globalization.CultureInfo |
||||
|
||||
'''<summary> |
||||
''' Returns the cached ResourceManager instance used by this class. |
||||
'''</summary> |
||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _ |
||||
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager |
||||
Get |
||||
If Object.ReferenceEquals(resourceMan, Nothing) Then |
||||
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("CDGNet.Resources", GetType(Resources).Assembly) |
||||
resourceMan = temp |
||||
End If |
||||
Return resourceMan |
||||
End Get |
||||
End Property |
||||
|
||||
'''<summary> |
||||
''' Overrides the current thread's CurrentUICulture property for all |
||||
''' resource lookups using this strongly typed resource class. |
||||
'''</summary> |
||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _ |
||||
Friend Property Culture() As Global.System.Globalization.CultureInfo |
||||
Get |
||||
Return resourceCulture |
||||
End Get |
||||
Set |
||||
resourceCulture = value |
||||
End Set |
||||
End Property |
||||
End Module |
||||
End Namespace |
@ -0,0 +1,117 @@
@@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<root> |
||||
<!-- |
||||
Microsoft ResX Schema |
||||
|
||||
Version 2.0 |
||||
|
||||
The primary goals of this format is to allow a simple XML format |
||||
that is mostly human readable. The generation and parsing of the |
||||
various data types are done through the TypeConverter classes |
||||
associated with the data types. |
||||
|
||||
Example: |
||||
|
||||
... ado.net/XML headers & schema ... |
||||
<resheader name="resmimetype">text/microsoft-resx</resheader> |
||||
<resheader name="version">2.0</resheader> |
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> |
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> |
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> |
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> |
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> |
||||
<value>[base64 mime encoded serialized .NET Framework object]</value> |
||||
</data> |
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> |
||||
<comment>This is a comment</comment> |
||||
</data> |
||||
|
||||
There are any number of "resheader" rows that contain simple |
||||
name/value pairs. |
||||
|
||||
Each data row contains a name, and value. The row also contains a |
||||
type or mimetype. Type corresponds to a .NET class that support |
||||
text/value conversion through the TypeConverter architecture. |
||||
Classes that don't support this are serialized and stored with the |
||||
mimetype set. |
||||
|
||||
The mimetype is used for serialized objects, and tells the |
||||
ResXResourceReader how to depersist the object. This is currently not |
||||
extensible. For a given mimetype the value must be set accordingly: |
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format |
||||
that the ResXResourceWriter will generate, however the reader can |
||||
read any of the formats listed below. |
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64 |
||||
value : The object must be serialized with |
||||
: System.Serialization.Formatters.Binary.BinaryFormatter |
||||
: and then encoded with base64 encoding. |
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64 |
||||
value : The object must be serialized with |
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter |
||||
: and then encoded with base64 encoding. |
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64 |
||||
value : The object must be serialized into a byte array |
||||
: using a System.ComponentModel.TypeConverter |
||||
: and then encoded with base64 encoding. |
||||
--> |
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> |
||||
<xsd:element name="root" msdata:IsDataSet="true"> |
||||
<xsd:complexType> |
||||
<xsd:choice maxOccurs="unbounded"> |
||||
<xsd:element name="metadata"> |
||||
<xsd:complexType> |
||||
<xsd:sequence> |
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" /> |
||||
</xsd:sequence> |
||||
<xsd:attribute name="name" type="xsd:string" /> |
||||
<xsd:attribute name="type" type="xsd:string" /> |
||||
<xsd:attribute name="mimetype" type="xsd:string" /> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
<xsd:element name="assembly"> |
||||
<xsd:complexType> |
||||
<xsd:attribute name="alias" type="xsd:string" /> |
||||
<xsd:attribute name="name" type="xsd:string" /> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
<xsd:element name="data"> |
||||
<xsd:complexType> |
||||
<xsd:sequence> |
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> |
||||
</xsd:sequence> |
||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> |
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> |
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
<xsd:element name="resheader"> |
||||
<xsd:complexType> |
||||
<xsd:sequence> |
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
||||
</xsd:sequence> |
||||
<xsd:attribute name="name" type="xsd:string" use="required" /> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
</xsd:choice> |
||||
</xsd:complexType> |
||||
</xsd:element> |
||||
</xsd:schema> |
||||
<resheader name="resmimetype"> |
||||
<value>text/microsoft-resx</value> |
||||
</resheader> |
||||
<resheader name="version"> |
||||
<value>2.0</value> |
||||
</resheader> |
||||
<resheader name="reader"> |
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
||||
</resheader> |
||||
<resheader name="writer"> |
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
||||
</resheader> |
||||
</root> |
@ -0,0 +1,73 @@
@@ -0,0 +1,73 @@
|
||||
'------------------------------------------------------------------------------ |
||||
' <auto-generated> |
||||
' This code was generated by a tool. |
||||
' Runtime Version:4.0.30319.1026 |
||||
' |
||||
' Changes to this file may cause incorrect behavior and will be lost if |
||||
' the code is regenerated. |
||||
' </auto-generated> |
||||
'------------------------------------------------------------------------------ |
||||
|
||||
Option Strict On |
||||
Option Explicit On |
||||
|
||||
|
||||
Namespace My |
||||
|
||||
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _ |
||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0"), _ |
||||
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _ |
||||
Partial Friend NotInheritable Class MySettings |
||||
Inherits Global.System.Configuration.ApplicationSettingsBase |
||||
|
||||
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) |
||||
|
||||
#Region "My.Settings Auto-Save Functionality" |
||||
#If _MyType = "WindowsForms" Then |
||||
Private Shared addedHandler As Boolean |
||||
|
||||
Private Shared addedHandlerLockObject As New Object |
||||
|
||||
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _ |
||||
Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) |
||||
If My.Application.SaveMySettingsOnExit Then |
||||
My.Settings.Save() |
||||
End If |
||||
End Sub |
||||
#End If |
||||
#End Region |
||||
|
||||
Public Shared ReadOnly Property [Default]() As MySettings |
||||
Get |
||||
|
||||
#If _MyType = "WindowsForms" Then |
||||
If Not addedHandler Then |
||||
SyncLock addedHandlerLockObject |
||||
If Not addedHandler Then |
||||
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings |
||||
addedHandler = True |
||||
End If |
||||
End SyncLock |
||||
End If |
||||
#End If |
||||
Return defaultInstance |
||||
End Get |
||||
End Property |
||||
End Class |
||||
End Namespace |
||||
|
||||
Namespace My |
||||
|
||||
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _ |
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _ |
||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _ |
||||
Friend Module MySettingsProperty |
||||
|
||||
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _ |
||||
Friend ReadOnly Property Settings() As Global.CDGNet.My.MySettings |
||||
Get |
||||
Return Global.CDGNet.My.MySettings.Default |
||||
End Get |
||||
End Property |
||||
End Module |
||||
End Namespace |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
<?xml version='1.0' encoding='utf-8'?> |
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true"> |
||||
<Profiles> |
||||
<Profile Name="(Default)" /> |
||||
</Profiles> |
||||
<Settings /> |
||||
</SettingsFile> |
Binary file not shown.
Binary file not shown.
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0"?> |
||||
<doc> |
||||
<assembly> |
||||
<name> |
||||
CDGNet |
||||
</name> |
||||
</assembly> |
||||
<members> |
||||
<member name="P:CDGNet.My.Resources.Resources.ResourceManager"> |
||||
<summary> |
||||
Returns the cached ResourceManager instance used by this class. |
||||
</summary> |
||||
</member><member name="P:CDGNet.My.Resources.Resources.Culture"> |
||||
<summary> |
||||
Overrides the current thread's CurrentUICulture property for all |
||||
resource lookups using this strongly typed resource class. |
||||
</summary> |
||||
</member><member name="T:CDGNet.My.Resources.Resources"> |
||||
<summary> |
||||
A strongly-typed resource class, for looking up localized strings, etc. |
||||
</summary> |
||||
</member> |
||||
</members> |
||||
</doc> |
Binary file not shown.
Binary file not shown.
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0"?> |
||||
<doc> |
||||
<assembly> |
||||
<name> |
||||
CDGNet |
||||
</name> |
||||
</assembly> |
||||
<members> |
||||
<member name="P:CDGNet.My.Resources.Resources.ResourceManager"> |
||||
<summary> |
||||
Returns the cached ResourceManager instance used by this class. |
||||
</summary> |
||||
</member><member name="P:CDGNet.My.Resources.Resources.Culture"> |
||||
<summary> |
||||
Overrides the current thread's CurrentUICulture property for all |
||||
resource lookups using this strongly typed resource class. |
||||
</summary> |
||||
</member><member name="T:CDGNet.My.Resources.Resources"> |
||||
<summary> |
||||
A strongly-typed resource class, for looking up localized strings, etc. |
||||
</summary> |
||||
</member> |
||||
</members> |
||||
</doc> |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
C:\Users\Administrator\Downloads\karaokeplayerdotnet\karaokeplayerdotnet\CDGNet\bin\Debug\CDGNet.dll |
||||
C:\Users\Administrator\Downloads\karaokeplayerdotnet\karaokeplayerdotnet\CDGNet\bin\Debug\CDGNet.pdb |
||||
C:\Users\Administrator\Downloads\karaokeplayerdotnet\karaokeplayerdotnet\CDGNet\bin\Debug\CDGNet.xml |
||||
C:\Users\Administrator\Downloads\karaokeplayerdotnet\karaokeplayerdotnet\CDGNet\obj\Debug\ResolveAssemblyReference.cache |
||||
C:\Users\Administrator\Downloads\karaokeplayerdotnet\karaokeplayerdotnet\CDGNet\obj\Debug\CDGNet.Resources.resources |
||||
C:\Users\Administrator\Downloads\karaokeplayerdotnet\karaokeplayerdotnet\CDGNet\obj\Debug\GenerateResource-ResGen.read.1.tlog |
||||
C:\Users\Administrator\Downloads\karaokeplayerdotnet\karaokeplayerdotnet\CDGNet\obj\Debug\GenerateResource-ResGen.write.1.tlog |
||||
C:\Users\Administrator\Downloads\karaokeplayerdotnet\karaokeplayerdotnet\CDGNet\obj\Debug\CDGNet.dll |
||||
C:\Users\Administrator\Downloads\karaokeplayerdotnet\karaokeplayerdotnet\CDGNet\obj\Debug\CDGNet.xml |
||||
C:\Users\Administrator\Downloads\karaokeplayerdotnet\karaokeplayerdotnet\CDGNet\obj\Debug\CDGNet.pdb |
||||
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\karaokeplayerdotnet\CDGNet\bin\Debug\CDGNet.dll |
||||
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\karaokeplayerdotnet\CDGNet\bin\Debug\CDGNet.pdb |
||||
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\karaokeplayerdotnet\CDGNet\bin\Debug\CDGNet.xml |
||||
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\karaokeplayerdotnet\CDGNet\obj\Debug\ResolveAssemblyReference.cache |
||||
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\karaokeplayerdotnet\CDGNet\obj\Debug\CDGNet.Resources.resources |
||||
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\karaokeplayerdotnet\CDGNet\obj\Debug\GenerateResource-ResGen.read.1.tlog |
||||
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\karaokeplayerdotnet\CDGNet\obj\Debug\GenerateResource-ResGen.write.1.tlog |
||||
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\karaokeplayerdotnet\CDGNet\obj\Debug\CDGNet.dll |
||||
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\karaokeplayerdotnet\CDGNet\obj\Debug\CDGNet.xml |
||||
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\karaokeplayerdotnet\CDGNet\obj\Debug\CDGNet.pdb |
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0"?> |
||||
<doc> |
||||
<assembly> |
||||
<name> |
||||
CDGNet |
||||
</name> |
||||
</assembly> |
||||
<members> |
||||
<member name="P:CDGNet.My.Resources.Resources.ResourceManager"> |
||||
<summary> |
||||
Returns the cached ResourceManager instance used by this class. |
||||
</summary> |
||||
</member><member name="P:CDGNet.My.Resources.Resources.Culture"> |
||||
<summary> |
||||
Overrides the current thread's CurrentUICulture property for all |
||||
resource lookups using this strongly typed resource class. |
||||
</summary> |
||||
</member><member name="T:CDGNet.My.Resources.Resources"> |
||||
<summary> |
||||
A strongly-typed resource class, for looking up localized strings, etc. |
||||
</summary> |
||||
</member> |
||||
</members> |
||||
</doc> |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,28 @@
@@ -0,0 +1,28 @@
|
||||
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\karaokeplayerdotnet\CDGNet\bin\Release\CDGNet.dll |
||||
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\karaokeplayerdotnet\CDGNet\bin\Release\CDGNet.pdb |
||||
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\karaokeplayerdotnet\CDGNet\bin\Release\CDGNet.xml |
||||
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\karaokeplayerdotnet\CDGNet\obj\Release\ResolveAssemblyReference.cache |
||||
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\karaokeplayerdotnet\CDGNet\obj\Release\CDGNet.Resources.resources |
||||
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\karaokeplayerdotnet\CDGNet\obj\Release\GenerateResource-ResGen.read.1.tlog |
||||
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\karaokeplayerdotnet\CDGNet\obj\Release\GenerateResource-ResGen.write.1.tlog |
||||
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\karaokeplayerdotnet\CDGNet\obj\Release\CDGNet.dll |
||||
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\karaokeplayerdotnet\CDGNet\obj\Release\CDGNet.xml |
||||
C:\Users\Administrator\Documents\Visual Studio 2010\Projects\karaokeplayerdotnet\CDGNet\obj\Release\CDGNet.pdb |
||||
F:\Network\User Folders\Administrator\My Applications\karaokeplayerdotnet\CDGNet\bin\Release\CDGNet.dll |
||||
F:\Network\User Folders\Administrator\My Applications\karaokeplayerdotnet\CDGNet\bin\Release\CDGNet.pdb |
||||
F:\Network\User Folders\Administrator\My Applications\karaokeplayerdotnet\CDGNet\bin\Release\CDGNet.xml |
||||
F:\Network\User Folders\Administrator\My Applications\karaokeplayerdotnet\CDGNet\obj\Release\CDGNet.Resources.resources |
||||
F:\Network\User Folders\Administrator\My Applications\karaokeplayerdotnet\CDGNet\obj\Release\CDGNet.vbproj.GenerateResource.Cache |
||||
F:\Network\User Folders\Administrator\My Applications\karaokeplayerdotnet\CDGNet\obj\Release\CDGNet.dll |
||||
F:\Network\User Folders\Administrator\My Applications\karaokeplayerdotnet\CDGNet\obj\Release\CDGNet.xml |
||||
F:\Network\User Folders\Administrator\My Applications\karaokeplayerdotnet\CDGNet\obj\Release\CDGNet.pdb |
||||
F:\Network\User Folders\Administrator\My Applications\karaokeplayerdotnet\CDGNet\bin\Release\MetroFramework.dll |
||||
U:\My Applications\karaokeplayerdotnet\CDGNet\bin\Release\CDGNet.dll |
||||
U:\My Applications\karaokeplayerdotnet\CDGNet\bin\Release\CDGNet.pdb |
||||
U:\My Applications\karaokeplayerdotnet\CDGNet\bin\Release\CDGNet.xml |
||||
U:\My Applications\karaokeplayerdotnet\CDGNet\bin\Release\MetroFramework.dll |
||||
U:\My Applications\karaokeplayerdotnet\CDGNet\obj\Release\CDGNet.Resources.resources |
||||
U:\My Applications\karaokeplayerdotnet\CDGNet\obj\Release\CDGNet.vbproj.GenerateResource.Cache |
||||
U:\My Applications\karaokeplayerdotnet\CDGNet\obj\Release\CDGNet.dll |
||||
U:\My Applications\karaokeplayerdotnet\CDGNet\obj\Release\CDGNet.xml |
||||
U:\My Applications\karaokeplayerdotnet\CDGNet\obj\Release\CDGNet.pdb |
Binary file not shown.
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0"?> |
||||
<doc> |
||||
<assembly> |
||||
<name> |
||||
CDGNet |
||||
</name> |
||||
</assembly> |
||||
<members> |
||||
<member name="P:CDGNet.My.Resources.Resources.ResourceManager"> |
||||
<summary> |
||||
Returns the cached ResourceManager instance used by this class. |
||||
</summary> |
||||
</member><member name="P:CDGNet.My.Resources.Resources.Culture"> |
||||
<summary> |
||||
Overrides the current thread's CurrentUICulture property for all |
||||
resource lookups using this strongly typed resource class. |
||||
</summary> |
||||
</member><member name="T:CDGNet.My.Resources.Resources"> |
||||
<summary> |
||||
A strongly-typed resource class, for looking up localized strings, etc. |
||||
</summary> |
||||
</member> |
||||
</members> |
||||
</doc> |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,59 @@
@@ -0,0 +1,59 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ |
||||
Partial Class CDGWindow |
||||
Inherits System.Windows.Forms.Form |
||||
|
||||
'Form overrides dispose to clean up the component list. |
||||
<System.Diagnostics.DebuggerNonUserCode()> _ |
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean) |
||||
Try |
||||
If disposing AndAlso components IsNot Nothing Then |
||||
components.Dispose() |
||||
End If |
||||
Finally |
||||
MyBase.Dispose(disposing) |
||||
End Try |
||||
End Sub |
||||
|
||||
'Required by the Windows Form Designer |
||||
Private components As System.ComponentModel.IContainer |
||||
|
||||
'NOTE: The following procedure is required by the Windows Form Designer |
||||
'It can be modified using the Windows Form Designer. |
||||
'Do not modify it using the code editor. |
||||
<System.Diagnostics.DebuggerStepThrough()> _ |
||||
Private Sub InitializeComponent() |
||||
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(CDGWindow)) |
||||
Me.PictureBox1 = New System.Windows.Forms.PictureBox() |
||||
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() |
||||
Me.SuspendLayout() |
||||
' |
||||
'PictureBox1 |
||||
' |
||||
Me.PictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom |
||||
Me.PictureBox1.Dock = System.Windows.Forms.DockStyle.Fill |
||||
Me.PictureBox1.Location = New System.Drawing.Point(0, 0) |
||||
Me.PictureBox1.Name = "PictureBox1" |
||||
Me.PictureBox1.Size = New System.Drawing.Size(803, 494) |
||||
Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom |
||||
Me.PictureBox1.TabIndex = 0 |
||||
Me.PictureBox1.TabStop = False |
||||
' |
||||
'CDGWindow |
||||
' |
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) |
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font |
||||
Me.ClientSize = New System.Drawing.Size(803, 494) |
||||
Me.Controls.Add(Me.PictureBox1) |
||||
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) |
||||
Me.KeyPreview = True |
||||
Me.MaximizeBox = False |
||||
Me.Name = "CDGWindow" |
||||
Me.ShowInTaskbar = False |
||||
Me.Text = "CDG" |
||||
Me.TopMost = True |
||||
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() |
||||
Me.ResumeLayout(False) |
||||
|
||||
End Sub |
||||
Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox |
||||
End Class |
@ -0,0 +1,143 @@
@@ -0,0 +1,143 @@
|
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<root> |
||||
<!-- |
||||
Microsoft ResX Schema |
||||
|
||||
Version 2.0 |
||||
|
||||
The primary goals of this format is to allow a simple XML format |
||||
that is mostly human readable. The generation and parsing of the |
||||
various data types are done through the TypeConverter classes |
||||
associated with the data types. |
||||
|
||||
Example: |
||||
|
||||
... ado.net/XML headers & schema ... |
||||
<resheader name="resmimetype">text/microsoft-resx</resheader> |
||||
<resheader name="version">2.0</resheader> |
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> |
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> |
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> |
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> |
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> |
||||
<value>[base64 mime encoded serialized .NET Framework object]</value> |
||||
</data> |
||||