Пример #1
0
 public PlayListElems(Artist aid, Album alid, TrackList trid)
 {
     ArtistName = (string)aid.ArtistName;
     AlbumName = (string)alid.AlbumName;
     TrackNum = (string)trid.TrackNum;
     TrackName = (string)trid.TrackName;
 }
Пример #2
0
 public PlayListElems(Artist aid, Album alid, TrackList trid)
 {
     artistName = (string)aid.artistName;
     albumName = (string)alid.albumName;
     trackNum = (string)trid.trackNum;
     trackName = (string)trid.trackName;
 }
Пример #3
0
        public qtPlayer(string[] args)
        {
            InitializeComponent();
            this.ContextMenu = cmPlaylist;
            BassNet.Registration(@"*****@*****.**", "2X22391943422");
            Bass.BASS_Init(-1, 44100, BASSInit.BASS_DEVICE_DEFAULT, IntPtr.Zero, null);
            int bf = Bass.BASS_PluginLoad("bassflac.dll");
            Bass.BASS_SetVolume((float)1);

            // MessageBox.Show(Bass.BASS_PluginGetInfo(bf).formats[0].exts);
            // MessageBox.Show(Bass.SupportedStreamExtensions);

            TrackList tl = new TrackList(); ;
            if (args.Length != 0)
            {
                {
                    tl = new TrackList(args, false);
                    IsAutoPlay = true;
                }
            }
            else
            {
                if (File.Exists("cache.qtPlaylist"))
                {
                    tl = new TrackList("cache.qtPlaylist", false);
                }
                else
                {
                    tl = new TrackList();
                }
            }
            playlist1.TrackList = tl;
            playlist1.TrackList.ReadTags();
            playlist1.TrackSelected += new Playlist.TrackDelegate(playlist1_TrackSelected);
            playlist1.TrackList.FinishedReading += new System.Threading.ThreadStart(TrackList_FinishedReading);
            if (IsAutoPlay)
                PlaySong(tl[0]);
        }
Пример #4
0
        // add artist and album
        private void addButton_Click(object sender, EventArgs e)
        {
            try
               {
                string artistName = artistTBox.Text;

                if (artistName == "")
                {
                   Exception ex = new Exception("Please, insert artist's name!");
                   throw ex;
                }

                string gName = genreBox.Text;
                Genre gID = Genre.GetGenreID(gName);
                Artist findartist = Artist.CheckArtist(artistName);

                Artist artist = new Artist();

                if (findartist == null)
                {
                    artist = new Artist(artistName, gID);
                    artist.Create();
                    artist = Artist.CheckArtist(artistName);
                }
                else
                {
                    artist = Artist.CheckArtist(artistName);
                }
                string y = yearBox.Text;

                YearTable year = YearTable.GetYearID(y);

                if (year == null)
                {
                    year = new YearTable(y);
                    year.Create();
                    year = YearTable.GetYearID(y);
                }
                else
                {
                    year = YearTable.GetYearID(y);
                }

                string l = lableBox.Text;
                Lable lable = Lable.GetLableID(l);

                if (lable == null)
                {
                    lable = new Lable(l);
                    lable.Create();
                    lable = Lable.GetLableID(l);
                }
                else
                {
                    lable = Lable.GetLableID(l);
                }

                string af = formatBox.Text;
                AlbumFormat format = AlbumFormat.GetFormatID(af);

                if (format == null)
                {
                    format = new AlbumFormat(af);
                    format.Create();
                    format = AlbumFormat.GetFormatID(af);
                }
                else
                {
                    format = AlbumFormat.GetFormatID(af);
                }

                string alname = albumTBox.Text;

                Album album = new Album(alname, artist, year, lable, format);
                album.Create();

                album = Album.GetAlbumID(alname);

                string[] tracklist = tracklistTBox.Lines;

                TrackList tl;

                for (int i = 0; i < tracklist.Length; ++i)
                {
                    string tnum = "00";
                    string tname = "";
                    string tempp = "";
                    bool whitespace = false;
                    for (int j = 0; j < tracklist[i].Length; ++j)
                    {
                        if (tracklist[i][j] == ' ' && !whitespace)
                        {
                            whitespace = true;
                            tnum = tempp;
                            tempp = "";
                        }
                        else
                        {
                            tempp += tracklist[i][j];
                        }
                    }
                    tname = tempp;
                    tl = new TrackList(tname, tnum, album);
                    tl.Create();
                }

                MessageBox.Show("Done!^_^", "TheResult");
              }
              catch
              {
             MessageBox.Show("Something bad has happened!", "Whoops!");
              }
        }
Пример #5
0
 public void AddTrackList(TrackList trackList)
 {
     this.trackList = trackList;
 }
Пример #6
0
 private void TheNoiseServer_trackListUpdated(IPEndPoint sender, TrackList e)
 {
     byte[] send;
     ObjectSerialization.Serialize(e, out send);
     clientList[sender].SendDataPacket(ref send, (byte)PacketType.RequestList);
     GeneralEvent.Invoke(this, new GeneralEventArgs(authenticatedConnections[sender].Username,
         sender, ("Was sent a track list with " + e.Tracks.Length + " elements.")));
 }
 private void TrackListLostFocus(object sender, MouseButtonEventArgs e)
 {
     TrackList.UnselectAll();
 }
Пример #8
0
        protected void Parse(Stream s)
        {
            var br = new BinaryReader(s);
            string foo = FOURCC(br.ReadUInt64());
            if (foo != "_pilC3S_")
                throw new Exception("Bad clip header: Expected \"_S3Clip_\"");
            mVersion = br.ReadUInt32();
            mUnknown01 = br.ReadUInt32();
            mFrameDuration = br.ReadSingle();
            mMaxFrameCount = br.ReadUInt16();
            mUnknown02 = br.ReadUInt16();

            uint curveCount = br.ReadUInt32();
            uint indexedFloatCount = br.ReadUInt32();
            uint curveDataOffset = br.ReadUInt32();
            uint frameDataOffset = br.ReadUInt32();
            uint animNameOffset = br.ReadUInt32();
            uint srcNameOffset = br.ReadUInt32();

            if (checking && s.Position != curveDataOffset)
                throw new InvalidDataException("Bad Curve Data Offset");

            var curveDataInfos = new List<CurveDataInfo>();
            for (int i = 0; i < curveCount; i++)
            {
                var p = new CurveDataInfo();
                p.FrameDataOffset = br.ReadUInt32();
                p.TrackKey = br.ReadUInt32();
                p.Offset = br.ReadSingle();
                p.Scale = br.ReadSingle();
                p.FrameCount = br.ReadUInt16();
                p.Flags = new CurveDataFlags(br.ReadByte());
                p.Type = (CurveType)br.ReadByte();
                curveDataInfos.Add(p);
            }

            if (checking && s.Position != animNameOffset)
                throw new InvalidDataException("Bad Name Offset");
            mAnimName = br.ReadZString();
            if (checking && s.Position != srcNameOffset)
                throw new InvalidDataException("Bad SourceName Offset");
            mSrcName = br.ReadZString();

            if (checking && s.Position != frameDataOffset)
                throw new InvalidDataException("Bad Indexed Floats Offset");
            var indexedFloats = new List<float>();
            for (int i = 0; i < indexedFloatCount; i++)
            {
                indexedFloats.Add(br.ReadSingle());
            }

            var trackMap = new Dictionary<uint, List<Curve>>();
            var test = curveDataInfos.Where(x => x.Type != CurveType.Position && x.Type != CurveType.Orientation).ToArray();
            for (int i = 0; i < curveDataInfos.Count; i++)
            {
                    CurveDataInfo curveDataInfo = curveDataInfos[i];
                try
                {

                    if (checking && s.Position != curveDataInfo.FrameDataOffset)
                        throw new InvalidDataException("Bad FrameData offset.");
                    Curve curve;

                    curve = new Curve(0, handler, curveDataInfo.Type, curveDataInfo.Flags.Type, s, curveDataInfo, indexedFloats);

                    if (!trackMap.ContainsKey(curveDataInfo.TrackKey))
                    {
                        trackMap[curveDataInfo.TrackKey] = new List<Curve>();
                    }
                    trackMap[curveDataInfo.TrackKey].Add(curve);
                }
                catch (Exception)
                {
                    Debug.WriteLine("Can't load channel with type: " + curveDataInfo.Type);
                }

            }

            var tracks = new List<Track>();
            foreach (uint k in trackMap.Keys)
            {
                tracks.Add(new Track(0, handler, k, trackMap[k]));
            }
            mTracks = new TrackList(handler, tracks);

            if (checking && s.Position != s.Length)
                throw new InvalidDataException("Unexpected End of Clip.");
        }
Пример #9
0
 private void trackList_TrackRemoved(object sender, TrackList <AudioTrack> .TrackListEventArgs e)
 {
     RemoveTrack(e.Track);
     OnTotalTimeChanged();
 }
Пример #10
0
        // Private methods ////////////////////////////////////////////

        protected override TaskStatus ExecuteStep(int s)
        {
            bool cont = true;

            // Main
            switch (currentStep)
            {
            case OpenerTaskStep.Init:
                objectsList = new List <ObjectInfo> ();
                xmlDocument = new XmlDocument();
                xmlDocument.Load(fileName);
                currentStep = OpenerTaskStep.Header;
                break;

            case OpenerTaskStep.Header:
                //ReadHeader ();
                currentStep = OpenerTaskStep.ProjectInfoRead;
                break;

            case OpenerTaskStep.ProjectInfoRead:
                foreach (XmlNode node in xmlDocument.DocumentElement.ChildNodes)
                {
                    if (node.Name == "projectinfo")
                    {
                        ResolveProjectInfoNode(node);
                    }
                }

                // FIXME: Fail if not found/not resolved
                currentStep = OpenerTaskStep.ObjectListRead;
                break;

            case OpenerTaskStep.ObjectListRead:
                foreach (XmlNode node in xmlDocument.DocumentElement.ChildNodes)
                {
                    if (node.Name == "objectlist")
                    {
                        objectListContainer = (ObjectListContainer)
                                              DataFactory.MakeDataElement(node as XmlElement);
                    }
                }

                if (objectListContainer == null)
                {
                    throw new Exception("ObjectListContainer not found!");
                }

                currentStep = OpenerTaskStep.ObjectListParse;
                break;

            case OpenerTaskStep.ObjectListParse:
                bool flush = EnumerateSomeObjects();
                if (flush)
                {
                    currentStep = OpenerTaskStep.ObjectListUnBoil;
                }
                break;

            case OpenerTaskStep.ObjectListUnBoil:
                bool done = UnBoilSomeObjects();
                if (done)
                {
                    currentStep = OpenerTaskStep.FindRoots;
                }
                break;


            case OpenerTaskStep.FindRoots:
                projectTrackList     = (TrackList)FindRoot("tracklist");
                projectTagList       = (TagList)FindRoot("taglist");
                projectStuffList     = (StuffList)FindRoot("stufflist");
                projectClipList      = (ClipList)FindRoot("cliplist");
                projectMediaItemList = (MediaItemList)FindRoot("mediaitemlist");
                projectPipeline      = (Gdv.Pipeline)FindRoot("pipeline");
                projectCommander     = (Commander)FindRoot("commander");
                projectFormat        = (Gdv.ProjectFormat)FindRoot("projectformat");

                currentStep = OpenerTaskStep.Finished;
                break;

            case OpenerTaskStep.Finished:
                cont = false;
                break;

            default:
                break;
            }

            // Post
            if (cont)
            {
                return(TaskStatus.Running);
            }
            else
            {
                return(TaskStatus.Done);
            }
        }
Пример #11
0
        private void SetEditorControls()
        {
            Debug.WriteLine("SetEditorControls: {0}", TrackList.SelectedCount);
            if (TrackList.SelectedCount > 0)
            {
                if (TrackList.SelectedCount == 1)
                {
                    foreach (CheckBox ch in CheckBoxes)
                    {
                        ch.IsChecked = false;
                        ch.IsEnabled = false;
                    }
                    foreach (AutoCompleteBox tb in TextBoxes)
                    {
                        tb.IsEnabled = true;
                    }
                    TblockLyrics.IsEnabled = true;
                }
                else
                {
                    foreach (CheckBox ch in CheckBoxes)
                    {
                        ch.IsChecked = false;
                        ch.IsEnabled = true;
                    }
                    foreach (AutoCompleteBox tb in TextBoxes)
                    {
                        tb.IsEnabled = false;
                    }
                    TblockLyrics.IsEnabled = false;
                }
                Models.SelectionData data = TrackList.GetSelectionData();

                TbTitle.Text        = data.Title;
                TbTitle.ItemsSource = data.AllTitles;

                TbArtist.Text        = data.Artists;
                TbArtist.ItemsSource = data.AllArtists;

                TbAlbum.Text        = data.Album;
                TbAlbum.ItemsSource = data.AllAlbums;

                TbAlbumArtist.Text        = data.AlbumArtists;
                TbAlbumArtist.ItemsSource = data.AllAlbumArtists;

                TbGenres.Text        = data.Genres;
                TbGenres.ItemsSource = data.AllGenres;

                TbComposers.Text        = data.Composers;
                TbComposers.ItemsSource = data.AllComposers;

                TbConductor.Text        = data.Conductor;
                TbConductor.ItemsSource = data.AllConductors;

                TbCopyright.Text        = data.Copyright;
                TbCopyright.ItemsSource = data.AllCopyrights;

                TbGrouping.Text        = data.Grouping;
                TbGrouping.ItemsSource = data.AllGroupings;

                TblockLyrics.Text = data.Lyrics;
                TbYear.Text       = data.Year.ToString();
                TbDisc.Text       = data.Disc.ToString();
                TbTrack.Text      = data.Track.ToString();
                TbTrackCount.Text = data.TrackCount.ToString();
                TbDiscCount.Text  = data.DiscCount.ToString();
                if (data.Image != null)
                {
                    // Taken from https://stackoverflow.com/questions/10077498/show-drawing-image-in-wpf
                    var          bitmap       = new Bitmap(data.Image);
                    IntPtr       bmpPt        = bitmap.GetHbitmap();
                    BitmapSource bitmapSource =
                        System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
                            bmpPt,
                            IntPtr.Zero,
                            Int32Rect.Empty,
                            BitmapSizeOptions.FromEmptyOptions()
                            );
                    bitmapSource.Freeze();
                    DeleteObject(bmpPt);
                    ImgCover.Source = bitmapSource;
                }
                else
                {
                    ImgCover.Source = null;
                }
            }
            else
            {
                ImgCover.Source = null;
                DisableEditorControls();
            }
        }
Пример #12
0
 private void UpdateFit()
 {
     m_gdiDisplay.AutoRender = false;
     TrackList.BeginUpdate();
     try
     {
         m_TotalP.X = m_TotalP.Y = m_TotalP.Z = 0.0;
         TrackList.Items.Clear();
         int i;
         for (i = 0; i < m_VF.Count; i++)
         {
             SySal.BasicTypes.Vector            s  = new SySal.BasicTypes.Vector();
             SySal.TotalScan.VertexFit.TrackFit tf = m_VF.Track(i);
             s.Z = 1.0 / Math.Sqrt(1.0 + tf.Slope.X * tf.Slope.X + tf.Slope.Y * tf.Slope.Y);
             s.X = tf.Slope.X * s.Z;
             s.Y = tf.Slope.Y * s.Z;
             ListViewItem lvi = new ListViewItem(tf.Id.ToString());
             lvi.Tag = tf.Id;
             lvi.SubItems.Add(tf.Intercept.X.ToString("F1", System.Globalization.CultureInfo.InvariantCulture));
             lvi.SubItems.Add(tf.Intercept.Y.ToString("F1", System.Globalization.CultureInfo.InvariantCulture));
             lvi.SubItems.Add(tf.Intercept.Z.ToString("F1", System.Globalization.CultureInfo.InvariantCulture));
             lvi.SubItems.Add(tf.Slope.X.ToString("F4", System.Globalization.CultureInfo.InvariantCulture));
             lvi.SubItems.Add(tf.Slope.Y.ToString("F4", System.Globalization.CultureInfo.InvariantCulture));
             lvi.SubItems.Add(tf.Weight.ToString("F3", System.Globalization.CultureInfo.InvariantCulture));
             if (tf is SySal.TotalScan.VertexFit.TrackFitWithMomentum)
             {
                 double p = ((SySal.TotalScan.VertexFit.TrackFitWithMomentum)tf).P;
                 lvi.SubItems.Add(p.ToString("F2", System.Globalization.CultureInfo.InvariantCulture));
                 m_TotalP.X += s.X * p;
                 m_TotalP.Y += s.Y * p;
                 m_TotalP.Z += s.Z * p;
             }
             else
             {
                 lvi.SubItems.Add("");
             }
             lvi.SubItems.Add(m_VF.TrackIP(tf).ToString("F1", System.Globalization.CultureInfo.InvariantCulture));
             lvi.SubItems.Add(m_VF.DisconnectedTrackIP(tf.Id).ToString("F1", System.Globalization.CultureInfo.InvariantCulture));
             lvi.SubItems.Add(Math.Min(Math.Abs(m_VF.Z - tf.MaxZ), Math.Abs(m_VF.Z - tf.MinZ)).ToString("F1", System.Globalization.CultureInfo.InvariantCulture));
             TrackList.Items.Add(lvi);
         }
         textX.Text = m_VF.X.ToString("F1", System.Globalization.CultureInfo.InvariantCulture);
         textY.Text = m_VF.Y.ToString("F1", System.Globalization.CultureInfo.InvariantCulture);
         textZ.Text = m_VF.Z.ToString("F1", System.Globalization.CultureInfo.InvariantCulture);
     }
     catch (Exception)
     {
         textX.Text = "";
         textY.Text = "";
         textZ.Text = "";
         TrackList.Items.Clear();
         int i;
         for (i = 0; i < m_VF.Count; i++)
         {
             SySal.TotalScan.VertexFit.TrackFit tf = m_VF.Track(i);
             ListViewItem lvi = new ListViewItem(tf.Id.ToString());
             lvi.Tag = tf.Id;
             lvi.SubItems.Add(tf.Intercept.X.ToString("F1", System.Globalization.CultureInfo.InvariantCulture));
             lvi.SubItems.Add(tf.Intercept.Y.ToString("F1", System.Globalization.CultureInfo.InvariantCulture));
             lvi.SubItems.Add(tf.Intercept.Z.ToString("F1", System.Globalization.CultureInfo.InvariantCulture));
             lvi.SubItems.Add(tf.Slope.X.ToString("F4", System.Globalization.CultureInfo.InvariantCulture));
             lvi.SubItems.Add(tf.Slope.Y.ToString("F4", System.Globalization.CultureInfo.InvariantCulture));
             lvi.SubItems.Add(tf.Weight.ToString("F3", System.Globalization.CultureInfo.InvariantCulture));
             if (tf is SySal.TotalScan.VertexFit.TrackFitWithMomentum)
             {
                 lvi.SubItems.Add(((SySal.TotalScan.VertexFit.TrackFitWithMomentum)tf).P.ToString("F2", System.Globalization.CultureInfo.InvariantCulture));
             }
             else
             {
                 lvi.SubItems.Add("");
             }
             lvi.SubItems.Add("");
             lvi.SubItems.Add("");
             lvi.SubItems.Add("");
             TrackList.Items.Add(lvi);
         }
     }
     txtPx.Text = m_TotalP.X.ToString("F2", System.Globalization.CultureInfo.InvariantCulture);
     txtPy.Text = m_TotalP.Y.ToString("F2", System.Globalization.CultureInfo.InvariantCulture);
     txtPz.Text = m_TotalP.Z.ToString("F2", System.Globalization.CultureInfo.InvariantCulture);
     txtP.Text  = Math.Sqrt(m_TotalP.X * m_TotalP.X + m_TotalP.Y * m_TotalP.Y + m_TotalP.Z * m_TotalP.Z).ToString("F2", System.Globalization.CultureInfo.InvariantCulture);
     UpdatePT();
     TrackList.EndUpdate();
     if (m_gdiDisplay.RemoveOwned(m_VF) > 0)
     {
         cmdAddToPlot_Click(this, null);
     }
     m_gdiDisplay.AutoRender = true;
     m_gdiDisplay.Render();
 }
Пример #13
0
 public object GetTrackNameByCode(ushort trackcode)
 {
     return(TrackList.Find(c => c.IsInTrack(trackcode))?.name ?? "");
 }
Пример #14
0
        private void serverConnection_AudioListReceived(object sender, TrackList e)
        {
            if (musicFilesListBox.InvokeRequired)
            {
                tracks = e;

                Invoke(new MethodInvoker(delegate // Invoke a generic delegate using MethodInvoker
                {
                    musicFilesListBox.Items.Clear();
                    for (int i = 0; i < e.Tracks.Length; i++)
                    {
                        musicFilesListBox.Items.Add(e.Tracks[i].ToString());
                    }
                    trackCountLabel.Text = "Tracks: " + musicFilesListBox.Items.Count;
                }));
                return;
            }
        }
Пример #15
0
 protected TrackListViewModel()
 {
     Tracks = new TrackList();
 }
Пример #16
0
 public Clip(int apiVersion, EventHandler handler)
     : base(apiVersion, handler)
 {
     mTracks = new TrackList(handler);
 }
Пример #17
0
        public void AddButtClick()
        {
            try
            {
                if (_addMusicControl.ArtistAdd == "")
                {
                    Exception ex = new Exception("Please, insert artist's name!");
                    throw ex;
                }

                Genre gId = Genre.GetGenreID(_addMusicControl.GenreAdd);
                Artist findartist = Artist.CheckArtist(_addMusicControl.ArtistAdd);
                Artist artist;

                if (findartist == null)
                {
                    artist = new Artist(_addMusicControl.ArtistAdd, gId);
                    artist.Create();
                    artist = Artist.CheckArtist(_addMusicControl.ArtistAdd);
                }
                else
                {
                    artist = Artist.CheckArtist(_addMusicControl.ArtistAdd);
                }

                YearTable year = YearTable.GetYearID(_addMusicControl.YearAdd);

                if (year == null)
                {
                    year = new YearTable(_addMusicControl.YearAdd);
                    year.Create();
                    year = YearTable.GetYearID(_addMusicControl.YearAdd);
                }
                else
                {
                    year = YearTable.GetYearID(_addMusicControl.YearAdd);
                }

                Lable lable = Lable.GetLableId(_addMusicControl.LableAdd);

                if (lable == null)
                {
                    lable = new Lable(_addMusicControl.LableAdd);
                    lable.Create();
                    lable = Lable.GetLableId(_addMusicControl.LableAdd);
                }
                else
                {
                    lable = Lable.GetLableId(_addMusicControl.LableAdd);
                }

                AlbumFormat format = AlbumFormat.GetFormatId(_addMusicControl.FormatAdd);

                if (format == null)
                {
                    format = new AlbumFormat(_addMusicControl.FormatAdd);
                    format.Create();
                    format = AlbumFormat.GetFormatId(_addMusicControl.FormatAdd);
                }
                else
                {
                    format = AlbumFormat.GetFormatId(_addMusicControl.FormatAdd);
                }

                Album album = new Album(_addMusicControl.AlbumAdd, artist, year, lable, format);
                album.Create();
                album = Album.GetAlbumId(_addMusicControl.AlbumAdd);
                TrackList tl;

                for (int i = 0; i < _addMusicControl.TrackListAdd.Length; ++i)
                {
                    string tnum = "00";
                    string tname = "";
                    string tempp = "";
                    bool whitespace = false;
                    for (int j = 0; j < _addMusicControl.TrackListAdd[i].Length; ++j)
                    {
                        if (_addMusicControl.TrackListAdd[i][j] == ' ' && !whitespace)
                        {
                            whitespace = true;
                            tnum = tempp;
                            tempp = "";
                        }
                        else
                        {
                            tempp += _addMusicControl.TrackListAdd[i][j];
                        }
                    }
                    tname = tempp;
                    tl = new TrackList(tname, tnum, album);
                    tl.Create();
                }
                _addMusicControl.ShowSuccessMessage();
            }
            catch
            {
                _addMusicControl.ShowErrorMessage();
            }
        }
Пример #18
0
                // Private methods ////////////////////////////////////////////

                protected override TaskStatus ExecuteStep (int s)
                {
                        bool cont = true;

                        // Main
                        switch (currentStep) {

                                case OpenerTaskStep.Init:
                                        objectsList = new List <ObjectInfo> ();
                                        xmlDocument = new XmlDocument ();
                                        xmlDocument.Load (fileName);
                                        currentStep = OpenerTaskStep.Header;
                                        break;

                                case OpenerTaskStep.Header:
                                        //ReadHeader ();
                                        currentStep = OpenerTaskStep.ProjectInfoRead;
                                        break;

                                case OpenerTaskStep.ProjectInfoRead:
                                        foreach (XmlNode node in xmlDocument.DocumentElement.ChildNodes)
                                                if (node.Name == "projectinfo")
                                                        ResolveProjectInfoNode (node);

                                        // FIXME: Fail if not found/not resolved
                                        currentStep = OpenerTaskStep.ObjectListRead;
                                        break;

                                case OpenerTaskStep.ObjectListRead:
                                        foreach (XmlNode node in xmlDocument.DocumentElement.ChildNodes)
                                                if (node.Name == "objectlist")
                                                        objectListContainer = (ObjectListContainer)
                                                                DataFactory.MakeDataElement  (node as XmlElement);

                                        if (objectListContainer == null)
                                                throw new Exception ("ObjectListContainer not found!");

                                        currentStep = OpenerTaskStep.ObjectListParse;
                                        break;

                                case OpenerTaskStep.ObjectListParse:
                                        bool flush = EnumerateSomeObjects ();
                                        if (flush)
                                                currentStep = OpenerTaskStep.ObjectListUnBoil;
                                        break;

                                case OpenerTaskStep.ObjectListUnBoil:
                                        bool done = UnBoilSomeObjects ();
                                        if (done)
                                                currentStep = OpenerTaskStep.FindRoots;
                                        break;


                                case OpenerTaskStep.FindRoots:
                                        projectTrackList = (TrackList) FindRoot ("tracklist");
                                        projectTagList = (TagList) FindRoot ("taglist");
                                        projectStuffList = (StuffList) FindRoot ("stufflist");
                                        projectClipList = (ClipList) FindRoot ("cliplist");
                                        projectMediaItemList = (MediaItemList) FindRoot ("mediaitemlist");
                                        projectPipeline = (Gdv.Pipeline) FindRoot ("pipeline");
                                        projectCommander = (Commander) FindRoot ("commander");
                                        projectFormat = (Gdv.ProjectFormat) FindRoot ("projectformat");

                                        currentStep = OpenerTaskStep.Finished;
                                        break;

                                case OpenerTaskStep.Finished:
                                        cont = false;
                                        break;

                                default:
                                        break;
                        }

                        // Post
                        if (cont)
                                return TaskStatus.Running;
                        else
                                return TaskStatus.Done;
                }
Пример #19
0
 public void RemoveTrackList()
 {
     trackList = null;
 }