--- /dev/null
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Windows.Forms;
+
+namespace DTXCreator.WAV_BMP_AVI
+{
+ internal class CWAVキャッシュ
+ {
+ public Dictionary<int, CWAV> dicWAVディクショナリ = new Dictionary<int, CWAV>();
+ public int n現在のキャッシュアイテム数
+ {
+ get
+ {
+ if( this.dicWAVディクショナリ == null )
+ {
+ return 0;
+ }
+ return this.dicWAVディクショナリ.Count;
+ }
+ }
+
+ public CWAV tWAVをキャッシュから検索して返す( int nWAV番号1to1295 )
+ {
+ CWAV cwav;
+ if( ( nWAV番号1to1295 < 1 ) || ( nWAV番号1to1295 > 36 * 36 - 1 ) )
+ {
+ throw new Exception( "WAV番号が範囲を超えています。-> [" + nWAV番号1to1295 + "]" );
+ }
+ if( this.dicWAVディクショナリ.TryGetValue( nWAV番号1to1295, out cwav ) )
+ {
+ return cwav;
+ }
+ return null;
+ }
+ public CWAV tWAVをキャッシュから検索して返す_なければ新規生成する( int nWAV番号1to1295 )
+ {
+ if( ( nWAV番号1to1295 < 1 ) || ( nWAV番号1to1295 > 36 * 36 - 1 ) )
+ {
+ throw new Exception( "WAV番号が範囲を超えています。-> [" + nWAV番号1to1295 + "]" );
+ }
+ CWAV cwav = null;
+ if( !this.dicWAVディクショナリ.TryGetValue( nWAV番号1to1295, out cwav ) )
+ {
+ cwav = new CWAV();
+ cwav.strラベル名 = "";
+ cwav.nWAV番号1to1295 = nWAV番号1to1295;
+ cwav.strファイル名 = "";
+ cwav.n音量0to100 = 100;
+ cwav.n位置_100to100 = 0;
+ cwav.bBGMとして使用 = false;
+ this.tキャッシュに追加する( cwav );
+ }
+ return cwav;
+ }
+ public void tWAVをキャッシュから削除する( int nWAV番号1to1295 )
+ {
+ if( ( nWAV番号1to1295 < 1 ) || ( nWAV番号1to1295 > 36 * 36 - 1 ) )
+ {
+ throw new Exception( "WAV番号が範囲を超えています。-> [" + nWAV番号1to1295 + "]" );
+ }
+ CWAV cwav = null;
+ if( this.dicWAVディクショナリ.TryGetValue( nWAV番号1to1295, out cwav ) )
+ {
+ this.dicWAVディクショナリ.Remove( nWAV番号1to1295 );
+ }
+ }
+ public void tキャッシュに追加する( CWAV 追加するセル )
+ {
+ CWAV cwav;
+ if( this.dicWAVディクショナリ.TryGetValue( 追加するセル.nWAV番号1to1295, out cwav ) )
+ {
+ this.dicWAVディクショナリ.Remove( 追加するセル.nWAV番号1to1295 );
+ }
+ this.dicWAVディクショナリ.Add( 追加するセル.nWAV番号1to1295, 追加するセル );
+ }
+ public void tキャッシュに追加する( ListViewItem 追加するLVI )
+ {
+ CWAV cwav = new CWAV();
+ cwav.tコピーfrom( 追加するLVI );
+ this.tキャッシュに追加する( cwav );
+ }
+ public void t空にする()
+ {
+ this.dicWAVディクショナリ.Clear();
+ }
+ }
+}