Skip to content

wulf97/CVVEditor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Архитектура программы

1. Организация структуры каталогов проекта

  • gui - предназначен для хранения графического интерфейса приложения. Содержит точку входа.
  • core - содержит модули, которые занимаются обработкой, загрузкой видео, а так же взаимодействуют с плагинами.
  • plugins - содержит плагины для расширения функционала приложения.
  • tests - предназначен для хранения юнит-тестов (пока не используется).
  • res - каталог рессурсов.

2. Схема расположения виджетов в окне приложения

Все виджеты расположены внутри MainWindow. MainWindow отвечает за корректную компановку виджетов приложения.

  • Viewport - занимается отрисовкой кадров видео.
  • PluginList - содержит виджиты плагинов.
  • VideoControlBar - управляет проигрыванием видео.
  • VideoCutterList - содержит список виджетов VideoCutter. Добавляет и удаляет новые виджеты VideoCutter, а так же управляет порядком расположения виджетов. Содержит информацию об активном VideoCutter.
  • VideoCutter - используется для выбора нужного фрагмента видео.

3. Взаимодействие модулей

GUIManager изолирует модули графического интерфейса от остальных модулей системы. Занимыется пересылкой сигналов от модулей gui к другим модулям системы того же уровня. Содержит только сигналы, дублирующие сигнатуры сигналов и слотов внутренних и внешних модулей. Аналогичную функцию выполняет Core для модулей ядра.

Такой подход позволяет избежать перекрестного взаимодействия моделей различных подсистем, выстраивая четкую иерархию взаимодействий.


Список сигналов для VideoLoader

Сигналы для отправки (VideoLoader получает сигнал)

void uploadVideo(QString*)   Загрузить видео
void playVideo()             Начать отправку кадров
void stopVideo()             Останавить отправку кадров и сбросить счетчик кадров
void pauseVideo()            Приостанавливить отправку кадров

Сигналы для получения (VideoLoader отправляет сигнал)

void videoLen(int)           Получить длину видео в кадрах
void updateFrame(QImage*);   Получить кадр
void stoped();               Получить сигнал об остановке видео

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published