Skip to content

Commit 9e66b7c

Browse files
committed
Added Avif/Jxl search type in GUI+ added libavif/libjxl version in About window
1 parent 9062bcc commit 9e66b7c

14 files changed

+79
-8
lines changed

.gitignore

+4-1
Original file line numberDiff line numberDiff line change
@@ -334,4 +334,7 @@ ASALocalRun/
334334
/src/AntiDupl.NET.Core/External.cs
335335
/src/AntiDupl.NET.WinForms/Form/MainForm.resx
336336
/src/AntiDupl.NET.WinForms/Form/SearchExecuterForm.resx
337-
/src/vcpkg_installed
337+
/src/vcpkg_installed
338+
src/AntiDupl.NET.WinForms/Form/CoreOptionsForm.resx
339+
src/AntiDupl.NET.WinForms/Form/AboutProgramForm.resx
340+
src/AntiDupl.NET.WinForms/Form/StartFinishForm.resx

src/AntiDupl.NET.Core/CoreSearchOptions.cs

+17-1
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ public class CoreSearchOptions : INotifyPropertyChanged
4747
private static string[] s_tgaExtensions = {"TGA", "TPIC"};
4848
private static string[] s_webpExtensions = { "WEBP" };
4949
private static string[] s_heifExtensions = { "HEIF", "HEIC" };
50+
private static string[] s_avifExtensions = { "AVIF" };
51+
private static string[] s_jxlExtensions = { "JXL" };
5052

5153
public bool subFolders;
5254
public bool system;
@@ -66,6 +68,8 @@ public class CoreSearchOptions : INotifyPropertyChanged
6668
public bool TGA;
6769
public bool WEBP;
6870
public bool HEIF;
71+
public bool AVIF;
72+
public bool JXL;
6973

7074
public CoreSearchOptions()
7175
{
@@ -90,6 +94,8 @@ public CoreSearchOptions(CoreSearchOptions searchOptions)
9094
TGA = searchOptions.TGA;
9195
WEBP = searchOptions.WEBP;
9296
HEIF = searchOptions.HEIF;
97+
AVIF = searchOptions.AVIF;
98+
JXL = searchOptions.JXL;
9399
}
94100

95101
public CoreSearchOptions(CoreDll.adSearchOptions searchOptions)
@@ -111,6 +117,8 @@ public CoreSearchOptions(CoreDll.adSearchOptions searchOptions)
111117
TGA = searchOptions.TGA != CoreDll.FALSE;
112118
WEBP = searchOptions.WEBP != CoreDll.FALSE;
113119
HEIF = searchOptions.HEIF != CoreDll.FALSE;
120+
AVIF = searchOptions.AVIF != CoreDll.FALSE;
121+
JXL = searchOptions.JXL != CoreDll.FALSE;
114122
}
115123

116124
public void ConvertTo(ref CoreDll.adSearchOptions searchOptions)
@@ -132,6 +140,8 @@ public void ConvertTo(ref CoreDll.adSearchOptions searchOptions)
132140
searchOptions.TGA = TGA ? CoreDll.TRUE : CoreDll.FALSE;
133141
searchOptions.WEBP = WEBP ? CoreDll.TRUE : CoreDll.FALSE;
134142
searchOptions.HEIF = HEIF ? CoreDll.TRUE : CoreDll.FALSE;
143+
searchOptions.AVIF = AVIF ? CoreDll.TRUE : CoreDll.FALSE;
144+
searchOptions.JXL = JXL ? CoreDll.TRUE : CoreDll.FALSE;
135145
}
136146

137147
public CoreSearchOptions Clone()
@@ -158,7 +168,9 @@ public bool Equals(CoreSearchOptions searchOptions)
158168
DDS == searchOptions.DDS &&
159169
TGA == searchOptions.TGA &&
160170
WEBP == searchOptions.WEBP &&
161-
HEIF == searchOptions.HEIF;
171+
HEIF == searchOptions.HEIF &&
172+
AVIF == searchOptions.AVIF &&
173+
JXL == searchOptions.JXL;
162174
}
163175

164176
public string[] GetActualExtensions()
@@ -192,6 +204,10 @@ public string[] GetActualExtensions()
192204
extensions.AddRange(s_webpExtensions);
193205
if (HEIF)
194206
extensions.AddRange(s_heifExtensions);
207+
if (AVIF)
208+
extensions.AddRange(s_avifExtensions);
209+
if (JXL)
210+
extensions.AddRange(s_jxlExtensions);
195211
return (string[])extensions.ToArray(typeof(string));
196212
}
197213

src/AntiDupl.NET.Core/Original/CoreDll.cs

+6
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,8 @@ public enum ImageType : int
202202
Tga = 13,
203203
Webp = 14,
204204
Heif = 15,
205+
Avif = 16,
206+
Jxl = 17,
205207
}
206208

207209
public enum DefectType : int
@@ -255,6 +257,8 @@ public enum VersionType : int
255257
Webp = 3,
256258
TurboJpeg = 4,
257259
Heif = 5,
260+
Avif = 6,
261+
Jxl = 7,
258262
}
259263

260264
public enum SelectionType : int
@@ -288,6 +292,8 @@ public struct adSearchOptions
288292
public int TGA;
289293
public int WEBP;
290294
public int HEIF;
295+
public int AVIF;
296+
public int JXL;
291297
}
292298

293299
[StructLayout(LayoutKind.Sequential)]

src/AntiDupl.NET.WinForms/Form/AboutProgramForm.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public AboutProgramForm(CoreLib core)
4747

4848
private void InitializeComponent()
4949
{
50-
ClientSize = new System.Drawing.Size(350, 350);
50+
ClientSize = new System.Drawing.Size(350, 400);
5151
FormBorderStyle = FormBorderStyle.FixedDialog;
5252
StartPosition = FormStartPosition.CenterScreen;
5353
ShowInTaskbar = false;

src/AntiDupl.NET.WinForms/Form/CoreOptionsForm.cs

+16-2
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ public class CoreOptionsForm : Form
9999
private CheckBox m_tgaCheckBox;
100100
private CheckBox m_webpCheckBox;
101101
private CheckBox m_heifCheckBox;
102+
private CheckBox m_avifCheckBox;
103+
private CheckBox m_jxlCheckBox;
102104
private CheckBox m_searchSystemCheckBox;
103105
private CheckBox m_searchHiddenCheckBox;
104106

@@ -296,10 +298,10 @@ private void InitilizeSearchTabPage()
296298
m_searchTabPage.Controls.Add(searchTableLayoutPanel);
297299

298300
m_searchFileTypeGroupBox = new GroupBox();
299-
m_searchFileTypeGroupBox.Size = new System.Drawing.Size(200, 160);
301+
m_searchFileTypeGroupBox.Size = new System.Drawing.Size(245, 160);
300302
searchTableLayoutPanel.Controls.Add(m_searchFileTypeGroupBox, 0, 0);
301303

302-
TableLayoutPanel searchFileTypeTableLayoutPanel = InitFactory.Layout.Create(3, 5, 5);
304+
TableLayoutPanel searchFileTypeTableLayoutPanel = InitFactory.Layout.Create(4, 5, 5);
303305
searchFileTypeTableLayoutPanel.AutoScroll = true;
304306
m_searchFileTypeGroupBox.Controls.Add(searchFileTypeTableLayoutPanel);
305307

@@ -348,6 +350,12 @@ private void InitilizeSearchTabPage()
348350
m_heifCheckBox = InitFactory.CheckBox.Create(OnOptionChanged);
349351
searchFileTypeTableLayoutPanel.Controls.Add(m_heifCheckBox, 2, 4);
350352

353+
m_avifCheckBox = InitFactory.CheckBox.Create(OnOptionChanged);
354+
searchFileTypeTableLayoutPanel.Controls.Add(m_avifCheckBox, 3, 0);
355+
356+
m_jxlCheckBox = InitFactory.CheckBox.Create(OnOptionChanged);
357+
searchFileTypeTableLayoutPanel.Controls.Add(m_jxlCheckBox, 3, 1);
358+
351359
m_searchSystemCheckBox = InitFactory.CheckBox.Create(OnOptionChanged);
352360
searchTableLayoutPanel.Controls.Add(m_searchSystemCheckBox, 0, 1);
353361

@@ -577,6 +585,8 @@ private void GetOptions()
577585
m_tgaCheckBox.Checked = m_newCoreOptions.searchOptions.TGA;
578586
m_webpCheckBox.Checked = m_newCoreOptions.searchOptions.WEBP;
579587
m_heifCheckBox.Checked = m_newCoreOptions.searchOptions.HEIF;
588+
m_avifCheckBox.Checked = m_newCoreOptions.searchOptions.AVIF;
589+
m_jxlCheckBox.Checked = m_newCoreOptions.searchOptions.JXL;
580590
m_searchSystemCheckBox.Checked = m_newCoreOptions.searchOptions.system;
581591
m_searchHiddenCheckBox.Checked = m_newCoreOptions.searchOptions.hidden;
582592

@@ -631,6 +641,8 @@ private void SetOptions()
631641
m_newCoreOptions.searchOptions.TGA = m_tgaCheckBox.Checked;
632642
m_newCoreOptions.searchOptions.WEBP = m_webpCheckBox.Checked;
633643
m_newCoreOptions.searchOptions.HEIF = m_heifCheckBox.Checked;
644+
m_newCoreOptions.searchOptions.AVIF = m_avifCheckBox.Checked;
645+
m_newCoreOptions.searchOptions.JXL = m_jxlCheckBox.Checked;
634646
m_newCoreOptions.searchOptions.system = m_searchSystemCheckBox.Checked;
635647
m_newCoreOptions.searchOptions.hidden = m_searchHiddenCheckBox.Checked;
636648

@@ -693,6 +705,8 @@ private void UpdateStrings()
693705
m_tgaCheckBox.Text = s.CoreOptionsForm_TgaCheckBox_Text;
694706
m_webpCheckBox.Text = s.CoreOptionsForm_WebpCheckBox_Text;
695707
m_heifCheckBox.Text = s.CoreOptionsForm_HeifCheckBox_Text;
708+
m_avifCheckBox.Text = s.CoreOptionsForm_AvifCheckBox_Text;
709+
m_jxlCheckBox.Text = s.CoreOptionsForm_JxlCheckBox_Text;
696710
m_searchSystemCheckBox.Text = s.CoreOptionsForm_SearchSystemCheckBox_Text;
697711
m_searchHiddenCheckBox.Text = s.CoreOptionsForm_SearchHiddenCheckBox_Text;
698712

src/AntiDupl.NET.WinForms/Form/StartFinishForm.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public StartFinishForm(CoreLib core, Options options)
7171

7272
private void InitializeComponent()
7373
{
74-
ClientSize = new System.Drawing.Size(330, 310);
74+
ClientSize = new System.Drawing.Size(330, 350);
7575
FormBorderStyle = FormBorderStyle.FixedDialog;
7676
StartPosition = FormStartPosition.CenterScreen;
7777
ShowInTaskbar = false;

src/AntiDupl.NET.WinForms/GUIControl/AboutProgramPanel.cs

+8-1
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ private TableLayoutPanel CreateLogotype(Font font)
105105

106106
private Control CreateInfoTable(Font font)
107107
{
108-
TableLayoutPanel table = InitFactory.Layout.Create(2, 7, 0, 0);
108+
TableLayoutPanel table = InitFactory.Layout.Create(2, 9, 0, 0);
109109
table.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
110110
table.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
111111
table.CellBorderStyle = TableLayoutPanelCellBorderStyle.Inset;
@@ -134,6 +134,13 @@ private Control CreateInfoTable(Font font)
134134

135135
table.Controls.Add(CreateLinkLabel("libheif", Resources.WebLinks.LibHeif, font), 0, 6);
136136
table.Controls.Add(CreateLabel(m_core.GetVersion(CoreDll.VersionType.Heif).ToString(), font), 1, 6);
137+
138+
table.Controls.Add(CreateLinkLabel("libavif", Resources.WebLinks.LibAvif, font), 0, 7);
139+
table.Controls.Add(CreateLabel(m_core.GetVersion(CoreDll.VersionType.Avif).ToString(), font), 1, 7);
140+
141+
table.Controls.Add(CreateLinkLabel("libjxl", Resources.WebLinks.LibJxl, font), 0, 8);
142+
table.Controls.Add(CreateLabel(m_core.GetVersion(CoreDll.VersionType.Jxl).ToString(), font), 1, 8);
143+
137144
return table;
138145
}
139146

src/AntiDupl.NET.WinForms/Resources.cs

+3
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,9 @@ static public class WebLinks
341341
public const string LibWebp = "https://github.com/webmproject/libwebp";
342342
public const string LibJpegTurbo = "http://www.libjpeg-turbo.org";
343343
public const string LibHeif = "http://www.libheif.org";
344+
public const string LibAvif = "https://github.com/AOMediaCodec/libavif";
345+
public const string LibJxl = "https://github.com/libjxl/libjxl";
346+
344347

345348
public static string GithubComAntiduplCurrent
346349
{

src/AntiDupl.NET.WinForms/Strings.cs

+2
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ public Strings()
8080
public string CoreOptionsForm_TgaCheckBox_Text;
8181
public string CoreOptionsForm_WebpCheckBox_Text;
8282
public string CoreOptionsForm_HeifCheckBox_Text;
83+
public string CoreOptionsForm_AvifCheckBox_Text;
84+
public string CoreOptionsForm_JxlCheckBox_Text;
8385
public string CoreOptionsForm_SearchSystemCheckBox_Text;
8486
public string CoreOptionsForm_SearchHiddenCheckBox_Text;
8587

src/AntiDupl.NET.WinForms/StringsDefaultEnglish.cs

+2
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@ static public void CopyTo(Strings s)
7777
s.CoreOptionsForm_TgaCheckBox_Text = "TGA";
7878
s.CoreOptionsForm_WebpCheckBox_Text = "WEBP";
7979
s.CoreOptionsForm_HeifCheckBox_Text = "HEIF";
80+
s.CoreOptionsForm_AvifCheckBox_Text = "AVIF";
81+
s.CoreOptionsForm_JxlCheckBox_Text = "JXL";
8082
s.CoreOptionsForm_SearchSystemCheckBox_Text = "Search system folders/files";
8183
s.CoreOptionsForm_SearchHiddenCheckBox_Text = "Search hidden folders/files";
8284

src/AntiDupl.NET.WinForms/StringsDefaultRussian.cs

+2
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@ static public void CopyTo(Strings s)
7777
s.CoreOptionsForm_TgaCheckBox_Text = "TGA";
7878
s.CoreOptionsForm_WebpCheckBox_Text = "WEBP";
7979
s.CoreOptionsForm_HeifCheckBox_Text = "HEIF";
80+
s.CoreOptionsForm_AvifCheckBox_Text = "AVIF";
81+
s.CoreOptionsForm_JxlCheckBox_Text = "JXL";
8082
s.CoreOptionsForm_SearchSystemCheckBox_Text = "Искать системные каталоги/файлы";
8183
s.CoreOptionsForm_SearchHiddenCheckBox_Text = "Искать скрытые каталоги/файлы";
8284

src/AntiDupl/AntiDupl.cpp

+12
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,11 @@
3333

3434
#include <windows.h>
3535

36+
#include "avif/avif.h"
37+
38+
#define JXL_STATIC_DEFINE
39+
#include <jxl/decode.h>
40+
3641
namespace ad
3742
{
3843
class TEngine;
@@ -117,6 +122,13 @@ DLLAPI adError adVersionGet(adVersionType versionType, adCharA * pVersion, adSiz
117122
case AD_VERSION_TYPE_LIBHEIF:
118123
version = heif_get_version();
119124
break;
125+
case AD_VERSION_TYPE_LIBAVIF:
126+
version = avifVersion();
127+
break;
128+
case AD_VERSION_TYPE_LIBJXL:
129+
v = JxlDecoderVersion();
130+
version = std::to_string((v / 1000000)) + "." + std::to_string(((v / 1000) % 1000)) + "." + std::to_string(((v % 1000)));
131+
break;
120132
default:
121133
return AD_ERROR_INVALID_VERSION_TYPE;
122134
}

src/AntiDupl/AntiDupl.h

+2
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,8 @@ extern "C"
365365
AD_VERSION_TYPE_WEBP = 3,
366366
AD_VERSION_TYPE_TURBOJPEG = 4,
367367
AD_VERSION_TYPE_LIBHEIF = 5,
368+
AD_VERSION_TYPE_LIBAVIF = 6,
369+
AD_VERSION_TYPE_LIBJXL = 7,
368370
AD_VERSION_TYPE_SIZE
369371
};
370372

src/vcpkg.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
"openjpeg",
88
"libwebp",
99
"libheif",
10-
"simd"
10+
"simd",
11+
"libavif",
12+
"libjxl"
1113
]
1214
}

0 commit comments

Comments
 (0)