src/FingersDance.Control.ListVideo/ListVideo.cs
author PAMPHILE Jonathan <pamphile@efrei.fr>
Thu, 15 Oct 2009 02:29:22 +0200
changeset 152 46577fd0a294
parent 123 8af72b302e0a
permissions -rw-r--r--
PlayerPause en resize
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
123
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
     1
using System;
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
     2
using System.IO;
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
     3
using System.Collections.Generic;
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
     4
using System.Linq;
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
     5
using System.Text;
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
     6
using System.Xml.Serialization;
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
     7
using System.Reflection;
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
     8
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
     9
namespace FingersDance.Control.ListVideo
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    10
{
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    11
    public class ListVideo
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    12
    {
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    13
        static Dictionary<string, ListVideoItem> _Videos;
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    14
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    15
        public ListVideo()
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    16
        { }
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    17
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    18
        public Dictionary<string, ListVideoItem> GetVideos()
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    19
        {
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    20
            if (_Videos == null)
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    21
            {
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    22
                _Videos = new Dictionary<string, ListVideoItem>();
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    23
                LoadList();
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    24
            }
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    25
            return _Videos;
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    26
        }
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    27
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    28
        void LoadList()
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    29
        {
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    30
            _Videos.Clear();
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    31
            StreamReader reader = null;
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    32
            FileInfo assemblyPath = new FileInfo(Assembly.GetExecutingAssembly().Location);
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    33
            DirectoryInfo info = assemblyPath.Directory;
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    34
            try
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    35
            {
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    36
                reader = new StreamReader(info.FullName.ToString() + "\\Resources\\videos.xml");
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    37
                XmlSerializer serializer = new XmlSerializer(typeof(List<ListVideoItem>));
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    38
                List<ListVideoItem> temp = (List<ListVideoItem>)serializer.Deserialize(reader);
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    39
                foreach (ListVideoItem elt in temp)
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    40
                    if (!elt.Preview.Equals("") && !_Videos.ContainsKey(elt.Path))
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    41
                        _Videos.Add(elt.Path, elt);
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    42
                reader.Close();
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    43
            }
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    44
            catch (Exception e)
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    45
            {
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    46
                if (reader != null)
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    47
                    reader.Close();
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    48
            }
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    49
        }
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    50
    }
8af72b302e0a Singletton ListVideos
PAMPHILE Jonathan <pamphile@efrei.fr>
parents:
diff changeset
    51
}