client/src/Iri.Modernisation.Data/Models/VideoSequence.cs
author totetm <>
Wed, 27 Jan 2010 10:37:39 +0100
changeset 36 b6df6fce6e5d
parent 34 4d9ebc6fbbe8
permissions -rw-r--r--
Sync init XML download. ProductionVideo from URI source

using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Xml.Linq;
using System.Collections.Generic;
namespace Iri.Modernisation.Data.Models
{
    /// <summary>
    /// Classe représentant les segments Vidéo que l'utilisateur enregistre via la web cam et modifie (trimming)
    /// via l'application
    /// </summary>
    public class VideoSequence : SegmentElement
    {

        public VideoSequence():
            base()
        {
        }

        public VideoSequence(VideoSequence oldVs)
            : base(oldVs)
        {
            Path = oldVs.Path;
            RunTime = oldVs.RunTime;
            BeginTrim = oldVs.BeginTrim;
            EndTrim = oldVs.EndTrim;
            
        }

        /// <summary>
        /// Chemin d'accès à la vidéo
        /// </summary>
        public String Path { get; set; }

        /// <summary>
        /// Temps de la video (Absolue - sans recadrage)
        /// </summary>
        public TimeSpan RunTime { get; set; }

        /// <summary>
        /// Recadrage à gauche (Débuter la vidéo plus tard)
        /// </summary>
        public TimeSpan BeginTrim { get; set; }

        /// <summary>
        /// Recadrage à droite (Finir la vidéo plus tôt
        /// </summary>
        public TimeSpan EndTrim { get; set; }

        /// <summary>
        /// Temps de la vidéo (Effectif - avec les recadrage)
        /// </summary>
        public new TimeSpan Duration
        {
            get
            {
                
                return RunTime - (BeginTrim + EndTrim);
            }

        }

        public new TimeSpan TimerOut
        {
            get
            {
                return TimerIn + Duration;
            }
        }

        static public List<VideoSequence> GetProductionVideo(XDocument xdoc)
        {
            List<VideoSequence> returnList = new List<VideoSequence>();
            foreach (XElement XVideo in xdoc.Root.Elements()) 
            {
              
               returnList.Add(
                   new VideoSequence()
                    {
                        Path =   XVideo.Attribute("mediafile").Value,
                        RunTime = TimeSpan.FromMilliseconds(double.Parse(XVideo.Attribute("dur").Value)),
                        BeginTrim = new TimeSpan(0, 0, 0),
                        EndTrim = new TimeSpan(0, 0, 0),
                    }
                );
            }
            return returnList;
        }


    }
}