diff options
author | sr55 <[email protected]> | 2010-09-19 12:17:07 +0000 |
---|---|---|
committer | sr55 <[email protected]> | 2010-09-19 12:17:07 +0000 |
commit | 1d3a178d671af6d09b3e3be35562fe5070ace809 (patch) | |
tree | 288f38ac3e39cf5300fb7d3ddffff5e3604b1565 /win/C#/frmDownload.cs | |
parent | 8cac9d8c62ce452ff27a6b70f005056f44b55581 (diff) |
WinGui:
- Moved some non-specific HandBrake code (Exception Window, Update Information Window, Update Download Window) out into a separate framework library. Hoping to make this more reusable at a later point.
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3543 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'win/C#/frmDownload.cs')
-rw-r--r-- | win/C#/frmDownload.cs | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/win/C#/frmDownload.cs b/win/C#/frmDownload.cs deleted file mode 100644 index e7f06f6ea..000000000 --- a/win/C#/frmDownload.cs +++ /dev/null @@ -1,122 +0,0 @@ -/* frmDownload.cs $
- This file is part of the HandBrake source code.
- Homepage: <http://handbrake.fr>.
- It may be used under the terms of the GNU General Public License. */
-
-namespace Handbrake
-{
- using System;
- using System.Diagnostics;
- using System.IO;
- using System.Net;
- using System.Threading;
- using System.Windows.Forms;
-
- /// <summary>
- /// The Download Window
- /// </summary>
- public partial class frmDownload : Form
- {
- private readonly Thread downloadThread;
- private Stream responceStream;
- private Stream localStream;
- private HttpWebRequest webRequest;
- private HttpWebResponse webResponse;
- private static int progress;
- private bool killThread;
-
- private delegate void UpdateProgessCallback(long bytesRead, long totalBytes);
-
- private delegate void DownloadCompleteCallback();
-
- private delegate void DownloadFailedCallback();
-
- public frmDownload(string filename)
- {
- InitializeComponent();
-
- this.downloadThread = new Thread(Download);
- this.downloadThread.Start(filename);
- }
-
- private void Download(object file)
- {
- string tempPath = Path.Combine(Path.GetTempPath(), "handbrake-setup.exe");
- string hbUpdate = (string)file;
- WebClient wcDownload = new WebClient();
-
- try
- {
- if (File.Exists(tempPath))
- File.Delete(tempPath);
-
- this.webRequest = (HttpWebRequest)WebRequest.Create(hbUpdate);
- this.webRequest.Credentials = CredentialCache.DefaultCredentials;
- this.webResponse = (HttpWebResponse)this.webRequest.GetResponse();
- long fileSize = this.webResponse.ContentLength;
-
- this.responceStream = wcDownload.OpenRead(hbUpdate);
- this.localStream = new FileStream(tempPath, FileMode.Create, FileAccess.Write, FileShare.None);
-
- int bytesSize;
- byte[] downBuffer = new byte[2048];
-
- long flength = 0;
- while ((bytesSize = this.responceStream.Read(downBuffer, 0, downBuffer.Length)) > 0)
- {
- if (this.killThread)
- return;
- this.localStream.Write(downBuffer, 0, bytesSize);
- flength = this.localStream.Length;
- Invoke(new UpdateProgessCallback(this.UpdateProgress), new object[] {this.localStream.Length, fileSize});
- }
-
- this.responceStream.Close();
- this.localStream.Close();
-
- if (flength != fileSize)
- Invoke(new DownloadFailedCallback(this.DownloadFailed));
- else
- Invoke(new DownloadCompleteCallback(this.DownloadComplete));
- }
- catch
- {
- // Do Nothing
- }
- }
-
- private void UpdateProgress(long bytesRead, long totalBytes)
- {
- long p = (bytesRead * 100) / totalBytes;
- int.TryParse(p.ToString(), out progress);
- progress_download.Value = progress;
- lblProgress.Text = (bytesRead / 1024) + "k of " + (totalBytes / 1024) + "k ";
- }
-
- private void DownloadComplete()
- {
- lblProgress.Text = "Download Complete";
- btn_cancel.Text = "Close";
-
- Process.Start(Path.Combine(Path.GetTempPath(), "handbrake-setup.exe"));
- this.Close();
- Application.Exit();
- }
-
- private void DownloadFailed()
- {
- lblProgress.Text = "Download Failed";
- btn_cancel.Text = "Close";
- }
-
- private void btn_cancel_Click(object sender, EventArgs e)
- {
- this.killThread = true;
- lblProgress.Text = "Cancelling ...";
- if (this.webResponse != null) this.webResponse.Close();
- if (this.responceStream != null) this.responceStream.Close();
- if (this.localStream != null) this.localStream.Close();
- this.Close();
- }
- }
-}
\ No newline at end of file |