package main import ( "fyne.io/fyne/v2" "git.kor-elf.net/kor-elf/gui-for-ffmpeg/convertor" error2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/error" "git.kor-elf.net/kor-elf/gui-for-ffmpeg/handler" "git.kor-elf.net/kor-elf/gui-for-ffmpeg/kernel" "git.kor-elf.net/kor-elf/gui-for-ffmpeg/localizer" "git.kor-elf.net/kor-elf/gui-for-ffmpeg/menu" "git.kor-elf.net/kor-elf/gui-for-ffmpeg/setting" "git.kor-elf.net/kor-elf/gui-for-ffmpeg/theme" ) var application kernel.AppContract var ffPathUtilities *kernel.FFPathUtilities func init() { iconResource, _ := fyne.LoadResourceFromPath("icon.png") appMetadata := &fyne.AppMetadata{ ID: "net.kor-elf.projects.gui-for-ffmpeg", Name: "GUI for FFmpeg", Version: "0.9.0", Icon: iconResource, } ffPathUtilities = &kernel.FFPathUtilities{FFmpeg: "", FFprobe: "", FFplay: ""} convertorService := kernel.NewService(ffPathUtilities) ffplayService := kernel.NewFFplay(ffPathUtilities) queue := kernel.NewQueueList() application = kernel.NewApp( appMetadata, queue, ffplayService, convertorService, ) } func main() { errorView := error2.NewView(application) settingRepository := setting.NewRepository(application.GetAppFyne()) settingDirectoryForSaving := setting.NewSettingDirectoryForSaving(settingRepository) convertorRepository := convertor.NewRepository(settingRepository) ffPathUtilities.FFmpeg = convertorRepository.GetPathFfmpeg() ffPathUtilities.FFprobe = convertorRepository.GetPathFfprobe() ffPathUtilities.FFplay = convertorRepository.GetPathFfplay() application.RunConvertor() defer application.AfterClosing() localizerView := localizer.NewView(application) convertorView := convertor.NewView(application) itemsToConvertService := kernel.NewItemsToConvert( application.GetWindow().GetLayout().GetRightTabs().GetAddedFilesContainer(), application.GetFFplayService(), application.GetLocalizerService(), ) convertorHandler := handler.NewConvertorHandler(application, convertorView, errorView, convertorRepository, settingDirectoryForSaving, itemsToConvertService) themeRepository := theme.NewRepository(settingRepository) themeService := theme.NewTheme(application, themeRepository) menuView := menu.NewView(application) menuSettingView := menu.NewViewSetting(application, themeService) mainMenu := handler.NewMenuHandler(application, convertorHandler, menuView, menuSettingView, localizerView, themeService) mainHandler := handler.NewMainHandler(application, convertorHandler, mainMenu) mainHandler.Start() application.GetWindow().SetMainMenu(mainMenu.GetMainMenu()) application.GetWindow().ShowAndRun() }