Author: jerome
Date: 2009-06-03 16:13:35 +0200 (Wed, 03 Jun 2009)
New Revision: 4741

Added:
   
software_suite_v3/software/tool/tux_droid_browser/windows/trunk/tux_droid_browser/TXmlThread.dcu
   
software_suite_v3/software/tool/tux_droid_browser/windows/trunk/tux_droid_browser/TXmlThread.pas
Modified:
   
software_suite_v3/software/tool/tux_droid_browser/windows/trunk/tux_droid_browser/Project2.dpr
   
software_suite_v3/software/tool/tux_droid_browser/windows/trunk/tux_droid_browser/Unit1.dcu
   
software_suite_v3/software/tool/tux_droid_browser/windows/trunk/tux_droid_browser/Unit1.dfm
   
software_suite_v3/software/tool/tux_droid_browser/windows/trunk/tux_droid_browser/Unit1.pas
Log:
* Added xml parser to retrieve dongle connection state.
* Start command in a thread.
* Cleanup.

Modified: 
software_suite_v3/software/tool/tux_droid_browser/windows/trunk/tux_droid_browser/Project2.dpr
===================================================================
--- 
software_suite_v3/software/tool/tux_droid_browser/windows/trunk/tux_droid_browser/Project2.dpr
      2009-06-03 13:32:28 UTC (rev 4740)
+++ 
software_suite_v3/software/tool/tux_droid_browser/windows/trunk/tux_droid_browser/Project2.dpr
      2009-06-03 14:13:35 UTC (rev 4741)
@@ -2,7 +2,8 @@
 
 uses
   Forms,
-  Unit1 in 'Unit1.pas' {Form1};
+  Unit1 in 'Unit1.pas' {Form1},
+  TXmlThread in 'TXmlThread.pas';
 
 {$R *.res}
 

Added: 
software_suite_v3/software/tool/tux_droid_browser/windows/trunk/tux_droid_browser/TXmlThread.dcu
===================================================================
(Binary files differ)


Property changes on: 
software_suite_v3/software/tool/tux_droid_browser/windows/trunk/tux_droid_browser/TXmlThread.dcu
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: 
software_suite_v3/software/tool/tux_droid_browser/windows/trunk/tux_droid_browser/TXmlThread.pas
===================================================================
--- 
software_suite_v3/software/tool/tux_droid_browser/windows/trunk/tux_droid_browser/TXmlThread.pas
                            (rev 0)
+++ 
software_suite_v3/software/tool/tux_droid_browser/windows/trunk/tux_droid_browser/TXmlThread.pas
    2009-06-03 14:13:35 UTC (rev 4741)
@@ -0,0 +1,79 @@
+unit TXmlThread;
+
+interface
+
+uses
+  Classes, LibXmlParser, LibXmlComps, SysUtils, Windows, Dialogs;
+
+type
+  TXmlThreadObject = class(TThread)
+
+  public
+    constructor create(scanner : TXmlScanner);
+    destructor  destroy; override;
+    function getResult() : boolean;
+
+  private
+    { D�clarations priv�es }
+    procedure XmlScanner1Content(Sender: TObject; Content: String);
+
+  protected
+    procedure Execute; override;
+  end;
+
+var
+  xmlScanner : TXmlScanner;
+  boolValue      : boolean;
+
+implementation
+
+{ TXmlThread }
+
+constructor TXmlThreadObject.create(scanner : TXmlScanner);
+begin
+  inherited create(true);
+  xmlScanner := scanner;
+  xmlScanner.OnContent := self.XmlScanner1Content;
+  boolValue := false;
+end;
+
+
+destructor TXmlThreadObject.destroy;
+begin
+  inherited;
+end;
+
+procedure TXmlThreadObject.Execute;
+begin
+  xmlScanner.Execute;
+end;
+
+
+//Xml scanner event.
+procedure TXmlThreadObject.XmlScanner1Content(Sender: TObject; Content: 
String);
+var
+  parser : TXmlParser;
+  value  : String;
+begin
+  parser := TXmlScanner(sender).XmlParser;
+
+  if parser.CurName = 'value' then
+  begin
+     value := LowerCase(parser.CurContent);
+     if value = 'true' then
+       boolValue := true
+     else
+       boolValue := false;
+  end;
+
+end;
+
+
+//Return the thread Result.
+function TXmlThreadObject.getResult() : boolean;
+begin
+  Result := boolValue;
+end;
+
+end.
+ 
\ No newline at end of file

Modified: 
software_suite_v3/software/tool/tux_droid_browser/windows/trunk/tux_droid_browser/Unit1.dcu
===================================================================
(Binary files differ)

Modified: 
software_suite_v3/software/tool/tux_droid_browser/windows/trunk/tux_droid_browser/Unit1.dfm
===================================================================
--- 
software_suite_v3/software/tool/tux_droid_browser/windows/trunk/tux_droid_browser/Unit1.dfm
 2009-06-03 13:32:28 UTC (rev 4740)
+++ 
software_suite_v3/software/tool/tux_droid_browser/windows/trunk/tux_droid_browser/Unit1.dfm
 2009-06-03 14:13:35 UTC (rev 4741)
@@ -59,6 +59,7 @@
     Height = 600
     Align = alClient
     TabOrder = 0
+    Silent = False
     DisableCtrlShortcuts = 'N'
     UserInterfaceOptions = [EnablesFormsAutoComplete, EnableThemes]
     DisabledPopupMenus = [rcmAll]
@@ -719,7 +720,7 @@
     Left = 72
     Top = 8
     Bitmap = {
-      494C010105000900040010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600
+      494C010105000900040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
       0000000000003600000028000000400000003000000001002000000000000030
       0000000000000000000000000000000000000000000000000000000000000000
       0000000000000000000000000000000000000000000000000000000000000000
@@ -1119,11 +1120,22 @@
       F00FF00FF00FF00FF007F007F007F007E003E003E003E003E001E001E001E001
       C001C001C001C001C000C000C000C00080008000800080008000800080008000
       8000800080008000800080008000800080008000800080008001800180018001
-      C21FC21FC21FC21FFFFFFFFFFFFFFFFF}
+      C21FC21FC21FC21FFFFFFFFFFFFFFFFF00000000000000000000000000000000
+      000000000000}
   end
   object Timer1: TTimer
     Interval = 3000
     Left = 104
     Top = 8
   end
+  object XmlScanner1: TXmlScanner
+    Normalize = True
+    Left = 136
+    Top = 8
+  end
+  object EwbControl1: TEwbControl
+    InternetFeatures = [Behaviors, DisableMkProtocol, 
GetUrlDomFilePathUnencoded]
+    Left = 856
+    Top = 424
+  end
 end

Modified: 
software_suite_v3/software/tool/tux_droid_browser/windows/trunk/tux_droid_browser/Unit1.pas
===================================================================
--- 
software_suite_v3/software/tool/tux_droid_browser/windows/trunk/tux_droid_browser/Unit1.pas
 2009-06-03 13:32:28 UTC (rev 4740)
+++ 
software_suite_v3/software/tool/tux_droid_browser/windows/trunk/tux_droid_browser/Unit1.pas
 2009-06-03 14:13:35 UTC (rev 4741)
@@ -28,7 +28,8 @@
 uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, OleCtrls, SHDocVw_EWB, EwbCore, EmbeddedWB, ShellAPI, Menus, 
Registry,
-  ImgList, PngImageList, LibXmlParser, LibXmlComps, IEDownload, ExtCtrls, 
TlHelp32;
+  ImgList, PngImageList, LibXmlParser, LibXmlComps, IEDownload, ExtCtrls, 
TlHelp32,
+  EwbControlComponent, TXmlThread;
 
 const wm_AppelMessage = wm_user + 1;
 
@@ -44,6 +45,8 @@
     PngImageList1: TPngImageList;
     ImageList1: TImageList;
     Timer1: TTimer;
+    XmlScanner1: TXmlScanner;
+    EwbControl1: TEwbControl;
 
     procedure FormCreate(Sender: TObject);
     procedure PopupMenu1Popup(Sender: TObject);
@@ -52,13 +55,16 @@
     procedure Help1Click(Sender: TObject);
     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
     procedure Mute1Click(Sender: TObject);
+    procedure XmlThreadTerminated(Sender: TObject);
 
   private
     { D�clarations priv�es }
     procedure WMAppelMessage(var msg : TMessage); message wm_AppelMessage;
 
     function OpenUrl(const url : String) : boolean;
+
     function isTuxDroidServerStarted() : boolean;
+    function isDongleConnected() : boolean;
 
   public
     { D�clarations publiques }
@@ -70,8 +76,8 @@
   Tray          : TNotifyIconData;
   AppIcon       : TIcon;
   serverStarted : boolean;
+  radioState    : boolean;
 
-
 implementation
 
 {$R *.dfm}
@@ -83,8 +89,11 @@
 
 //Form initialization.
 procedure TForm1.FormCreate(Sender: TObject);
+var
+  inputValue : String;
 begin
   url := 'http://127.0.0.1:270/devel/';
+  radioState := false;
 
   //Tray icon initialization.
   Tray.cbSize := SizeOf(Tray);
@@ -106,6 +115,7 @@
   //Embedded browser initialization.
   EmbeddedWB1.Go(url);
 
+  //Changing tray icon if server isn't started or no radio detected.
   if ( not isTuxDroidServerStarted() ) then
   begin
     ImageList1.GetIcon(3, AppIcon);
@@ -113,6 +123,8 @@
     Shell_NotifyIcon(Nim_Modify, @tray);
   end;
 
+  isDongleConnected();
+
 end;
 
 
@@ -120,6 +132,8 @@
 procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
 begin
   CanClose := False;
+  ShowHide1.Caption := 'Show';
+  ShowHide1.ImageIndex := 4;
   Form1.Hide;
 end;
 
@@ -238,9 +252,18 @@
   begin
     //Showing application.
     if Form1.Visible then
-      Form1.Hide
+    begin
+      Form1.Hide;
+      ShowHide1.Caption := 'Show';
+      ShowHide1.ImageIndex := 4;
+    end
     else
+    begin
       Form1.Show;
+      ShowHide1.Caption := 'Hide';
+      ShowHide1.ImageIndex := 5;
+    end;
+
   end
   else if msg.LParam = Wm_RButtonDown then
   begin
@@ -284,5 +307,63 @@
 
 end;
 
+
+function TForm1.isDongleConnected() : boolean;
+var
+  targetDir  : String;
+  downloaded : boolean;
+  xmlFile    : TFileName;
+  xmlThread  : TXmlThreadObject;
+
+const
+  command = 
'http://127.0.0.1:270/0/status/request_one?status_name=radio_state';
+  fileName = 'radio.xml';
+
+begin
+
+  targetDir := ExtractFilePath(Application.ExeName);
+  downloaded := false;
+
+  //Checking if file exists and remove it.
+  if FileExists(targetDir + '\' + fileName) then
+  begin
+    DeleteFile(fileName);
+  end;
+
+  Try
+    downloaded := self.EmbeddedWB1.DownloadFile(command, targetDir + '\' + 
fileName);
+  Except
+    ShowMessage('Error while retrieving dongle state');
+  end;
+
+  //Getting result.
+  if downloaded then
+  begin
+    xmlFile := targetDir + '\' + fileName;
+    self.XmlScanner1.LoadFromFile(xmlFile);
+
+    xmlThread := TXmlThreadObject.create(self.XmlScanner1);
+    xmlThread.Resume;
+
+    boolValue := xmlThread.getResult();
+    xmlThread.OnTerminate := Form1.XmlThreadTerminated;
+  end;
+
+  DeleteFile(targetDir + '\' + fileName);
+  Result := boolValue;
+
+end;
+
+
+procedure TForm1.XmlThreadTerminated(Sender: TObject);
+begin
+  if ( not boolValue ) then
+  begin
+    ImageList1.GetIcon(3, AppIcon);
+    Tray.hIcon := AppIcon.Handle;
+    Shell_NotifyIcon(Nim_Modify, @tray);
+  end;
+end;
+
 end.
 


------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
looking to deploy the next generation of Solaris that includes the latest 
innovations from Sun and the OpenSource community. Download a copy and 
enjoy capabilities such as Networking, Storage and Virtualization. 
Go to: http://p.sf.net/sfu/opensolaris-get
_______________________________________________
Tux-droid-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tux-droid-svn

Reply via email to