コード例 #1
0
ファイル: SongDataCache.cs プロジェクト: zurgeg/riivolution
        public static void Save(FormatData data, SongData song)
        {
            if (!FormatData.LocalSongCache || (data.PlatformData != null && data.PlatformData.Platform == PlatformLocalStorage.Instance))
            {
                CacheMutex.WaitOne();
                try {
                    Stream stream = data.AddStream("songdata");
                    song.Save(stream);
                    data.CloseStream(stream);
                } catch (Exception ex) {
                    CacheMutex.ReleaseMutex();
                    throw ex;
                }
                CacheMutex.ReleaseMutex();
            }
            SongData songdata = null;

            if (Cache.ContainsKey(data))
            {
                songdata = Cache[data];
            }
            if (FormatData.LocalSongCache && songdata != song)
            {
                songdata = song;
                songdata.PropertyChanged += new Action <SongData>(data.Song_PropertyChanged);
                Cache[data] = songdata;
            }
        }