#ifndef OPENSHOT_TIMELINE_H #define OPENSHOT_TIMELINE_H /** * \file * \brief Header file for Timeline class * \author Copyright (c) 2011 Jonathan Thomas */ #include #include #include "Clip.h" #include "FileReaderBase.h" #include "Fraction.h" #include "Frame.h" #include "FrameRate.h" #include "KeyFrame.h" using namespace std; using namespace openshot; namespace openshot { /// Comparison method for sorting clip pointers (by Position and Layer) struct compare_clip_pointers{ bool operator()( Clip* lhs, Clip* rhs){ return lhs->Position() <= rhs->Position() && lhs->Layer() < rhs->Layer(); }}; /** * \brief This class represents a timeline * * The timeline is one of the most important features of a video editor, and controls all * aspects of how video, image, and audio clips are combined together, and how the final * video output will be rendered. It has a collection of layers and clips, that arrange, * sequence, and generate the final video output. */ class Timeline : public FileReaderBase { private: int width; /// clips; /// open_clips; /// GetFrame(int requested_frame) throw(ReaderClosed); /// Get the height of canvas and viewport int Height() { return height; } /// Set the height of canvas and viewport void Height(int new_height) { height = new_height; } // Curves for the viewport Keyframe viewport_scale; ///