OSDN Git Service

・ 「DTXCreatorプロジェクト」と「実行時フォルダ(DTXCreator)」を trunk/ に追加。
[dtxmania/dtxmania.git] / DTXCreatorプロジェクト / コード / 02.WAV_BMP_AVI / CWAVキャッシュ.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Text;\r
4 using System.Windows.Forms;\r
5 \r
6 namespace DTXCreator.WAV_BMP_AVI\r
7 {\r
8         internal class CWAVキャッシュ\r
9         {\r
10                 public Dictionary<int, CWAV> dicWAVディクショナリ = new Dictionary<int, CWAV>();\r
11                 public int n現在のキャッシュアイテム数\r
12                 {\r
13                         get\r
14                         {\r
15                                 if( this.dicWAVディクショナリ == null )\r
16                                 {\r
17                                         return 0;\r
18                                 }\r
19                                 return this.dicWAVディクショナリ.Count;\r
20                         }\r
21                 }\r
22 \r
23                 public CWAV tWAVをキャッシュから検索して返す( int nWAV番号1to1295 )\r
24                 {\r
25                         CWAV cwav;\r
26                         if( ( nWAV番号1to1295 < 1 ) || ( nWAV番号1to1295 > 0x50f ) )\r
27                         {\r
28                                 throw new Exception( "WAV番号が範囲を超えています。-> [" + nWAV番号1to1295 + "]" );\r
29                         }\r
30                         if( this.dicWAVディクショナリ.TryGetValue( nWAV番号1to1295, out cwav ) )\r
31                         {\r
32                                 return cwav;\r
33                         }\r
34                         return null;\r
35                 }\r
36                 public CWAV tWAVをキャッシュから検索して返す・なければ新規生成する( int nWAV番号1to1295 )\r
37                 {\r
38                         if( ( nWAV番号1to1295 < 1 ) || ( nWAV番号1to1295 > 0x50f ) )\r
39                         {\r
40                                 throw new Exception( "WAV番号が範囲を超えています。-> [" + nWAV番号1to1295 + "]" );\r
41                         }\r
42                         CWAV cwav = null;\r
43                         if( !this.dicWAVディクショナリ.TryGetValue( nWAV番号1to1295, out cwav ) )\r
44                         {\r
45                                 cwav = new CWAV();\r
46                                 cwav.strラベル名 = "";\r
47                                 cwav.nWAV番号1to1295 = nWAV番号1to1295;\r
48                                 cwav.strファイル名 = "";\r
49                                 cwav.n音量0to100 = 100;\r
50                                 cwav.n位置_100to100 = 0;\r
51                                 cwav.bBGMとして使用 = false;\r
52                                 this.tキャッシュに追加する( cwav );\r
53                         }\r
54                         return cwav;\r
55                 }\r
56                 public void tWAVをキャッシュから削除する( int nWAV番号1to1295 )\r
57                 {\r
58                         if( ( nWAV番号1to1295 < 1 ) || ( nWAV番号1to1295 > 0x50f ) )\r
59                         {\r
60                                 throw new Exception( "WAV番号が範囲を超えています。-> [" + nWAV番号1to1295 + "]" );\r
61                         }\r
62                         CWAV cwav = null;\r
63                         if( this.dicWAVディクショナリ.TryGetValue( nWAV番号1to1295, out cwav ) )\r
64                         {\r
65                                 this.dicWAVディクショナリ.Remove( nWAV番号1to1295 );\r
66                         }\r
67                 }\r
68                 public void tキャッシュに追加する( CWAV 追加するセル )\r
69                 {\r
70                         CWAV cwav;\r
71                         if( this.dicWAVディクショナリ.TryGetValue( 追加するセル.nWAV番号1to1295, out cwav ) )\r
72                         {\r
73                                 this.dicWAVディクショナリ.Remove( 追加するセル.nWAV番号1to1295 );\r
74                         }\r
75                         this.dicWAVディクショナリ.Add( 追加するセル.nWAV番号1to1295, 追加するセル );\r
76                 }\r
77                 public void tキャッシュに追加する( ListViewItem 追加するLVI )\r
78                 {\r
79                         CWAV cwav = new CWAV();\r
80                         cwav.tコピーfrom( 追加するLVI );\r
81                         this.tキャッシュに追加する( cwav );\r
82                 }\r
83                 public void t空にする()\r
84                 {\r
85                         this.dicWAVディクショナリ.Clear();\r
86                 }\r
87         }\r
88 }\r