2 using System.Collections.Generic;
\r
4 using System.Windows.Forms;
\r
6 namespace DTXCreator.WAV_BMP_AVI
\r
8 internal class CWAVキャッシュ
\r
10 public Dictionary<int, CWAV> dicWAVディクショナリ = new Dictionary<int, CWAV>();
\r
11 public int n現在のキャッシュアイテム数
\r
15 if( this.dicWAVディクショナリ == null )
\r
19 return this.dicWAVディクショナリ.Count;
\r
23 public CWAV tWAVをキャッシュから検索して返す( int nWAV番号1to1295 )
\r
26 if( ( nWAV番号1to1295 < 1 ) || ( nWAV番号1to1295 > 0x50f ) )
\r
28 throw new Exception( "WAV番号が範囲を超えています。-> [" + nWAV番号1to1295 + "]" );
\r
30 if( this.dicWAVディクショナリ.TryGetValue( nWAV番号1to1295, out cwav ) )
\r
36 public CWAV tWAVをキャッシュから検索して返す・なければ新規生成する( int nWAV番号1to1295 )
\r
38 if( ( nWAV番号1to1295 < 1 ) || ( nWAV番号1to1295 > 0x50f ) )
\r
40 throw new Exception( "WAV番号が範囲を超えています。-> [" + nWAV番号1to1295 + "]" );
\r
43 if( !this.dicWAVディクショナリ.TryGetValue( nWAV番号1to1295, out cwav ) )
\r
47 cwav.nWAV番号1to1295 = nWAV番号1to1295;
\r
49 cwav.n音量0to100 = 100;
\r
50 cwav.n位置_100to100 = 0;
\r
51 cwav.bBGMとして使用 = false;
\r
52 this.tキャッシュに追加する( cwav );
\r
56 public void tWAVをキャッシュから削除する( int nWAV番号1to1295 )
\r
58 if( ( nWAV番号1to1295 < 1 ) || ( nWAV番号1to1295 > 0x50f ) )
\r
60 throw new Exception( "WAV番号が範囲を超えています。-> [" + nWAV番号1to1295 + "]" );
\r
63 if( this.dicWAVディクショナリ.TryGetValue( nWAV番号1to1295, out cwav ) )
\r
65 this.dicWAVディクショナリ.Remove( nWAV番号1to1295 );
\r
68 public void tキャッシュに追加する( CWAV 追加するセル )
\r
71 if( this.dicWAVディクショナリ.TryGetValue( 追加するセル.nWAV番号1to1295, out cwav ) )
\r
73 this.dicWAVディクショナリ.Remove( 追加するセル.nWAV番号1to1295 );
\r
75 this.dicWAVディクショナリ.Add( 追加するセル.nWAV番号1to1295, 追加するセル );
\r
77 public void tキャッシュに追加する( ListViewItem 追加するLVI )
\r
79 CWAV cwav = new CWAV();
\r
80 cwav.tコピーfrom( 追加するLVI );
\r
81 this.tキャッシュに追加する( cwav );
\r
85 this.dicWAVディクショナリ.Clear();
\r