[vlmc-devel] [PATCH 8/8] Remove TrackHandler

Yikai Lu luyikei.qmltu at gmail.com
Tue May 3 07:24:47 CEST 2016


---
 src/Workflow/TrackHandler.cpp | 249 ------------------------------------------
 src/Workflow/TrackHandler.h   | 114 -------------------
 2 files changed, 363 deletions(-)
 delete mode 100644 src/Workflow/TrackHandler.cpp
 delete mode 100644 src/Workflow/TrackHandler.h

diff --git a/src/Workflow/TrackHandler.cpp b/src/Workflow/TrackHandler.cpp
deleted file mode 100644
index 819d984..0000000
--- a/src/Workflow/TrackHandler.cpp
+++ /dev/null
@@ -1,249 +0,0 @@
-/*****************************************************************************
- * TrackHandler.cpp : Handle multiple track of a kind (audio or video)
- *****************************************************************************
- * Copyright (C) 2008-2016 VideoLAN
- *
- * Authors: Hugo Beauzée-Luyssen <hugo at beauzee.fr>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#include "TrackHandler.h"
-#include "TrackWorkflow.h"
-#include "Workflow/Types.h"
-
-#include <QVariant>
-
-TrackHandler::TrackHandler( unsigned int nbTracks, Workflow::TrackType trackType ) :
-        m_trackCount( nbTracks ),
-        m_trackType( trackType ),
-        m_length( 0 )
-{
-    m_tracks = new Toggleable<TrackWorkflow*>[nbTracks];
-    for ( unsigned int i = 0; i < nbTracks; ++i )
-    {
-        m_tracks[i].setPtr( new TrackWorkflow( trackType, i ) );
-        connect( m_tracks[i], SIGNAL( lengthChanged( qint64 ) ),
-                 this, SLOT( lengthUpdated(qint64) ) );
-    }
-}
-
-TrackHandler::~TrackHandler()
-{
-    for (unsigned int i = 0; i < m_trackCount; ++i)
-        delete m_tracks[i];
-    delete[] m_tracks;
-}
-
-void
-TrackHandler::startRender( quint32 width, quint32 height )
-{
-    m_endReached = false;
-    if ( m_length == 0 )
-        m_endReached = true;
-    else
-    {
-        for ( unsigned int i = 0; i < m_trackCount; ++i )
-        {
-            m_tracks[i]->initRender( width, height );
-        }
-    }
-}
-
-qint64
-TrackHandler::getLength() const
-{
-    return m_length;
-}
-
-Workflow::OutputBuffer*
-TrackHandler::getOutput( qint64 currentFrame, qint64 subFrame, bool paused )
-{
-    bool        validTrack = false;
-
-    for ( int i = m_trackCount - 1; i >= 0; --i )
-    {
-        if ( m_tracks[i].activated() == false || m_tracks[i]->hasNoMoreFrameToRender( currentFrame ) )
-            continue ;
-        validTrack = true;
-        Workflow::OutputBuffer  *ret = m_tracks[i]->getOutput( currentFrame, subFrame, paused );
-        if ( ret == nullptr )
-            continue ;
-        else
-            return ret;
-    }
-    if ( validTrack == false )
-        allTracksEnded();
-    return nullptr;
-}
-
-qint64
-TrackHandler::getClipPosition( const QUuid &uuid, unsigned int trackId ) const
-{
-    Q_ASSERT( trackId < m_trackCount );
-
-    return m_tracks[trackId]->getClipPosition( uuid );
-}
-
-void
-TrackHandler::stop()
-{
-    for (unsigned int i = 0; i < m_trackCount; ++i)
-        m_tracks[i]->stop();
-}
-
-void
-TrackHandler::muteTrack( unsigned int trackId )
-{
-    m_tracks[trackId].deactivate();
-}
-
-void
-TrackHandler::unmuteTrack( unsigned int trackId )
-{
-    m_tracks[trackId].activate();
-}
-
-ClipHelper*
-TrackHandler::getClipHelper( const QUuid& uuid, unsigned int trackId )
-{
-    Q_ASSERT( trackId < m_trackCount );
-
-    return m_tracks[trackId]->getClipHelper( uuid );
-}
-
-void
-TrackHandler::clear()
-{
-    for ( unsigned int i = 0; i < m_trackCount; ++i )
-    {
-        m_tracks[i]->clear();
-    }
-    m_length = 0;
-}
-
-bool
-TrackHandler::endIsReached() const
-{
-    return m_endReached;
-}
-
-void
-TrackHandler::allTracksEnded()
-{
-    m_endReached = true;
-    emit tracksEndReached();
-}
-
-unsigned int
-TrackHandler::getTrackCount() const
-{
-    return m_trackCount;
-}
-
-QVariant
-TrackHandler::toVariant() const
-{
-    QVariantList l;
-    for ( unsigned int i = 0; i < m_trackCount; ++i)
-    {
-        if ( m_tracks[i]->getLength() > 0 || m_tracks[i]->count( Effect::Filter ) > 0 )
-        {
-            l << QVariantHash{
-                        { "id", i },
-                        { "track", m_tracks[i]->toVariant() }
-                    };
-        }
-    }
-    return QVariant( l );
-}
-
-void
-TrackHandler::loadFromVariant( const QVariant &variant )
-{
-    for ( const auto& var : variant.toList() )
-    {
-        quint32 id = var.toMap()["id"].toUInt();
-        m_tracks[ id ]->loadFromVariant( var.toMap()["track"]);
-    }
-}
-
-void
-TrackHandler::renderOneFrame()
-{
-    for ( unsigned int i = 0; i < m_trackCount; ++i)
-    {
-        if ( m_tracks[i].activated() == true )
-            m_tracks[i]->renderOneFrame();
-    }
-}
-
-void
-TrackHandler::setFullSpeedRender( bool val )
-{
-    for ( unsigned int i = 0; i < m_trackCount; ++i)
-        m_tracks[i]->setFullSpeedRender( val );
-}
-
-void
-TrackHandler::muteClip( const QUuid &uuid, quint32 trackId )
-{
-    m_tracks[trackId]->muteClip( uuid );
-}
-
-void
-TrackHandler::unmuteClip( const QUuid &uuid, quint32 trackId )
-{
-    m_tracks[trackId]->unmuteClip( uuid );
-}
-
-bool
-TrackHandler::contains( const QUuid &uuid ) const
-{
-    for ( unsigned int i = 0; i < m_trackCount; ++i )
-        if ( m_tracks[i]->contains( uuid ) == true )
-            return true;
-    return false;
-}
-
-void
-TrackHandler::stopFrameComputing()
-{
-    for ( unsigned int i = 0; i < m_trackCount; ++i )
-        m_tracks[i]->stopFrameComputing();
-}
-
-void
-TrackHandler::lengthUpdated( qint64 )
-{
-    qint64      maxLength = 0;
-
-    for ( unsigned int i = 0; i < m_trackCount; ++i )
-    {
-        if ( m_tracks[i]->getLength() > maxLength )
-            maxLength = m_tracks[i]->getLength();
-    }
-    if ( maxLength != m_length )
-    {
-        m_length = maxLength;
-        emit lengthChanged( m_length );
-    }
-}
-
-TrackWorkflow*
-TrackHandler::track( quint32 trackId )
-{
-    return m_tracks[trackId];
-}
diff --git a/src/Workflow/TrackHandler.h b/src/Workflow/TrackHandler.h
deleted file mode 100644
index 22f6921..0000000
--- a/src/Workflow/TrackHandler.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/*****************************************************************************
- * TrackHandler.h : Handle multiple track of a kind (audio or video)
- *****************************************************************************
- * Copyright (C) 2008-2016 VideoLAN
- *
- * Authors: Hugo Beauzée-Luyssen <hugo at beauzee.fr>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#ifndef TRACKHANDLER_H
-#define TRACKHANDLER_H
-
-#include <QObject>
-#include <QXmlStreamWriter>
-#include "Tools/Toggleable.hpp"
-#include "MainWorkflow.h"
-
-class   ClipHelper;
-class   TrackWorkflow;
-
-class   TrackHandler : public QObject
-{
-    Q_OBJECT
-    public:
-        TrackHandler( unsigned int nbTracks, Workflow::TrackType trackType );
-        ~TrackHandler();
-
-        /**
-         *  Returns the number of tracks in this handler
-         */
-        unsigned int            getTrackCount() const;
-        qint64                  getLength() const;
-        void                    startRender( quint32 width, quint32 height );
-        /**
-         *  \param      currentFrame    The current rendering frame (ie the video frame, in all case)
-         *  \param      subFrame        The type-dependent frame. IE, for a video track,
-         *                              it's the same as currentFrame, but for an audio
-         *                              track, it will be different.
-         *  \param      paused          The renderer paused state
-         */
-        Workflow::OutputBuffer  *getOutput( qint64 currentFrame, qint64 subFrame,
-                                           bool paused );
-        qint64                  getClipPosition( const QUuid& uuid, unsigned int trackId ) const;
-        void                    stop();
-        void                    muteTrack( unsigned int trackId );
-        void                    unmuteTrack( unsigned int trackId );
-        ClipHelper              *getClipHelper( const QUuid& uuid, unsigned int trackId );
-        void                    clear();
-
-        bool                    endIsReached() const;
-
-        QVariant                toVariant() const;
-        void                    loadFromVariant( const QVariant& var );
-
-        /**
-         *  \brief      Will configure the track workflow so they render only one frame
-         *
-         *  \sa MainWorkflow::renderOneFrame()
-         */
-        void                    renderOneFrame();
-
-        /**
-         *  \sa     MainWorkflow::setFullSpeedRender();
-         */
-        void                    setFullSpeedRender( bool val );
-
-        /**
-         *  \brief  Will mute a clip in the given track.
-         *
-         *  \param  uuid    The uuid of the clip to mute.
-         *  \param  trackId The id of the track holding the clip.
-         */
-        void                    muteClip( const QUuid& uuid, quint32 trackId );
-        void                    unmuteClip( const QUuid& uuid, quint32 trackId );
-
-        bool                    contains( const QUuid& uuid ) const;
-
-        void                    stopFrameComputing();
-
-        TrackWorkflow           *track( quint32 trackId );
-
-    private:
-        void                    allTracksEnded();
-
-    private:
-        Toggleable<TrackWorkflow*>*     m_tracks;
-        unsigned int                    m_trackCount;
-        Workflow::TrackType             m_trackType;
-        qint64                          m_length;
-        unsigned int                    m_highestTrackNumber;
-        bool                            m_endReached;
-
-    private slots:
-        void                            lengthUpdated( qint64 newLength );
-
-    signals:
-        void                            tracksEndReached();
-        void                            lengthChanged( qint64 );
-};
-
-#endif // TRACKHANDLER_H
-- 
1.9.1



More information about the Vlmc-devel mailing list