gui-for-ffmpeg/main.go
Leonid Nikitin 43d794373a
Embed application icon as a resource and refactor icon usage
Replaced the external `icon.png` file with an embedded resource using Go's embed functionality. Updated all references to use the new resource, eliminating the need for the standalone icon file.
2025-06-01 19:58:28 +05:00

77 lines
2.6 KiB
Go

package main
import (
_ "embed"
"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/internal/resources"
"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() {
appMetadata := &fyne.AppMetadata{
ID: "net.kor-elf.projects.gui-for-ffmpeg",
Name: "GUI for FFmpeg",
Version: "0.9.0",
Icon: resources.IconAppLogoResource(),
}
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()
}