├── 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 | 
11 |
12 | 
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 |
--------------------------------------------------------------------------------