diff --git a/.gitignore b/.gitignore
index af969d99..3285e5b9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,8 +15,6 @@
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
-x64/
-x86/
build/
bld/
[Bb]in/
diff --git a/Application/FileConverter/App.config b/Application/FileConverter/App.config
index 8e156463..397afee7 100644
--- a/Application/FileConverter/App.config
+++ b/Application/FileConverter/App.config
@@ -3,4 +3,9 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/Application/FileConverter/Application.xaml b/Application/FileConverter/Application.xaml
index 335fe998..c8171392 100644
--- a/Application/FileConverter/Application.xaml
+++ b/Application/FileConverter/Application.xaml
@@ -3,11 +3,18 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:xaml="clr-namespace:Markdown.Xaml;assembly=Markdown.Xaml"
xmlns:valueConverters="clr-namespace:FileConverter.ValueConverters"
+ xmlns:generic="clr-namespace:FileConverter.ValueConverters.Generic"
StartupUri="Windows/MainWindow.xaml" ShutdownMode="OnMainWindowClose">
-
+
+
+
+
+
+
+
+
+
-
+
@@ -129,58 +131,139 @@
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -194,12 +277,12 @@
-
+
-
+
@@ -217,12 +300,16 @@
-
+
-
-
-
-
+
+
+
+
@@ -243,16 +330,16 @@
-
+
-
+
-
+
@@ -270,21 +357,25 @@
-
+
-
-
-
-
+
+
+
+
-
+
-
+
@@ -307,28 +398,26 @@
-
+
-
+
-
-
- Ultra Fast
- Super Fast
- Very Fast
- Faster
- Fast
- Medium
- Slow
- Slower
- Very Slow
+
+
+
+
+
+
+
-
+
@@ -346,26 +435,96 @@
-
+
-
-
-
-
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -382,16 +541,16 @@
-
+
-
+
-
+
@@ -409,21 +568,25 @@
-
+
-
-
-
-
+
+
+
+
-
+
-
+
@@ -441,11 +604,11 @@
-
+
+ Margin="0,5,0,0" VerticalAlignment="Top" AutoToolTipPlacement="TopLeft" IsSnapToTickEnabled="True" IsSelectionRangeEnabled="True" SelectionStart="30" SelectionEnd="100" Minimum="0" Maximum="100" TickPlacement="BottomRight" SmallChange="5" LargeChange="15" TickFrequency="5" Foreground="#004B82" />
-
+
@@ -456,7 +619,7 @@
-
-
+
-
-
-
-
+
+
+
+
@@ -488,7 +657,7 @@
-
+
@@ -507,16 +676,22 @@
-
-
+
+
-
+
-
-
-
-
+
+
+
+
@@ -525,12 +700,14 @@
DefaultDataTemplate="{StaticResource EmptyDataTemplate}"
AacSettingsDataTemplate="{StaticResource AacSettingsDataTemplate}"
AviSettingsDataTemplate="{StaticResource AviSettingsDataTemplate}"
+ FlacSettingsDataTemplate="{StaticResource FlacSettingsDataTemplate}"
GifSettingsDataTemplate="{StaticResource GifSettingsDataTemplate}"
JpgSettingsDataTemplate="{StaticResource JpgSettingsDataTemplate}"
MkvSettingsDataTemplate="{StaticResource MkvSettingsDataTemplate}"
Mp3SettingsDataTemplate="{StaticResource Mp3SettingsDataTemplate}"
Mp4SettingsDataTemplate="{StaticResource MkvSettingsDataTemplate}"
OggSettingsDataTemplate="{StaticResource OggSettingsDataTemplate}"
+ OgvSettingsDataTemplate="{StaticResource OgvSettingsDataTemplate}"
PngSettingsDataTemplate="{StaticResource PngSettingsDataTemplate}"
WavSettingsDataTemplate="{StaticResource WavSettingsDataTemplate}"
WebmSettingsDataTemplate="{StaticResource WebmSettingsDataTemplate}" />
@@ -559,7 +736,7 @@
-
+
@@ -570,7 +747,7 @@
-
+
@@ -585,7 +762,8 @@
-
+
@@ -597,15 +775,18 @@
-
-
-
-
+
+
+
+
+
+
+
-
+
@@ -615,10 +796,12 @@
-
-
-
+
+
+
+
@@ -633,7 +816,7 @@
-
+
@@ -660,21 +843,45 @@
-
-
+
+
+
+
+
+
+
+
- help ?
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Content="{Binding SelectedPreset.OutputType, ElementName=window, UpdateSourceTrigger=PropertyChanged}" />
@@ -690,11 +897,11 @@
-
+
-
+
-
+
@@ -705,7 +912,7 @@
- help ?
+
@@ -717,20 +924,50 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
-
+
@@ -754,17 +991,17 @@
-
-
-
+
+
diff --git a/Application/FileConverter/Windows/SettingsWindow.xaml.cs b/Application/FileConverter/Windows/SettingsWindow.xaml.cs
index 91b4baa1..8d962da7 100644
--- a/Application/FileConverter/Windows/SettingsWindow.xaml.cs
+++ b/Application/FileConverter/Windows/SettingsWindow.xaml.cs
@@ -5,15 +5,18 @@ namespace FileConverter
using System;
using System.Collections.Generic;
using System.ComponentModel;
+ using System.Globalization;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Windows;
using System.Windows.Controls;
+ using System.Windows.Data;
using System.Windows.Input;
+ using FileConverter.Windows;
using FileConverter.Annotations;
using FileConverter.Commands;
- using FileConverter.Upgrade;
+ using FileConverter.ConversionJobs;
using Microsoft.Win32;
///
@@ -31,49 +34,28 @@ public partial class SettingsWindow : Window, INotifyPropertyChanged
private OpenUrlCommand openUrlCommand;
private DelegateCommand getChangeLogContentCommand;
private bool displaySeeChangeLogLink = true;
-
+
public SettingsWindow()
{
+ this.SupportedCultures = Helpers.GetSupportedCultures().Where(cultureInfo => cultureInfo.IsNeutralCulture).ToArray();
+
this.InitializeComponent();
Application application = Application.Current as Application;
this.ApplicationSettings = application.Settings;
this.PresetList.ItemsSource = this.settings.ConversionPresets;
-
- OutputType[] outputTypes = new[]
- {
- OutputType.Ogg,
- OutputType.Mp3,
- OutputType.Aac,
- OutputType.Flac,
- OutputType.Wav,
- OutputType.Mkv,
- OutputType.Mp4,
- OutputType.Webm,
- OutputType.Avi,
- OutputType.Ico,
- OutputType.Jpg,
- OutputType.Png,
- OutputType.Gif,
- };
-
- this.OutputFormats.ItemsSource = outputTypes;
-
- InputPostConversionAction[] postConversionActions = new[]
- {
- InputPostConversionAction.None,
- InputPostConversionAction.MoveInArchiveFolder,
- InputPostConversionAction.Delete,
- };
-
- this.PostConversionActionComboBox.ItemsSource = postConversionActions;
+ ListCollectionView collectionView = new ListCollectionView(new List(SettingsWindow.OutputTypeViewModels));
+ collectionView.GroupDescriptions.Add(new PropertyGroupDescription("Category"));
+
+ this.OutputFormats.ItemsSource = collectionView;
+
this.InitializeCompatibleInputExtensions();
}
public event PropertyChangedEventHandler PropertyChanged;
- public event System.EventHandler OnSettingsWindowHide;
+ public event EventHandler OnSettingsWindowHide;
public ICommand OpenUrlCommand
{
@@ -123,7 +105,7 @@ public ConversionPreset SelectedPreset
}
this.OnPropertyChanged();
- this.OnPropertyChanged("InputCategories");
+ this.OnPropertyChanged(nameof(this.InputCategories));
}
}
@@ -153,7 +135,7 @@ public IEnumerable InputCategories
for (int index = 0; index < this.inputCategories.Length; index++)
{
InputExtensionCategory category = this.inputCategories[index];
- if (this.SelectedPreset == null || PathHelpers.IsOutputTypeCompatibleWithCategory(this.SelectedPreset.OutputType, category.Name))
+ if (this.SelectedPreset == null || Helpers.IsOutputTypeCompatibleWithCategory(this.SelectedPreset.OutputType, category.Name))
{
yield return category;
}
@@ -161,11 +143,60 @@ public IEnumerable InputCategories
}
}
+ public CultureInfo[] SupportedCultures
+ {
+ get;
+ set;
+ }
+
+ public static OutputTypeViewModel[] OutputTypeViewModels => new[]
+ {
+ new OutputTypeViewModel(OutputType.Ogg),
+ new OutputTypeViewModel(OutputType.Mp3),
+ new OutputTypeViewModel(OutputType.Aac),
+ new OutputTypeViewModel(OutputType.Flac),
+ new OutputTypeViewModel(OutputType.Wav),
+ new OutputTypeViewModel(OutputType.Mkv),
+ new OutputTypeViewModel(OutputType.Mp4),
+ new OutputTypeViewModel(OutputType.Ogv),
+ new OutputTypeViewModel(OutputType.Webm),
+ new OutputTypeViewModel(OutputType.Avi),
+ new OutputTypeViewModel(OutputType.Png),
+ new OutputTypeViewModel(OutputType.Jpg),
+ new OutputTypeViewModel(OutputType.Ico),
+ new OutputTypeViewModel(OutputType.Gif),
+ new OutputTypeViewModel(OutputType.Pdf),
+ };
+
+ public InputPostConversionAction[] InputPostConversionActions => new[]
+ {
+ InputPostConversionAction.None,
+ InputPostConversionAction.MoveInArchiveFolder,
+ InputPostConversionAction.Delete,
+ };
+
+ public VideoEncodingSpeed[] VideoEncodingSpeeds => new[]
+ {
+ VideoEncodingSpeed.UltraFast,
+ VideoEncodingSpeed.SuperFast,
+ VideoEncodingSpeed.VeryFast,
+ VideoEncodingSpeed.Faster,
+ VideoEncodingSpeed.Fast,
+ VideoEncodingSpeed.Medium,
+ VideoEncodingSpeed.Slow,
+ VideoEncodingSpeed.Slower,
+ VideoEncodingSpeed.VerySlow,
+ };
+
public string AboutSectionContent
{
get
- {
- return "**This program is free software**.\n You can redistribute it and/or modify it under the terms of the GNU General Public License.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY. See the GNU General Public License (available in the installation folder: `LICENSE.md`) for more details.\n\n" + this.releaseNoteContent;
+ {
+ string content = Properties.Resources.LicenceHeader1 + "\n";
+ content += Properties.Resources.LicenceHeader2 + "\n\n";
+ content += Properties.Resources.LicenceHeader3 + "\n\n";
+ content += this.releaseNoteContent;
+ return content;
}
set
@@ -190,7 +221,7 @@ private set
this.OnPropertyChanged();
}
}
-
+
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
@@ -200,9 +231,9 @@ protected virtual void OnPropertyChanged([CallerMemberName] string propertyName
private void DownloadChangeLogAction()
{
#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
- Helpers.GetChangeLogAsync(new UpgradeVersionDescription(), this.OnChangeLogRetrieved);
+ Upgrade.Helpers.GetChangeLogAsync(new UpgradeVersionDescription(), this.OnChangeLogRetrieved);
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
- this.AboutSectionContent = "###Downloading change log ...";
+ this.AboutSectionContent = Properties.Resources.DownloadingChangeLog;
this.DisplaySeeChangeLogLink = false;
}
@@ -215,7 +246,7 @@ private void SelectedPresetPropertyChanged(object sender, PropertyChangedEventAr
{
if (e.PropertyName == "OutputType")
{
- this.OnPropertyChanged("InputCategories");
+ this.OnPropertyChanged(nameof(this.InputCategories));
}
}
@@ -316,12 +347,12 @@ private void SaveButton_Click(object sender, RoutedEventArgs e)
private void AddPresetButton_Click(object sender, RoutedEventArgs e)
{
Application application = Application.Current as Application;
- string presetName = "New preset";
+ string presetName = Properties.Resources.DefaultPresetName;
int index = 1;
while (application.Settings.ConversionPresets.Any(match => match.Name == presetName))
{
index++;
- presetName = string.Format("New preset ({0})", index);
+ presetName = $"{Properties.Resources.DefaultPresetName} ({index})";
}
ConversionPreset newPreset = null;
@@ -419,7 +450,7 @@ private void InitializeCompatibleInputExtensions()
for (int index = 0; index < compatibleInputExtensions.Length; index++)
{
string compatibleInputExtension = compatibleInputExtensions[index];
- string extensionCategory = PathHelpers.GetExtensionCategory(compatibleInputExtension);
+ string extensionCategory = Helpers.GetExtensionCategory(compatibleInputExtension);
InputExtensionCategory category = categories.Find(match => match.Name == extensionCategory);
if (category == null)
{
@@ -431,7 +462,7 @@ private void InitializeCompatibleInputExtensions()
}
this.inputCategories = categories.ToArray();
- this.OnPropertyChanged("InputCategories");
+ this.OnPropertyChanged(nameof(this.InputCategories));
}
}
}
diff --git a/Application/FileConverter/Windows/UpgradeWindow.xaml b/Application/FileConverter/Windows/UpgradeWindow.xaml
index e3985847..44450558 100644
--- a/Application/FileConverter/Windows/UpgradeWindow.xaml
+++ b/Application/FileConverter/Windows/UpgradeWindow.xaml
@@ -3,12 +3,9 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:local="clr-namespace:FileConverter.Windows"
- xmlns:fileConverter="clr-namespace:FileConverter"
- xmlns:valueConverters="clr-namespace:FileConverter.ValueConverters"
- xmlns:xaml="clr-namespace:Markdown.Xaml;assembly=Markdown.Xaml"
+ xmlns:project="clr-namespace:FileConverter.Properties"
mc:Ignorable="d"
- Title="File Converter Updates"
+ Title="{x:Static project:Resources.UpgradeWindowTitle}"
WindowStartupLocation="CenterScreen" Icon="/FileConverter;component/Resources/ApplicationIcon.ico"
MinHeight="300" MinWidth="450"
Height="450" Width="450" WindowStyle="ToolWindow">
@@ -19,21 +16,19 @@
-
-
-
+ Text="{x:Static project:Resources.UpgradeAvailable}" TextWrapping="Wrap"/>
-
+
+
@@ -46,8 +41,49 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Application/FileConverter/Windows/UpgradeWindow.xaml.cs b/Application/FileConverter/Windows/UpgradeWindow.xaml.cs
index abf7eec8..6cd43ea1 100644
--- a/Application/FileConverter/Windows/UpgradeWindow.xaml.cs
+++ b/Application/FileConverter/Windows/UpgradeWindow.xaml.cs
@@ -2,12 +2,15 @@
namespace FileConverter.Windows
{
+ using System;
+ using System.Windows.Input;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using System.Windows;
using FileConverter.Annotations;
+ using FileConverter.Commands;
using FileConverter.Upgrade;
public partial class UpgradeWindow : Window, INotifyPropertyChanged
@@ -15,6 +18,9 @@ public partial class UpgradeWindow : Window, INotifyPropertyChanged
private UpgradeVersionDescription upgradeVersionDescription;
private string releaseNoteContent;
+ private DelegateCommand downloadInstallerCommand;
+ private DelegateCommand launchInstallerCommand;
+
public UpgradeWindow()
{
this.InitializeComponent();
@@ -22,6 +28,32 @@ public UpgradeWindow()
public event PropertyChangedEventHandler PropertyChanged;
+ public ICommand DownloadInstallerCommand
+ {
+ get
+ {
+ if (this.downloadInstallerCommand == null)
+ {
+ this.downloadInstallerCommand = new DelegateCommand(this.ExecuteDownloadInstallerCommand);
+ }
+
+ return this.downloadInstallerCommand;
+ }
+ }
+
+ public ICommand LaunchInstallerCommand
+ {
+ get
+ {
+ if (this.launchInstallerCommand == null)
+ {
+ this.launchInstallerCommand = new DelegateCommand(this.ExecuteLaunchInstallerCommand);
+ }
+
+ return this.launchInstallerCommand;
+ }
+ }
+
public UpgradeVersionDescription VersionDescription
{
get
@@ -38,14 +70,14 @@ public UpgradeVersionDescription VersionDescription
this.OnPropertyChanged();
}
}
-
+
public string ReleaseNote
{
get
{
if (string.IsNullOrEmpty(this.releaseNoteContent))
{
- return "###Downloading change log ...";
+ return Properties.Resources.DownloadingChangeLog;
}
return this.releaseNoteContent;
@@ -58,7 +90,7 @@ public string ReleaseNote
this.OnPropertyChanged();
}
}
-
+
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
@@ -70,10 +102,15 @@ private void OnChangeLogRetrieved(UpgradeVersionDescription versionDescription)
this.ReleaseNote = versionDescription.ChangeLog;
}
- private void OnInstallButtonClick(object sender, RoutedEventArgs e)
+ private void ExecuteDownloadInstallerCommand()
{
this.upgradeVersionDescription.NeedToUpgrade = true;
Helpers.DownloadInstallerAsync(this.upgradeVersionDescription);
+ this.Hide();
+ }
+
+ private void ExecuteLaunchInstallerCommand()
+ {
this.Close();
}
}
diff --git a/Application/FileConverter/packages.config b/Application/FileConverter/packages.config
index a3bcfb39..09cd3f92 100644
--- a/Application/FileConverter/packages.config
+++ b/Application/FileConverter/packages.config
@@ -1,4 +1,5 @@
-
+
+
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index aff04354..34ae3bae 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,20 @@
# Change Log
+## Version 1.1
+- New: Localization system. File Converter can now be translated in multiple languages. The default language is the same than your OS language (if available).
+- New: Add the possibility to choose the application language in the application settings.
+- New: Add french localization.
+- New: Possibility to convert a Pdf file into image files (one image per page).
+- New: Possibility to convert an image into a Pdf file.
+- New: Possibility to encode videos using theora video codec and Ogg vorbis audio codec in a ogv container.
+- New: Possibility to change the number of channels of an audio file (stereo -> mono, 5.1 -> stereo, ...).
+- New: Improve the application upgrade UI. If you quit the application during the upgrade downloading, you will now see the download progress.
+- New: File converter is now available for Windows 32 bits systems (download the x86 installer).
+- New: Add an application option to choose the maximum number of simultaneous conversions.
+- Change: Improve the application help start page (when you launch File Converter directly from the executable) with an animated picture.
+- Change: Improve the output type dropdown visualization (splitting it by categories).
+- Fixed: Issue where it was impossible to rotate an image for the output types: jpg and png.
+
## Version 1.0
- New: File Converter is now certified by Microsoft Authenticode.
- New: Add an about section that contains information on the software development (change log, documentation link, report issue link).
diff --git a/FileConverter.sln b/FileConverter.sln
index edd6990c..e4e5d6e9 100644
--- a/FileConverter.sln
+++ b/FileConverter.sln
@@ -11,44 +11,32 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FileConverterExtension", "A
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
- Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {D27A76D2-43E4-43CC-9DA3-334B0B46F4E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D27A76D2-43E4-43CC-9DA3-334B0B46F4E5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D27A76D2-43E4-43CC-9DA3-334B0B46F4E5}.Debug|x64.ActiveCfg = Debug|Any CPU
- {D27A76D2-43E4-43CC-9DA3-334B0B46F4E5}.Debug|x64.Build.0 = Debug|Any CPU
- {D27A76D2-43E4-43CC-9DA3-334B0B46F4E5}.Debug|x86.ActiveCfg = Debug|Any CPU
- {D27A76D2-43E4-43CC-9DA3-334B0B46F4E5}.Debug|x86.Build.0 = Debug|Any CPU
- {D27A76D2-43E4-43CC-9DA3-334B0B46F4E5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D27A76D2-43E4-43CC-9DA3-334B0B46F4E5}.Release|Any CPU.Build.0 = Release|Any CPU
- {D27A76D2-43E4-43CC-9DA3-334B0B46F4E5}.Release|x64.ActiveCfg = Release|Any CPU
- {D27A76D2-43E4-43CC-9DA3-334B0B46F4E5}.Release|x64.Build.0 = Release|Any CPU
- {D27A76D2-43E4-43CC-9DA3-334B0B46F4E5}.Release|x86.ActiveCfg = Release|Any CPU
- {D27A76D2-43E4-43CC-9DA3-334B0B46F4E5}.Release|x86.Build.0 = Release|Any CPU
- {F14673DF-DF38-44B4-AB1D-99A59182C24C}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {D27A76D2-43E4-43CC-9DA3-334B0B46F4E5}.Debug|x64.ActiveCfg = Debug|x64
+ {D27A76D2-43E4-43CC-9DA3-334B0B46F4E5}.Debug|x64.Build.0 = Debug|x64
+ {D27A76D2-43E4-43CC-9DA3-334B0B46F4E5}.Debug|x86.ActiveCfg = Debug|x86
+ {D27A76D2-43E4-43CC-9DA3-334B0B46F4E5}.Debug|x86.Build.0 = Debug|x86
+ {D27A76D2-43E4-43CC-9DA3-334B0B46F4E5}.Release|x64.ActiveCfg = Release|x64
+ {D27A76D2-43E4-43CC-9DA3-334B0B46F4E5}.Release|x64.Build.0 = Release|x64
+ {D27A76D2-43E4-43CC-9DA3-334B0B46F4E5}.Release|x86.ActiveCfg = Release|x86
+ {D27A76D2-43E4-43CC-9DA3-334B0B46F4E5}.Release|x86.Build.0 = Release|x86
{F14673DF-DF38-44B4-AB1D-99A59182C24C}.Debug|x64.ActiveCfg = Debug|x64
{F14673DF-DF38-44B4-AB1D-99A59182C24C}.Debug|x64.Build.0 = Debug|x64
{F14673DF-DF38-44B4-AB1D-99A59182C24C}.Debug|x86.ActiveCfg = Debug|x86
{F14673DF-DF38-44B4-AB1D-99A59182C24C}.Debug|x86.Build.0 = Debug|x86
- {F14673DF-DF38-44B4-AB1D-99A59182C24C}.Release|Any CPU.ActiveCfg = Release|x86
{F14673DF-DF38-44B4-AB1D-99A59182C24C}.Release|x64.ActiveCfg = Release|x64
{F14673DF-DF38-44B4-AB1D-99A59182C24C}.Release|x64.Build.0 = Release|x64
{F14673DF-DF38-44B4-AB1D-99A59182C24C}.Release|x86.ActiveCfg = Release|x86
{F14673DF-DF38-44B4-AB1D-99A59182C24C}.Release|x86.Build.0 = Release|x86
- {0C44CA69-42D6-4357-BDFD-83069D1ABA2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0C44CA69-42D6-4357-BDFD-83069D1ABA2F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0C44CA69-42D6-4357-BDFD-83069D1ABA2F}.Debug|x64.ActiveCfg = Debug|Any CPU
{0C44CA69-42D6-4357-BDFD-83069D1ABA2F}.Debug|x64.Build.0 = Debug|Any CPU
{0C44CA69-42D6-4357-BDFD-83069D1ABA2F}.Debug|x86.ActiveCfg = Debug|Any CPU
{0C44CA69-42D6-4357-BDFD-83069D1ABA2F}.Debug|x86.Build.0 = Debug|Any CPU
- {0C44CA69-42D6-4357-BDFD-83069D1ABA2F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0C44CA69-42D6-4357-BDFD-83069D1ABA2F}.Release|Any CPU.Build.0 = Release|Any CPU
{0C44CA69-42D6-4357-BDFD-83069D1ABA2F}.Release|x64.ActiveCfg = Release|Any CPU
{0C44CA69-42D6-4357-BDFD-83069D1ABA2F}.Release|x64.Build.0 = Release|Any CPU
{0C44CA69-42D6-4357-BDFD-83069D1ABA2F}.Release|x86.ActiveCfg = Release|Any CPU
diff --git a/Installer/Installer.wixproj b/Installer/Installer.wixproj
index adcf2fa9..afd10f2d 100644
--- a/Installer/Installer.wixproj
+++ b/Installer/Installer.wixproj
@@ -30,6 +30,7 @@
obj\$(Platform)\$(Configuration)\
+
@@ -39,6 +40,14 @@
+
+ FileConverterExtension
+ {0c44ca69-42d6-4357-bdfd-83069d1aba2f}
+ True
+ True
+ Binaries;Content;Satellites
+ INSTALLFOLDER
+
FileConverter
{d27a76d2-43e4-43cc-9da3-334b0b46f4e5}
@@ -52,10 +61,11 @@
-
-
+
+ "C:\Program Files (x86)\WiX Toolset v3.10\bin\heat.exe" dir "$(SolutionDir)Application\FileConverter\$(OutDir)Languages" -gg -template fragment -cg "Languages" -dr "INSTALLFOLDER" -var "var.FileConverter.TargetDir" -out "$(ProjectDir)Languages.wxs"
+
-
-
+
+
+
+
+
+
@@ -24,7 +28,8 @@
-
+
+
@@ -78,13 +83,16 @@
+
+
+
-
+
-
+
@@ -92,24 +100,33 @@
-
+
-
+
+
+
+
+
+
+
-
+
-
+
-
+
+
+
+
-
+
@@ -125,7 +142,7 @@
-
+
diff --git a/Middleware/ffmpeg.exe b/Middleware/ffmpeg/x64/ffmpeg.exe
similarity index 78%
rename from Middleware/ffmpeg.exe
rename to Middleware/ffmpeg/x64/ffmpeg.exe
index 51e121b5..b1b90b2c 100644
Binary files a/Middleware/ffmpeg.exe and b/Middleware/ffmpeg/x64/ffmpeg.exe differ
diff --git a/Middleware/ffmpeg/x86/ffmpeg.exe b/Middleware/ffmpeg/x86/ffmpeg.exe
new file mode 100644
index 00000000..b556064b
Binary files /dev/null and b/Middleware/ffmpeg/x86/ffmpeg.exe differ
diff --git a/Middleware/gs/x86/gsdll32.dll b/Middleware/gs/x86/gsdll32.dll
new file mode 100644
index 00000000..486ebc09
Binary files /dev/null and b/Middleware/gs/x86/gsdll32.dll differ
diff --git a/Middleware/gs/x86/gswin32c.exe b/Middleware/gs/x86/gswin32c.exe
new file mode 100644
index 00000000..7f0b08d2
Binary files /dev/null and b/Middleware/gs/x86/gswin32c.exe differ
diff --git a/README.md b/README.md
index 17b2919a..dbcc90c8 100644
--- a/README.md
+++ b/README.md
@@ -20,6 +20,9 @@ Thanks to ffmpeg devs for this awesome open source file conversion tool. [Web si
Thanks to image magick devs for this awesome open source image edition software suite. [Web site link](http://imagemagick.net/)
And thanks to dlemstra for the C# wrapper of this software. [CodePlex link](https://magick.codeplex.com/)
+**Ghostscript** as pdf edition software.
+Thanks to ghostscript devs. [Download link](http://www.ghostscript.com/download/gsdnld.html)
+
**SharpShell** to easily create windows context menu extensions.
Thanks to Dave Kerr for his work on SharpShell. [CodePlex link](https://sharpshell.codeplex.com/)
@@ -27,7 +30,10 @@ Thanks to Dave Kerr for his work on SharpShell. [CodePlex link](https://sharpshe
Thanks to Idael Cardoso for his work on CD Audio ripper. [Code project link](http://www.codeproject.com/Articles/5458/C-Sharp-Ripper)
**Markdown.XAML** for markdown rendering in the wpf application.
-Thanks to Bevan Arps for his work on Markdown.XAML. [GitHub link](https://github.com/theunrepentantgeek/Markdown.XAML)
+Thanks to Bevan Arps for his work on Markdown.XAML. [GitHub link](http://github.com/theunrepentantgeek/Markdown.XAML)
+
+**WpfAnimatedGif** for animated gif rendering in the wpf application.
+Thanks to Thomas Levesque for his work on WpfAnimatedGif. [GitHub link](http://github.com/XamlAnimatedGif/WpfAnimatedGif)
## License
diff --git a/version (x86).xml b/version (x86).xml
new file mode 100644
index 00000000..afab0953
--- /dev/null
+++ b/version (x86).xml
@@ -0,0 +1,4 @@
+
+
+ http://github.com/Tichau/FileConverter/releases/download/v1.0/FileConverter-1.0-x86-setup.msi
+
\ No newline at end of file