00001 /*! 00002 @class BluePhone 00003 @brief Hauptklasse von BluePhone. 00004 @author Thomas Gemperli, <bluephone@gemperli.net> 00005 @version 1.0 00006 @date 2004-08-03 00007 @par This program is free software; you can redistribute it and/or 00008 modify it under the terms of the GNU General Public License. 00009 @file bluephone.h 00010 */ 00011 00012 00013 #ifndef BLUEPHONE_H 00014 #define BLUEPHONE_H 00015 00016 00017 /** 00018 * In bluephonedlg.h stecken saemtliche Informationen und Includes, die ich fuer und von meiner Form benoetige. 00019 * Dieses File wird (unter anderen) von QT Designer aus einem xml File (.ui) generiert. Danke Designer. :) 00020 */ 00021 #include "bluephonedlg.h" 00022 00023 #include "bluelink.h" 00024 #include "bluesettings.h" 00025 #include "blueconvert.h" 00026 #include "blueobex.h" 00027 #include "newcontact.h" 00028 #include "newsms.h" 00029 00030 00031 /** 00032 * Dies ist die Basisklasse von BluePhone, von ihr aus wird die ganze Applikation gesteuert. 00033 * Diese Klasse enthaelt saemtliche Slots & Signals, die von QT-Designer waehrend des UI-Designs erstellt wurden. 00034 */ 00035 class BluePhone : public FormBluePhone 00036 { 00037 Q_OBJECT 00038 00039 public: 00040 /** 00041 * Erstellt das QWidget Objekt BluePhone im Hauptfenster. 00042 */ 00043 BluePhone(QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); 00044 00045 /** 00046 * BluePhone Destruktor. 00047 */ 00048 ~BluePhone(); 00049 00050 /** 00051 * Diese Methode liest, falls vorhanden, die aktuellen Settings aus dem Configfile ein. 00052 */ 00053 void readSettings(); 00054 00055 /** 00056 * Diese Methode updatet das "Settings" Tab mit den aktuellen Settings. 00057 */ 00058 void setSettingsView(); 00059 00060 /** 00061 * Diese Methode liest Informationen ueber eine File aus 00062 * und stellt diese im Tab "File" dar. 00063 * Parameter: QString "Pfad zur Datei" 00064 */ 00065 void showMetaInfo(const QString&); 00066 00067 00068 00069 public slots: 00070 00071 /** 00072 * Dieser Slot speichert die Settings. 00073 * Die Configuration wird in ~/.kde/share/config/bluephonerc gesichert 00074 */ 00075 virtual void settingsSave(); 00076 00077 /** 00078 * Dieser Slot zeigt eine Messagebox an, die erklaert, wie die Bluetooth Adresse des Telephons gefunden werden kann. 00079 */ 00080 virtual void settingsGetAddress(); 00081 00082 /** 00083 * Dieser Slot erstellt ein neues SMS an den selektierten Kontakt. 00084 */ 00085 virtual void contactsSms(); 00086 00087 /** 00088 * Dieser Slot ruft den selektierten Kontakt an. 00089 */ 00090 virtual void contactsCall(); 00091 00092 /** 00093 * Dieser Slot ueberschreibt das Telephonbuch auf dem Telephon mit einem Backup. 00094 */ 00095 virtual void contactsRestore(); 00096 00097 /** 00098 * Dieser Slot erstellt ein Textfile Backup aus allen Kontakten. 00099 */ 00100 virtual void contactsBackup(); 00101 00102 /** 00103 * Dieser Slot loescht den selektierten Kontakt. 00104 */ 00105 virtual void contactsDelete(); 00106 00107 /** 00108 * Dieser Slot editiert den selektierten Kontakt. 00109 */ 00110 virtual void contactsEdit(); 00111 00112 /** 00113 * Dieser Slot erstellt einen neuen Kontakt. 00114 */ 00115 virtual void contactsNew(); 00116 00117 /** 00118 * Dieser Slot liest das Telephonbuch des Telephons ein. 00119 */ 00120 virtual void contactsRead(); 00121 00122 /** 00123 * Dieser Slot erstellt ein neues SMS. 00124 */ 00125 virtual void smsNew(); 00126 00127 /** 00128 * Dieser Slot loescht alle SMS auf dem Telephon. 00129 */ 00130 virtual void smsDeleteAll(); 00131 00132 /** 00133 * Dieser Slot loescht ein SMS. 00134 */ 00135 virtual void smsDelete(); 00136 00137 /** 00138 * Dieser Slot speichert alle Kurznachrichten in einem Textfile ab. 00139 */ 00140 virtual void smsSaveAll(); 00141 00142 /** 00143 * Dieser Slot speichert eine Kurznachricht in einem Textfile ab. 00144 */ 00145 virtual void smsSave(); 00146 00147 /** 00148 * Dieser Slot liest die Kurznachrichten vom Telephon ein. 00149 */ 00150 virtual void smsRead(); 00151 00152 /** 00153 * Dieser Slot zeigt eine Nachricht in einer Messagebox an. 00154 */ 00155 virtual void smsShow(); 00156 00157 /** 00158 * Dieser Slot bietet die Moeglichkeit, eine Nachricht zu beantworteten. 00159 */ 00160 virtual void smsReply(); 00161 00162 /** 00163 * Dieser Slot sendet, ueber Obex, eine Datei an das Telphon. 00164 */ 00165 virtual void fileSend(); 00166 00167 /** 00168 * Dieser Slot dient zum Auswaehlen der Datei, die an das Telphon geschickt werden soll. 00169 */ 00170 virtual void fileBrowse(); 00171 00172 /** 00173 * Dieser Slot liest einige generelle Informationen aus dem Telephon aus. 00174 * Diese sind: Hersteller, Modell, Revision, Status, Batterieladung 00175 */ 00176 virtual void phoneGetInfo(); 00177 00178 /** 00179 * Dieser Slot schliesst die Verbindung mit dem Telephon. 00180 */ 00181 virtual void phoneDisconnect(); 00182 00183 /** 00184 * Dieser Slot verbindet BluePhone mit dem Telephon. 00185 * Die Logik dieses Slots ist in BlueLink. 00186 */ 00187 virtual void phoneConnect(); 00188 00189 /** 00190 * Dieser Slot zeigt die "About" Messagebox an. 00191 */ 00192 virtual void helpAbout(); 00193 00194 /** 00195 * Diesr Slot beendet das Programm. 00196 */ 00197 virtual void fileExit(); 00198 00199 /** 00200 * Dieser Slot setzt die gruene LED rsp. diese "leuchtet", falls die Verbindung zum Telephon steht. 00201 */ 00202 virtual void setLedGreen(); 00203 00204 /** 00205 * Dieser Slot setzt die orange LED rsp. diese "leuchtet" , falls die Verbindung zum Telephon steht. 00206 */ 00207 virtual void setLedOrange(); 00208 00209 /** 00210 * Dieser Slot etzt die rote LED rsp. diese "leuchtet". 00211 */ 00212 virtual void setLedRed(); 00213 00214 /** 00215 * Dieser Slot sendet einen neuen oder editierten Kontakt an das Telephon. 00216 * Parameter: QString ContactId, ContactType, ContactName, ContactNumber 00217 */ 00218 virtual void sendContactToPhone(const QString&, const QString&, const QString&, const QString&); 00219 00220 /** 00221 * Dieser Slot sendet ein SMS an das Telephon. 00222 * Parameter: QString Receiver, QString Message, int index, int id 00223 */ 00224 virtual void sendSmsToPhone(const QString&, const QString&, int, int); 00225 00226 00227 00228 protected: 00229 00230 00231 protected slots: 00232 00233 00234 private: 00235 /** 00236 * BluePhone Vesion. 00237 */ 00238 QString version; 00239 00240 /** 00241 * Erstellt ein BlueLink Objekt. 00242 */ 00243 BlueLink myLink; 00244 00245 /** 00246 * Erstellt ein BlueConvert Objekt. 00247 */ 00248 BlueConvert myConvert; 00249 00250 /** 00251 * Zeiger auf ezv24 Objekt "Port". 00252 * Siehe http://ezv24.sourceforge.net/api-html fuer weitere Informationen. 00253 */ 00254 v24_port_t *m_Port; 00255 00256 /** 00257 * Beinhaltet den Pfad zum seriellen ezv24 Device. 00258 */ 00259 QString m_Device; 00260 00261 /** 00262 * Beinhaltet die Bluetooth Adresse des Telephons. 00263 */ 00264 QString m_BtAddress; 00265 00266 /** 00267 * Beinhaltet den Bluetooth Channnel des Telephons. 00268 */ 00269 QString m_BtChannel; 00270 00271 /** 00272 * Beinhaltet den Bluetooth Channnel des Telephons als Inteter. 00273 */ 00274 int m_BtChannelInt; 00275 00276 /** 00277 * Soll beim Programmstart automatisch connected werden? 00278 * Wird vom Konstruktor ausgewertet. 00279 */ 00280 QString m_ConnectStartup; 00281 00282 /** 00283 * Beinhaltet die Antwort des Telephons. 00284 */ 00285 QStringList m_phoneAnswer; 00286 00287 /** 00288 * Beinhaltet Angaben zum Telephon. 00289 */ 00290 QString m_phoneManufacturer, m_phoneModel, m_phoneBattery, m_phoneRevision, m_phoneStatus; 00291 00292 /** 00293 * Beinhaltet Pfadangaben zum verwenden Device. 00294 */ 00295 QString m_defaultBtDevice, m_defaultIrdaDevice, m_defaultSerialDevice; 00296 00297 /** 00298 * Beinhaltet Angaben zur Verbindung. 00299 * Werden im Configfile gespeichert. 00300 */ 00301 QString m_settingsAll, m_settingsDevice, m_settingsBtAddress, m_settingsConnectStartup; 00302 00303 /** 00304 * Beinhaltet den Bluetooth Channnel des Telephons als Inteter. Hilfsvariable. 00305 */ 00306 int m_settingsBtChannel; 00307 00308 /** 00309 * Beinhaltet Werte des Telephonbuchs. 00310 */ 00311 QString m_phoneContactEntry, m_phoneContactId, m_phoneContactType, m_phoneContactName, m_phoneContactNumber, m_phoneContactCount; 00312 00313 /** 00314 * Beinhaltet Werte eines SMS. 00315 */ 00316 QString m_phoneSmsEntry, m_phoneSmsId, m_phoneSmsStatus, m_phoneSmsDateTmp, m_phoneSmsDate, m_phoneSmsNumber, m_phoneSmsMessage, m_phoneSmsToShow; 00317 00318 /** 00319 * Beinhaltet die PDU Daten (GSM 7-Bit Hex) eines SMS als QString. 00320 * Ein PDU Block sieht z.B. folgendermassen aus: 00321 * 079194712272303325000C9194711232547600000BD4F29C4E2FE3E9BA4D19 00322 * Siehe auch den Kommentar zu BlueConvert::extractPduData 00323 */ 00324 QString m_PDU; 00325 00326 /** 00327 * Beinhaltet die Laenge einer PDU. 00328 */ 00329 QString m_PduLength; 00330 00331 /** 00332 * Beinhaltet Werte eines neuen SMS. 00333 * Der index wird fuer ueberlange SMS benoetigt, die ID ist eine random Zahl. 00334 */ 00335 int m_index, m_id; 00336 00337 /** 00338 * Beinhaltet das AT Kommando fuer das Telephon. 00339 */ 00340 QString m_AtCommand; 00341 00342 /** 00343 * Beinhaltet den Pfad zu dem zu speichernden rsp. zu ladenden File. 00344 */ 00345 QString m_FileName; 00346 00347 /** 00348 * Beinhaltet den Pfad zu dem File, das auf das Telephon hochgeladen werden soll. 00349 */ 00350 QString m_UploadFileName, m_UploadFilePath; 00351 00352 }; 00353 00354 00355 #endif 00356
1.3.7