OSDN Git Service

DTXManiaソリューション、DTXManiaプロジェクト、DTXCreatorプロジェクト、FDKプロジェクトについて英語化。
[dtxmania/dtxmania.git] / DTXCreator / コード / 02.WAV_BMP_AVI / CBMPキャッシュ.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4 using System.Windows.Forms;
5
6 namespace DTXCreator.WAV_BMP_AVI
7 {
8         internal class CBMPキャッシュ
9         {
10                 public Dictionary<int, CBMP> dicBMPディクショナリ = new Dictionary<int, CBMP>();
11                 public int n現在のキャッシュアイテム数
12                 {
13                         get
14                         {
15                                 if( this.dicBMPディクショナリ == null )
16                                 {
17                                         return 0;
18                                 }
19                                 return this.dicBMPディクショナリ.Count;
20                         }
21                 }
22
23                 public CBMP tBMPをキャッシュから検索して返す( int nBMP番号1to1295 )
24                 {
25                         CBMP cbmp;
26                         if( ( nBMP番号1to1295 < 1 ) || ( nBMP番号1to1295 > 36 * 36 - 1 ) )
27                         {
28                                 throw new Exception( "BMP番号が範囲を超えています。-> [" + nBMP番号1to1295 + "]" );
29                         }
30                         if( this.dicBMPディクショナリ.TryGetValue( nBMP番号1to1295, out cbmp ) )
31                         {
32                                 return cbmp;
33                         }
34                         return null;
35                 }
36                 public CBMP tBMPをキャッシュから検索して返す_なければ新規生成する( int nBMP番号1to1295 )
37                 {
38                         if( ( nBMP番号1to1295 < 1 ) || ( nBMP番号1to1295 > 36 * 36 - 1 ) )
39                         {
40                                 throw new Exception( "BMP番号が範囲を超えています。-> [" + nBMP番号1to1295 + "]" );
41                         }
42                         CBMP cbmp = null;
43                         if( !this.dicBMPディクショナリ.TryGetValue( nBMP番号1to1295, out cbmp ) )
44                         {
45                                 cbmp = new CBMP();
46                                 cbmp.nBMP番号1to1295 = nBMP番号1to1295;
47                                 this.tキャッシュに追加する( cbmp );
48                         }
49                         return cbmp;
50                 }
51                 public void tBMPをキャッシュから削除する( int nBMP番号1to1295 )
52                 {
53                         if( ( nBMP番号1to1295 < 1 ) || ( nBMP番号1to1295 > 36 * 36 - 1 ) )
54                         {
55                                 throw new Exception( "BMP番号が範囲を超えています。-> [" + nBMP番号1to1295 + "]" );
56                         }
57                         CBMP cbmp = null;
58                         if( this.dicBMPディクショナリ.TryGetValue( nBMP番号1to1295, out cbmp ) )
59                         {
60                                 this.dicBMPディクショナリ.Remove( nBMP番号1to1295 );
61                         }
62                 }
63                 public void tキャッシュに追加する( CBMP bc追加するBMP )
64                 {
65                         CBMP cbmp;
66                         if( this.dicBMPディクショナリ.TryGetValue( bc追加するBMP.nBMP番号1to1295, out cbmp ) )
67                         {
68                                 this.dicBMPディクショナリ.Remove( bc追加するBMP.nBMP番号1to1295 );
69                         }
70                         this.dicBMPディクショナリ.Add( bc追加するBMP.nBMP番号1to1295, bc追加するBMP );
71                 }
72                 public void tキャッシュに追加する( ListViewItem lvi )
73                 {
74                         CBMP cbmp = new CBMP();
75                         cbmp.tコピーfrom( lvi );
76                         this.tキャッシュに追加する( cbmp );
77                 }
78                 public void t空にする()
79                 {
80                         this.dicBMPディクショナリ.Clear();
81                 }
82         }
83 }