├── Media Converter ├── WinNevisLogo.png ├── Assets │ ├── StoreLogo.png │ ├── SplashScreen.scale-200.png │ ├── LockScreenLogo.scale-200.png │ ├── Square44x44Logo.scale-200.png │ ├── Wide310x150Logo.scale-200.png │ ├── Square150x150Logo.scale-200.png │ └── Square44x44Logo.targetsize-24_altform-unplated.png ├── Media Converter_TemporaryKey.pfx ├── App.xaml ├── Media Converter.csproj.vspscc ├── BundleArtifacts │ ├── arm.txt │ ├── x64.txt │ └── x86.txt ├── project.json ├── vars.cs ├── Media Converter.csproj.user ├── Properties │ ├── Default.rd.xml │ └── AssemblyInfo.cs ├── Package.appxmanifest ├── CS.cs ├── App.xaml.cs ├── Media Converter.csproj ├── MAUC.xaml.cs ├── MAUC.xaml ├── MainPage.xaml.cs └── MainPage.xaml ├── README.md └── Media Converter.sln /Media Converter/WinNevisLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ramtinak/MediaConverter/HEAD/Media Converter/WinNevisLogo.png -------------------------------------------------------------------------------- /Media Converter/Assets/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ramtinak/MediaConverter/HEAD/Media Converter/Assets/StoreLogo.png -------------------------------------------------------------------------------- /Media Converter/Assets/SplashScreen.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ramtinak/MediaConverter/HEAD/Media Converter/Assets/SplashScreen.scale-200.png -------------------------------------------------------------------------------- /Media Converter/Media Converter_TemporaryKey.pfx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ramtinak/MediaConverter/HEAD/Media Converter/Media Converter_TemporaryKey.pfx -------------------------------------------------------------------------------- /Media Converter/Assets/LockScreenLogo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ramtinak/MediaConverter/HEAD/Media Converter/Assets/LockScreenLogo.scale-200.png -------------------------------------------------------------------------------- /Media Converter/Assets/Square44x44Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ramtinak/MediaConverter/HEAD/Media Converter/Assets/Square44x44Logo.scale-200.png -------------------------------------------------------------------------------- /Media Converter/Assets/Wide310x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ramtinak/MediaConverter/HEAD/Media Converter/Assets/Wide310x150Logo.scale-200.png -------------------------------------------------------------------------------- /Media Converter/Assets/Square150x150Logo.scale-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ramtinak/MediaConverter/HEAD/Media Converter/Assets/Square150x150Logo.scale-200.png -------------------------------------------------------------------------------- /Media Converter/Assets/Square44x44Logo.targetsize-24_altform-unplated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ramtinak/MediaConverter/HEAD/Media Converter/Assets/Square44x44Logo.targetsize-24_altform-unplated.png -------------------------------------------------------------------------------- /Media Converter/App.xaml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Media Converter/Media Converter.csproj.vspscc: -------------------------------------------------------------------------------- 1 | "" 2 | { 3 | "FILE_VERSION" = "9237" 4 | "ENLISTMENT_CHOICE" = "NEVER" 5 | "PROJECT_FILE_RELATIVE_PATH" = "" 6 | "NUMBER_OF_EXCLUDED_FILES" = "0" 7 | "ORIGINAL_PROJECT_FILE_PATH" = "" 8 | "NUMBER_OF_NESTED_PROJECTS" = "0" 9 | "SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER" 10 | } 11 | -------------------------------------------------------------------------------- /Media Converter/BundleArtifacts/arm.txt: -------------------------------------------------------------------------------- 1 | MainPackage=C:\Users\Ramtin\Documents\Visual Studio 2015\Projects\Media Converter\Media Converter\bin\ARM\Debug\Media Converter_1.0.3.0_ARM_Debug.appx 2 | SymbolPackage=C:\Users\Ramtin\Documents\Visual Studio 2015\Projects\Media Converter\Media Converter\AppPackages\Media Converter_1.0.3.0_Debug_Test\Media Converter_1.0.3.0_ARM_Debug.appxsym 3 | -------------------------------------------------------------------------------- /Media Converter/BundleArtifacts/x64.txt: -------------------------------------------------------------------------------- 1 | MainPackage=C:\Users\Ramtin\Documents\Visual Studio 2015\Projects\Media Converter\Media Converter\bin\x64\Debug\Media Converter_1.0.1.0_x64_Debug.appx 2 | SymbolPackage=C:\Users\Ramtin\Documents\Visual Studio 2015\Projects\Media Converter\Media Converter\AppPackages\Media Converter_1.0.1.0_Debug_Test\Media Converter_1.0.1.0_x64_Debug.appxsym 3 | -------------------------------------------------------------------------------- /Media Converter/BundleArtifacts/x86.txt: -------------------------------------------------------------------------------- 1 | MainPackage=C:\Users\Ramtin\Documents\Visual Studio 2015\Projects\Media Converter\Media Converter\bin\x86\Debug\Media Converter_1.0.5.0_x86_Debug.appx 2 | SymbolPackage=C:\Users\Ramtin\Documents\Visual Studio 2015\Projects\Media Converter\Media Converter\AppPackages\Media Converter_1.0.5.0_Debug_Test\Media Converter_1.0.5.0_x86_Debug.appxsym 3 | -------------------------------------------------------------------------------- /Media Converter/project.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0" 4 | }, 5 | "frameworks": { 6 | "uap10.0": {} 7 | }, 8 | "runtimes": { 9 | "win10-arm": {}, 10 | "win10-arm-aot": {}, 11 | "win10-x86": {}, 12 | "win10-x86-aot": {}, 13 | "win10-x64": {}, 14 | "win10-x64-aot": {} 15 | } 16 | } -------------------------------------------------------------------------------- /Media Converter/vars.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////// 2 | /////////////////////// DOWNLOAD FROM WIN NEVIS /////////////////////// 3 | ////////////////////// http://www.win-nevis.com /////////////////////// 4 | //////////////////////////// Ramtin Jokar ///////////////////////////// 5 | 6 | namespace Media_Converter 7 | { 8 | class vars 9 | { 10 | internal static void Output(object obj) 11 | { 12 | System.Diagnostics.Debug.WriteLine(obj); 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # MediaConverter 2 | With Media Converter you can easily convert .wmv, .mp4 ,.mp3 ,.mp4 ,.mkv ,.wma ,.m4a and .m4v to each other. 3 | 4 | Show time remaining, elapsed time, and convert percent. 5 | 6 | ####Source code available for Windows 10 (UWP) [C#] 7 | 8 | Screen shots: 9 | 10 | ![alt tag](http://www.win-nevis.com/app/new/mc1.PNG) 11 | 12 | ![alt tag](http://www.win-nevis.com/app/new/mc2.PNG) 13 | 14 | 15 | [Parse Dev Studio](http://www.parsedev.com) 16 | 17 | 18 | [Win Nevis Forum](http://www.win-nevis.com) 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /Media Converter/Media Converter.csproj.user: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | False 5 | False 6 | x86 7 | 8 | 9 | 30F105C9-681E-420b-A277-7C086EAD8A4E 10 | true 11 | 12 | -------------------------------------------------------------------------------- /Media Converter/Properties/Default.rd.xml: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /Media Converter/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Media Converter")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Media Converter")] 13 | [assembly: AssemblyCopyright("Copyright © 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("919583a6-39e1-42d0-9106-5cef729d3b22")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Media Converter/Package.appxmanifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Media Converter 7 | Ramtin 8 | Assets\StoreLogo.png 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /Media Converter/CS.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////// 2 | /////////////////////// DOWNLOAD FROM WIN NEVIS /////////////////////// 3 | ////////////////////// http://www.win-nevis.com /////////////////////// 4 | //////////////////////////// Ramtin Jokar ///////////////////////////// 5 | 6 | using System; 7 | using Windows.UI.Xaml.Media.Imaging; 8 | 9 | namespace Media_Converter 10 | { 11 | 12 | class cc 13 | { 14 | private BitmapImage r_thumbnail = new BitmapImage(new Uri("ms-appx:///WinNevisLogo.png")); 15 | public BitmapImage Thumbnail { get { return r_thumbnail; } set { r_thumbnail = value; } } 16 | public string Name { get; set; } 17 | public string Profile { get; set; } 18 | public string Duration { get; set; } 19 | } 20 | 21 | public class VideoCustomSettings 22 | { 23 | public double Width { get; set; } 24 | public double Height { get; set; } 25 | public double Bitrate { get; set; } 26 | } 27 | public class AudioCustomSettings 28 | { 29 | public double Bitrate { get; set; } 30 | } 31 | public enum ConverterFormat 32 | { 33 | MP4=-1, 34 | WMV, 35 | WMA, 36 | AVI, 37 | MP3, 38 | WAV, 39 | M4A 40 | } 41 | public enum ConverterMode 42 | { 43 | Audio, 44 | Video = -1 45 | } 46 | public enum VideoProfile 47 | { 48 | HD1080p, 49 | HD720p, 50 | Wvga, 51 | Ntsc, 52 | Pal, 53 | Vga, 54 | Qvga, 55 | Custom = -1 56 | } 57 | public enum AudioProfile 58 | { 59 | High, 60 | Medium, 61 | Low, 62 | Auto = -1 63 | } 64 | public class CS 65 | { 66 | public static string Extension = "MP4"; 67 | public static uint Width = 1280; 68 | public static uint Height = 720; 69 | public static uint VideoBitRate = 4500000; 70 | public static uint FrameRate = 30; 71 | 72 | public static uint SampleRate = 44100; 73 | public static uint AudioBitRate = 128000; 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /Media Converter.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.24720.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Media Converter", "Media Converter\Media Converter.csproj", "{919583A6-39E1-42D0-9106-5CEF729D3B22}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|ARM = Debug|ARM 11 | Debug|x64 = Debug|x64 12 | Debug|x86 = Debug|x86 13 | Release|ARM = Release|ARM 14 | Release|x64 = Release|x64 15 | Release|x86 = Release|x86 16 | EndGlobalSection 17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 18 | {919583A6-39E1-42D0-9106-5CEF729D3B22}.Debug|ARM.ActiveCfg = Debug|ARM 19 | {919583A6-39E1-42D0-9106-5CEF729D3B22}.Debug|ARM.Build.0 = Debug|ARM 20 | {919583A6-39E1-42D0-9106-5CEF729D3B22}.Debug|ARM.Deploy.0 = Debug|ARM 21 | {919583A6-39E1-42D0-9106-5CEF729D3B22}.Debug|x64.ActiveCfg = Debug|x64 22 | {919583A6-39E1-42D0-9106-5CEF729D3B22}.Debug|x64.Build.0 = Debug|x64 23 | {919583A6-39E1-42D0-9106-5CEF729D3B22}.Debug|x64.Deploy.0 = Debug|x64 24 | {919583A6-39E1-42D0-9106-5CEF729D3B22}.Debug|x86.ActiveCfg = Debug|x86 25 | {919583A6-39E1-42D0-9106-5CEF729D3B22}.Debug|x86.Build.0 = Debug|x86 26 | {919583A6-39E1-42D0-9106-5CEF729D3B22}.Debug|x86.Deploy.0 = Debug|x86 27 | {919583A6-39E1-42D0-9106-5CEF729D3B22}.Release|ARM.ActiveCfg = Release|ARM 28 | {919583A6-39E1-42D0-9106-5CEF729D3B22}.Release|ARM.Build.0 = Release|ARM 29 | {919583A6-39E1-42D0-9106-5CEF729D3B22}.Release|ARM.Deploy.0 = Release|ARM 30 | {919583A6-39E1-42D0-9106-5CEF729D3B22}.Release|x64.ActiveCfg = Release|x64 31 | {919583A6-39E1-42D0-9106-5CEF729D3B22}.Release|x64.Build.0 = Release|x64 32 | {919583A6-39E1-42D0-9106-5CEF729D3B22}.Release|x64.Deploy.0 = Release|x64 33 | {919583A6-39E1-42D0-9106-5CEF729D3B22}.Release|x86.ActiveCfg = Release|x86 34 | {919583A6-39E1-42D0-9106-5CEF729D3B22}.Release|x86.Build.0 = Release|x86 35 | {919583A6-39E1-42D0-9106-5CEF729D3B22}.Release|x86.Deploy.0 = Release|x86 36 | EndGlobalSection 37 | GlobalSection(SolutionProperties) = preSolution 38 | HideSolutionNode = FALSE 39 | EndGlobalSection 40 | GlobalSection(TeamFoundationVersionControl) = preSolution 41 | SccNumberOfProjects = 2 42 | SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} 43 | SccTeamFoundationServer = https://parsedev.visualstudio.com/defaultcollection 44 | SccLocalPath0 = . 45 | SccProjectUniqueName1 = Media\u0020Converter\\Media\u0020Converter.csproj 46 | SccProjectName1 = Media\u0020Converter 47 | SccLocalPath1 = Media\u0020Converter 48 | EndGlobalSection 49 | EndGlobal 50 | -------------------------------------------------------------------------------- /Media Converter/App.xaml.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////// 2 | /////////////////////// DOWNLOAD FROM WIN NEVIS /////////////////////// 3 | ////////////////////// http://www.win-nevis.com /////////////////////// 4 | //////////////////////////// Ramtin Jokar ///////////////////////////// 5 | 6 | using System; 7 | using Windows.ApplicationModel; 8 | using Windows.ApplicationModel.Activation; 9 | using Windows.UI.Core; 10 | using Windows.UI.Xaml; 11 | using Windows.UI.Xaml.Controls; 12 | using Windows.UI.Xaml.Navigation; 13 | 14 | namespace Media_Converter 15 | { 16 | sealed partial class App : Application 17 | { 18 | public App() 19 | { 20 | this.InitializeComponent(); 21 | this.Suspending += OnSuspending; 22 | } 23 | protected override void OnLaunched(LaunchActivatedEventArgs e) 24 | { 25 | 26 | #if DEBUG 27 | if (System.Diagnostics.Debugger.IsAttached) 28 | { 29 | this.DebugSettings.EnableFrameRateCounter = true; 30 | } 31 | #endif 32 | 33 | Frame rootFrame = Window.Current.Content as Frame; 34 | 35 | if (rootFrame == null) 36 | { 37 | rootFrame = new Frame(); 38 | 39 | rootFrame.NavigationFailed += OnNavigationFailed; 40 | 41 | if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) 42 | { 43 | } 44 | 45 | Window.Current.Content = rootFrame; 46 | } 47 | 48 | if (rootFrame.Content == null) 49 | { 50 | rootFrame.Navigate(typeof(MainPage), e.Arguments); 51 | } 52 | SystemNavigationManager.GetForCurrentView().BackRequested += App_BackRequested; 53 | 54 | // Ensure the current window is active 55 | Window.Current.Activate(); 56 | } 57 | private void App_BackRequested(object sender, BackRequestedEventArgs e) 58 | { 59 | Frame rootFrame = Window.Current.Content as Frame; 60 | if (rootFrame == null) 61 | return; 62 | 63 | if (rootFrame.CanGoBack && e.Handled == false) 64 | { 65 | e.Handled = true; 66 | rootFrame.GoBack(); 67 | } 68 | } 69 | 70 | void OnNavigationFailed(object sender, NavigationFailedEventArgs e) 71 | { 72 | throw new Exception("Failed to load Page " + e.SourcePageType.FullName); 73 | } 74 | 75 | 76 | private void OnSuspending(object sender, SuspendingEventArgs e) 77 | { 78 | var deferral = e.SuspendingOperation.GetDeferral(); 79 | deferral.Complete(); 80 | } 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /Media Converter/Media Converter.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | x86 7 | {919583A6-39E1-42D0-9106-5CEF729D3B22} 8 | AppContainerExe 9 | Properties 10 | Media_Converter 11 | Media Converter 12 | en-US 13 | UAP 14 | 10.0.10240.0 15 | 10.0.10240.0 16 | 14 17 | true 18 | 512 19 | {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 20 | Media Converter_TemporaryKey.pfx 21 | True 22 | Always 23 | x86 24 | SAK 25 | SAK 26 | SAK 27 | SAK 28 | 29 | 30 | true 31 | bin\ARM\Debug\ 32 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP 33 | ;2008 34 | full 35 | ARM 36 | false 37 | prompt 38 | true 39 | 40 | 41 | bin\ARM\Release\ 42 | TRACE;NETFX_CORE;WINDOWS_UWP 43 | true 44 | ;2008 45 | pdbonly 46 | ARM 47 | false 48 | prompt 49 | true 50 | true 51 | 52 | 53 | true 54 | bin\x64\Debug\ 55 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP 56 | ;2008 57 | full 58 | x64 59 | false 60 | prompt 61 | true 62 | 63 | 64 | bin\x64\Release\ 65 | TRACE;NETFX_CORE;WINDOWS_UWP 66 | true 67 | ;2008 68 | pdbonly 69 | x64 70 | false 71 | prompt 72 | true 73 | true 74 | 75 | 76 | true 77 | bin\x86\Debug\ 78 | DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP 79 | ;2008 80 | full 81 | x86 82 | false 83 | prompt 84 | true 85 | 86 | 87 | bin\x86\Release\ 88 | TRACE;NETFX_CORE;WINDOWS_UWP 89 | true 90 | ;2008 91 | pdbonly 92 | x86 93 | false 94 | prompt 95 | true 96 | true 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | App.xaml 105 | 106 | 107 | 108 | MainPage.xaml 109 | 110 | 111 | MAUC.xaml 112 | 113 | 114 | 115 | 116 | 117 | 118 | Designer 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | MSBuild:Compile 136 | Designer 137 | 138 | 139 | MSBuild:Compile 140 | Designer 141 | 142 | 143 | Designer 144 | MSBuild:Compile 145 | 146 | 147 | 148 | 14.0 149 | 150 | 151 | 158 | -------------------------------------------------------------------------------- /Media Converter/MAUC.xaml.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////// 2 | /////////////////////// DOWNLOAD FROM WIN NEVIS /////////////////////// 3 | ////////////////////// http://www.win-nevis.com /////////////////////// 4 | //////////////////////////// Ramtin Jokar ///////////////////////////// 5 | 6 | using System; 7 | using Windows.UI.Xaml; 8 | using Windows.UI.Xaml.Controls; 9 | 10 | 11 | namespace Media_Converter 12 | { 13 | public sealed partial class MAUC : UserControl 14 | { 15 | public MAUC() 16 | { 17 | this.InitializeComponent(); 18 | } 19 | 20 | public Visibility GPVisibility 21 | { 22 | get { return gp.Visibility; } 23 | set { gp.Visibility = value; } 24 | } 25 | 26 | private void comboExtension_SelectionChanged(object sender, SelectionChangedEventArgs e) 27 | { 28 | if (comboExtension != null && comboExtension.SelectedIndex != -1 29 | && video != null && videoSize != null && videoBitRate != null && 30 | videoFrameRate != null) 31 | { 32 | CS.Extension = ((ComboBoxItem)comboExtension.SelectedItem).Content.ToString(); 33 | if (comboExtension.SelectedIndex == 3 || 34 | comboExtension.SelectedIndex == 4 || 35 | comboExtension.SelectedIndex == 5 || 36 | comboExtension.SelectedIndex == 6) 37 | { 38 | video.Visibility = Visibility.Collapsed; 39 | videoSize.Visibility = Visibility.Collapsed; 40 | videoBitRate.Visibility = Visibility.Collapsed; 41 | videoFrameRate.Visibility = Visibility.Collapsed; 42 | } 43 | else 44 | { 45 | video.Visibility = Visibility.Visible; 46 | videoSize.Visibility = Visibility.Visible; 47 | videoBitRate.Visibility = Visibility.Visible; 48 | videoFrameRate.Visibility = Visibility.Visible; 49 | } 50 | } 51 | } 52 | 53 | private void startTimePicker_TimeChanged(object sender, TimePickerValueChangedEventArgs e) 54 | { 55 | 56 | } 57 | 58 | private void endTimePicker_TimeChanged(object sender, TimePickerValueChangedEventArgs e) 59 | { 60 | 61 | } 62 | 63 | private void comboVideoSize_SelectionChanged(object sender, SelectionChangedEventArgs e) 64 | { 65 | if(comboVideoSize!= null && comboVideoSize.SelectedIndex!=-1) 66 | { 67 | switch (comboVideoSize.SelectedIndex) 68 | { 69 | case 0: 70 | CS.Width = 1920; 71 | CS.Height = 1080; 72 | break; 73 | case 1: 74 | CS.Width = 1280; 75 | CS.Height = 720; 76 | break; 77 | case 2: 78 | CS.Width = 800; 79 | CS.Height = 480; 80 | break; 81 | case 3: 82 | CS.Width = 720; 83 | CS.Height = 480; 84 | break; 85 | case 4: 86 | CS.Width = 720; 87 | CS.Height = 576; 88 | break; 89 | case 5: 90 | CS.Width = 640; 91 | CS.Height = 480; 92 | break; 93 | case 6: 94 | CS.Width = 320; 95 | CS.Height = 240; 96 | break; 97 | } 98 | //switch (comboVideoSize.SelectedIndex) 99 | //{ 100 | // case 0: 101 | // break; 102 | // case 1: 103 | // break; 104 | // case 2: 105 | // break; 106 | // case 3: 107 | // break; 108 | // case 4: 109 | // break; 110 | // case 5: 111 | // break; 112 | // case 6: 113 | // break; 114 | //} 115 | } 116 | } 117 | 118 | private void comboVideoBitRate_SelectionChanged(object sender, SelectionChangedEventArgs e) 119 | { 120 | if (comboVideoBitRate != null && comboVideoBitRate.SelectedIndex != -1) 121 | { 122 | switch (comboVideoBitRate.SelectedIndex) 123 | { 124 | case 0: 125 | CS.VideoBitRate = 6000000; 126 | break; 127 | case 1: 128 | CS.VideoBitRate = 5500000; 129 | break; 130 | case 2: 131 | CS.VideoBitRate = 5000000; 132 | break; 133 | case 3: 134 | CS.VideoBitRate = 4500000; 135 | break; 136 | case 4: 137 | CS.VideoBitRate = 4000000; 138 | break; 139 | case 5: 140 | CS.VideoBitRate = 3500000; 141 | break; 142 | case 6: 143 | CS.VideoBitRate = 3000000; 144 | break; 145 | case 7: 146 | CS.VideoBitRate = 2500000; 147 | break; 148 | case 8: 149 | CS.VideoBitRate = 2000000; 150 | break; 151 | case 9: 152 | CS.VideoBitRate = 1800000; 153 | break; 154 | case 10: 155 | CS.VideoBitRate = 1600000; 156 | break; 157 | case 11: 158 | CS.VideoBitRate = 1500000; 159 | break; 160 | case 12: 161 | CS.VideoBitRate = 1200000; 162 | break; 163 | case 13: 164 | CS.VideoBitRate = 1000000; 165 | break; 166 | case 14: 167 | CS.VideoBitRate = 800000; 168 | break; 169 | case 15: 170 | CS.VideoBitRate = 600000; 171 | break; 172 | case 16: 173 | CS.VideoBitRate = 500000; 174 | break; 175 | case 17: 176 | CS.VideoBitRate = 400000; 177 | break; 178 | case 18: 179 | CS.VideoBitRate = 300000; 180 | break; 181 | case 19: 182 | CS.VideoBitRate = 256000; 183 | break; 184 | case 20: 185 | CS.VideoBitRate = 192000; 186 | break; 187 | case 21: 188 | CS.VideoBitRate = 128000; 189 | break; 190 | case 22: 191 | CS.VideoBitRate = 96000; 192 | break; 193 | } 194 | } 195 | } 196 | 197 | private void comboVideoFrameRate_SelectionChanged(object sender, SelectionChangedEventArgs e) 198 | { 199 | if(comboVideoFrameRate!= null && comboVideoFrameRate.SelectedIndex!=-1) 200 | { 201 | switch (comboVideoFrameRate.SelectedIndex) 202 | { 203 | case 0: 204 | CS.FrameRate = 8; 205 | break; 206 | case 1: 207 | CS.FrameRate = 10; 208 | break; 209 | case 2: 210 | CS.FrameRate = 12; 211 | break; 212 | case 3: 213 | CS.FrameRate = 15; 214 | break; 215 | case 4: 216 | CS.FrameRate = 20; 217 | break; 218 | case 5: 219 | CS.FrameRate = 23; 220 | break; 221 | case 6: 222 | CS.FrameRate = 24; 223 | break; 224 | case 7: 225 | CS.FrameRate = 25; 226 | break; 227 | case 8: 228 | CS.FrameRate = 29; 229 | break; 230 | case 9: 231 | CS.FrameRate = 30; 232 | break; 233 | case 10: 234 | CS.FrameRate = 50; 235 | break; 236 | case 11: 237 | CS.FrameRate = 60; 238 | break; 239 | } 240 | } 241 | } 242 | 243 | private void comboAudioSampleRate_SelectionChanged(object sender, SelectionChangedEventArgs e) 244 | { 245 | if (comboAudioSampleRate != null && comboAudioSampleRate.SelectedIndex != -1) 246 | { 247 | try 248 | { 249 | CS.SampleRate = uint.Parse(((ComboBoxItem)comboAudioSampleRate.SelectedItem).Content.ToString()); 250 | } 251 | catch (Exception ex) { vars.Output("comboAudioSampleRate_SelectionChanged ex: " + ex.Message); } 252 | } 253 | } 254 | 255 | private void comboAudioBitRate_SelectionChanged(object sender, SelectionChangedEventArgs e) 256 | { 257 | if (comboAudioBitRate != null && comboAudioBitRate.SelectedIndex != -1) 258 | { 259 | switch (comboAudioBitRate.SelectedIndex) 260 | { 261 | case 0: 262 | CS.AudioBitRate = 32000; 263 | break; 264 | case 1: 265 | CS.AudioBitRate = 64000; 266 | break; 267 | case 2: 268 | CS.AudioBitRate = 96000; 269 | break; 270 | case 3: 271 | CS.AudioBitRate = 112000; 272 | break; 273 | case 4: 274 | CS.AudioBitRate = 128000; 275 | break; 276 | case 5: 277 | CS.AudioBitRate = 160000; 278 | break; 279 | case 6: 280 | CS.AudioBitRate = 192000; 281 | break; 282 | case 7: 283 | CS.AudioBitRate = 256000; 284 | break; 285 | case 8: 286 | CS.AudioBitRate = 320000; 287 | break; 288 | case 9: 289 | CS.AudioBitRate = 448000; 290 | break; 291 | case 10: 292 | CS.AudioBitRate = 512000; 293 | break; 294 | case 11: 295 | CS.AudioBitRate = 640000; 296 | break; 297 | } 298 | } 299 | } 300 | } 301 | } 302 | -------------------------------------------------------------------------------- /Media Converter/MAUC.xaml: -------------------------------------------------------------------------------- 1 | 11 | 12 | 13 | 16 | 17 | 18 | 20 | 21 | 22 | 23 | 24 | 25 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 60 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 72 | 73 | 74 | 75 | 76 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 156 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | -------------------------------------------------------------------------------- /Media Converter/MainPage.xaml.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////// 2 | /////////////////////// DOWNLOAD FROM WIN NEVIS /////////////////////// 3 | ////////////////////// http://www.win-nevis.com /////////////////////// 4 | //////////////////////////// Ramtin Jokar ///////////////////////////// 5 | 6 | using System; 7 | using System.Diagnostics; 8 | using System.Threading; 9 | using System.Threading.Tasks; 10 | using Windows.Media.MediaProperties; 11 | using Windows.Media.Transcoding; 12 | using Windows.Storage; 13 | using Windows.Storage.Pickers; 14 | using Windows.UI; 15 | using Windows.UI.Core; 16 | using Windows.UI.ViewManagement; 17 | using Windows.UI.Xaml; 18 | using Windows.UI.Xaml.Controls; 19 | using Windows.UI.Xaml.Media.Animation; 20 | using Windows.UI.Xaml.Media.Imaging; 21 | 22 | 23 | namespace Media_Converter 24 | { 25 | public sealed partial class MainPage : Page 26 | { 27 | #region Variables 28 | Stopwatch stopwatch = new Stopwatch(); 29 | CoreDispatcher _dispatcher = Window.Current.Dispatcher; 30 | CancellationTokenSource _cts; 31 | string _OutputFileName = string.Empty; 32 | MediaEncodingProfile _Profile; 33 | StorageFile _InputFile = null; 34 | StorageFile _OutputFile = null; 35 | MediaTranscoder _Transcoder = new MediaTranscoder(); 36 | private ApplicationViewTitleBar titleBar; 37 | bool IsDisplayed { get; set; } 38 | #endregion 39 | 40 | #region Constructor 41 | public MainPage() 42 | { 43 | this.InitializeComponent(); 44 | _cts = new CancellationTokenSource(); 45 | titleBar = ApplicationView.GetForCurrentView().TitleBar; 46 | Loaded += MainPage_Loaded; 47 | } 48 | #endregion 49 | 50 | #region Slide control with animation 51 | public void Display() 52 | { 53 | MASettings.Visibility = Windows.UI.Xaml.Visibility.Visible; 54 | 55 | try 56 | { 57 | SlideAnimation(false); 58 | } 59 | catch (Exception) { } 60 | } 61 | 62 | public void Hide() 63 | { 64 | try 65 | { 66 | SlideAnimation(true); 67 | } 68 | catch (Exception) { } 69 | } 70 | 71 | private void SlideAnimation(bool hide) 72 | { 73 | Storyboard s = new Storyboard(); 74 | 75 | DoubleAnimation da = new DoubleAnimation(); 76 | da.Duration = new Duration(TimeSpan.FromMilliseconds(400)); 77 | 78 | if (hide) 79 | da.To = +1500; 80 | else 81 | da.To = 0; 82 | 83 | s.Children.Add(da); 84 | 85 | Storyboard.SetTarget(da, transform); 86 | Storyboard.SetTargetProperty(da, "TranslateX"); 87 | 88 | s.Completed += s_Completed; 89 | s.Begin(); 90 | } 91 | 92 | void s_Completed(object sender, object e) 93 | { 94 | IsDisplayed = !IsDisplayed; 95 | } 96 | #endregion 97 | 98 | #region Button Click Event Handlers 99 | private void HamburgerRadioButton_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e) 100 | { 101 | SplitView.IsPaneOpen = !SplitView.IsPaneOpen; 102 | } 103 | 104 | async private void StartRadioButton_Click(object sender, RoutedEventArgs e) 105 | { 106 | if (_InputFile == null) 107 | { 108 | await new Windows.UI.Popups.MessageDialog("Please import a video or music file to convert").ShowAsync(); 109 | return; 110 | } 111 | VideoEncodingQuality videoQuallity = VideoEncodingQuality.Wvga; 112 | if (CS.Width == 1920 && CS.Height == 1080) 113 | videoQuallity = VideoEncodingQuality.HD1080p; 114 | else if(CS.Width == 1280 && CS.Height == 720) 115 | videoQuallity = VideoEncodingQuality.HD720p; 116 | else if (CS.Width == 800 && CS.Height == 480) 117 | videoQuallity = VideoEncodingQuality.Wvga; 118 | else if (CS.Width == 720 && CS.Height == 480) 119 | videoQuallity = VideoEncodingQuality.Ntsc; 120 | else if (CS.Width == 720 && CS.Height == 576) 121 | videoQuallity = VideoEncodingQuality.Pal; 122 | else if (CS.Width == 640 && CS.Height == 480) 123 | videoQuallity = VideoEncodingQuality.Vga; 124 | else if (CS.Width == 320 && CS.Height == 240) 125 | videoQuallity = VideoEncodingQuality.Qvga; 126 | if (CS.Extension.ToLower().Equals("mp4")) 127 | _Profile = MediaEncodingProfile.CreateMp4(videoQuallity); 128 | else if (CS.Extension.ToLower().Equals("avi")) 129 | _Profile = MediaEncodingProfile.CreateAvi(videoQuallity); 130 | else if (CS.Extension.ToLower().Equals("wmv")) 131 | _Profile = MediaEncodingProfile.CreateWmv(videoQuallity); 132 | 133 | else if (CS.Extension.ToLower().Equals("wma")) 134 | _Profile = MediaEncodingProfile.CreateWma(AudioEncodingQuality.High); 135 | else if (CS.Extension.ToLower().Equals("wav")) 136 | _Profile = MediaEncodingProfile.CreateWav(AudioEncodingQuality.High); 137 | else if (CS.Extension.ToLower().Equals("mp3")) 138 | _Profile = MediaEncodingProfile.CreateMp3(AudioEncodingQuality.High); 139 | else if (CS.Extension.ToLower().Equals("m4a")) 140 | _Profile = MediaEncodingProfile.CreateM4a(AudioEncodingQuality.High); 141 | try 142 | { 143 | if (CS.Extension.ToLower().Equals("mp4")|| 144 | CS.Extension.ToLower().Equals("avi") || 145 | CS.Extension.ToLower().Equals("wmv")) 146 | { 147 | _Profile.Video.Width = CS.Width; 148 | _Profile.Video.Height = CS.Height; 149 | _Profile.Video.Bitrate = CS.VideoBitRate; 150 | } 151 | _Profile.Audio.Bitrate = CS.AudioBitRate; 152 | _Profile.Audio.SampleRate = CS.SampleRate; 153 | } 154 | catch (Exception exception) 155 | { 156 | vars.Output("StartRadioButton_Click ex: " + exception.Message); 157 | _Profile = null; 158 | return; 159 | } 160 | _cts = new CancellationTokenSource(); 161 | 162 | try 163 | { 164 | if (_InputFile != null && _Profile != null) 165 | { 166 | _OutputFileName = System.IO.Path.GetFileNameWithoutExtension(_InputFile.Path); 167 | string extension = CS.Extension; 168 | _OutputFileName = string.Format("[MC] {0}.{1}", _OutputFileName, extension); 169 | _OutputFile = await KnownFolders.VideosLibrary.CreateFileAsync(_OutputFileName, CreationCollisionOption.GenerateUniqueName); 170 | 171 | var preparedTranscodeResult = await _Transcoder.PrepareFileTranscodeAsync(_InputFile, _OutputFile, _Profile); 172 | 173 | _Transcoder.VideoProcessingAlgorithm = MediaVideoProcessingAlgorithm.Default; 174 | 175 | 176 | if (preparedTranscodeResult.CanTranscode) 177 | { 178 | var progress = new Progress(TranscodeProgress); 179 | stopwatch.Reset(); 180 | stopwatch.Start(); 181 | MASettings.GPVisibility = Visibility.Visible; 182 | StopRadioButton.Visibility = Visibility.Visible; 183 | await preparedTranscodeResult.TranscodeAsync().AsTask(_cts.Token, progress); 184 | } 185 | else 186 | { 187 | vars.Output(preparedTranscodeResult.FailureReason); 188 | MASettings.GPVisibility = Visibility.Collapsed; 189 | await new Windows.UI.Popups.MessageDialog("Failed to start.\r\nError: " + preparedTranscodeResult.FailureReason).ShowAsync(); 190 | StopRadioButton.Visibility = Visibility.Collapsed; 191 | 192 | } 193 | } 194 | } 195 | catch (TaskCanceledException) 196 | { 197 | MASettings.GPVisibility = Visibility.Collapsed; 198 | 199 | StopRadioButton.Visibility = Visibility.Collapsed; 200 | 201 | vars.Output("Transcode Canceled"); 202 | } 203 | catch (Exception exception) 204 | { 205 | MASettings.GPVisibility = Visibility.Collapsed; 206 | 207 | StopRadioButton.Visibility = Visibility.Collapsed; 208 | await new Windows.UI.Popups.MessageDialog("Failed to convert.\r\nError: " + exception.Message).ShowAsync(); 209 | 210 | vars.Output(exception.Message); 211 | } 212 | } 213 | 214 | private void StopRadioButton_Click(object sender, RoutedEventArgs e) 215 | { 216 | try 217 | { 218 | txtResult.Text = "Convert stopped."; 219 | _cts.Cancel(); 220 | _cts.Dispose(); 221 | _cts = null; 222 | } 223 | catch (Exception ex) { vars.Output("StopRadioButton_Click ex: " + ex.Message); } 224 | } 225 | 226 | async private void AddRadioButton_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e) 227 | { 228 | FileOpenPicker picker = new FileOpenPicker(); 229 | picker.SuggestedStartLocation = PickerLocationId.VideosLibrary; 230 | picker.FileTypeFilter.Add(".wmv"); 231 | picker.FileTypeFilter.Add(".mp4"); 232 | picker.FileTypeFilter.Add(".avi"); 233 | picker.FileTypeFilter.Add(".3gp"); 234 | picker.FileTypeFilter.Add(".mp3"); 235 | picker.FileTypeFilter.Add(".mp4"); 236 | picker.FileTypeFilter.Add(".flac"); 237 | picker.FileTypeFilter.Add(".mkv"); 238 | picker.FileTypeFilter.Add(".wma"); 239 | picker.FileTypeFilter.Add(".m4a"); 240 | picker.FileTypeFilter.Add(".m4v"); 241 | 242 | 243 | StorageFile file = await picker.PickSingleFileAsync(); 244 | 245 | if (file != null) 246 | { 247 | cc c = new cc(); 248 | _InputFile = file; 249 | _OutputFileName = System.IO.Path.GetFileNameWithoutExtension(file.Path); 250 | var t = await file.Properties.GetVideoPropertiesAsync(); 251 | 252 | try 253 | { 254 | var v = await file.GetThumbnailAsync(Windows.Storage.FileProperties.ThumbnailMode.VideosView); 255 | BitmapImage img = new BitmapImage(); 256 | img.SetSource(v); 257 | c.Thumbnail = img; 258 | } 259 | catch (Exception Exception) { vars.Output("VideoUC.Load().Thumbnail ex: " + Exception.Message); } 260 | 261 | c.Profile = file.FileType.ToUpper().Replace(".", ""); 262 | c.Duration = string.Format("{0}:{1}:{2}", 263 | t.Duration.Hours.ToString("00"), 264 | t.Duration.Minutes.ToString("00"), 265 | t.Duration.Seconds.ToString("00")); 266 | c.Name = file.Name; 267 | lv.Items.Clear(); 268 | lv.Items.Add(c); 269 | } 270 | 271 | } 272 | 273 | private void SettingsRadioButton_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e) 274 | { 275 | if (IsDisplayed) 276 | Hide(); 277 | else 278 | Display(); 279 | 280 | } 281 | #endregion 282 | 283 | #region Other functions and events 284 | async void TranscodeProgress(double percent) 285 | { 286 | int secondsremaining = (int)(stopwatch.Elapsed.TotalSeconds / pb.Value * (pb.Maximum - pb.Value)); 287 | 288 | TimeSpan span = new TimeSpan(0, 0, 0, secondsremaining); 289 | string remainTime = string.Format("{0}:{1}:{2}", 290 | span.Hours.ToString("00"), 291 | span.Minutes.ToString("00"), 292 | span.Seconds.ToString("00")); 293 | string elapsedTime = string.Format("{0}:{1}:{2}", 294 | stopwatch.Elapsed.Hours.ToString("00"), 295 | stopwatch.Elapsed.Minutes.ToString("00"), 296 | stopwatch.Elapsed.Seconds.ToString("00")); 297 | 298 | try 299 | { 300 | await _dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => 301 | { 302 | string st = string.Format("Completed: {0}% | Time remaining: {1} | Time elapsed: {2}", 303 | pb.Value, remainTime, elapsedTime); 304 | txtResult.Text = st; 305 | }); 306 | } 307 | catch (Exception ex) { vars.Output("ExXX " + ex.Message); } 308 | pb.Value = double.Parse(percent.ToString().Split('.')[0]); 309 | 310 | if (double.Parse(percent.ToString().Split('.','/','\\',',')[0]) == 100) 311 | { 312 | try 313 | { 314 | pb.Value = 100; 315 | 316 | string st = string.Format("Completed: {0}%", 317 | pb.Value); 318 | txtResult.Text = st; 319 | StopRadioButton.Visibility = Visibility.Collapsed; 320 | } 321 | catch (Exception ex) { vars.Output("ExXX " + ex.Message); } 322 | MASettings.GPVisibility = Visibility.Collapsed; 323 | } 324 | else 325 | { 326 | MASettings.GPVisibility = Visibility.Visible; 327 | StopRadioButton.Visibility = Visibility.Visible; 328 | } 329 | } 330 | 331 | TimeSpan Subtract(TimeSpan dt1, TimeSpan dt2) 332 | { 333 | TimeSpan span = dt1 - dt2; 334 | return span; 335 | } 336 | 337 | 338 | 339 | private void MainPage_Loaded(object sender, RoutedEventArgs e) 340 | { 341 | ChangeTitleBar(); 342 | } 343 | 344 | void ChangeTitleBar() 345 | { 346 | titleBar.BackgroundColor = new Color() { A = 100, R = 127, G = 220, B = 224 }; 347 | titleBar.ForegroundColor = Colors.Black; 348 | titleBar.InactiveBackgroundColor = new Color() { A = 100, R = 127, G = 220, B = 224 }; 349 | titleBar.InactiveForegroundColor = Colors.DarkGray; 350 | 351 | byte buttonAlpha = 255; 352 | titleBar.ButtonBackgroundColor = new Color() { A = 100, R = 127, G = 220, B = 224 }; 353 | titleBar.ButtonHoverBackgroundColor = new Color() { A = buttonAlpha, R = 19, G = 21, B = 40 }; 354 | titleBar.ButtonPressedBackgroundColor = Colors.White; 355 | titleBar.ButtonInactiveBackgroundColor = new Color() { A = 100, R = 127, G = 220, B = 224 }; 356 | 357 | titleBar.ButtonForegroundColor = Colors.Black; 358 | titleBar.ButtonHoverForegroundColor = Colors.Black; 359 | titleBar.ButtonPressedForegroundColor = Colors.DarkGray; 360 | titleBar.ButtonInactiveForegroundColor = Colors.Cyan; 361 | } 362 | #endregion 363 | } 364 | } 365 | -------------------------------------------------------------------------------- /Media Converter/MainPage.xaml: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | 13 | 16 | 19 | 20 | 112 | 113 | 114 | 115 | 116 | 117 | 123 | 124 | 125 | 132 | 140 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 163 | 173 | 174 | 184 | 185 | 191 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 210 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 221 | 225 | 230 | 234 | 238 | 239 | 240 | 241 | 242 | 243 | 247 | 248 | 249 | 250 | 251 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | --------------------------------------------------------------------------------