diff -r da856f45b798 -r ff5174af067c zeroconf/zeroconfsharing/zeroconfsharing.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/zeroconf/zeroconfsharing/zeroconfsharing.h Wed Jul 21 14:28:48 2010 +0530 @@ -0,0 +1,184 @@ +/* +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef ZEROCONFSHARINGUI_H +#define ZEROCONFSHARINGUI_H + +#include +#include +#include +#include +#include +#include +#include + +#include "ui_mainwindow.h" +#include "zeroconfclient.h" + +#include +#include +#include "musicprovider.h" + +class MNowPlayObserver + { +public: + virtual void NowPlaying(TDes& aTitleBuf) = 0; + }; + + +class CHttpServer; +class CHttpClient; +class CContactInfo; + +class QZeroConfSharingUi : public QMainWindow , MPnPObserver, MNowPlayObserver +{ + Q_OBJECT + +public: + QZeroConfSharingUi(QWidget *parent = 0); + ~QZeroConfSharingUi(); + + void setIcon(const QIcon &icon); + void setSize(const QSize &size); + + void OnPnPEventL (RPnPParameterBundleBase& aServiceEventInfo); + void OnPnPError (TInt aError); + + void DiscoverServices(); + void GetSrvInfo(const TDesC8& aQueryString,TDnsType aType); + void PublishService(); + void FetchBaseUrl(RArray aTxtData); + void FetchIconUrl(RArray aTxtData); + void FetchFileUrl(RArray aTxtData); + void FetchCurrentlyPlaying(RArray aTxtData); + void FetchStatus(RArray aTxtData); + + void PublishMyService(const TDesC8& afilelist,const TDesC8& aIconName); + CContactInfo* Clone(CContactInfo* aContact); + + void NowPlaying(TDes& aTitleBuf); + + CContactInfo* Create_Icon_Contact(); + + void ShowCur_Status_and_Track(); + +private: + enum TCommand + { + EStart = 1, + EStop, + EExit, + }; + + enum TTabEnum + { + ETabContacts, + ETabContact, + ETabMusic, + ETabVideo, + ETabChat, + ETabFileSharing + }; + + QTabWidget* tabWidget; + //Ui::ContactTabWidget* contactWidget; + QTimer* iTimer; + + QStringList iContacts; + QStringList iCommunities; + QString iSelectedContact; + QString iSelectedFileListName; + QString iSelectedFileName; + + void PopulateUserList(); + void PopulateCommunityList(); + void ShowAllContacts(bool aShow); + void ShowBackButtons(bool aShow); + void PopulateMainWindow(QString qname); + void RequestSharedContent(); + void Log(const char* msg); + + CContactInfo* GetSelectedContact(const TDesC8& aConatactName); + + void PopulateContactSpecificData(); + void ReadFile(); + Ui::MainWindow ui; + bool isShared; + + CZeroconfClient* iZeroConfClient; + CMusicProvider* iMusic; + RPointerArray iEntries; + RBuf8 iSrvName; + + RBuf8 iPublishBaseUrl; + + RBuf8 iBaseUrl; + RBuf8 iIconName; + RBuf8 iFileName; + RBuf8 iCurrentlyPlaying; + RBuf8 iContactName; + RBuf8 iStatus; + + CContactInfo* iNewContact; + //@ TODO remove later + //TInt iCount; + //TBool isPresent; + + + QAction* shareAction; + QAction* unshareAction; + CHttpServer* iHttpServer; + //CHttpClient* iHttpClient; + TBool iStatusUpdate; + QFile iGenericFile; + QByteArray filename; + + QNetworkAccessManager *manager; + QNetworkReply *reply; + QNetworkReply *itemReply; + QProgressDialog* progressBar; + + //Flag to keep track whether to publish/ update service + TBool iUpdate; + //TBool IsDownloadItem; + + //QNetworkAccessManager *manager; + //QNetworkReply *reply; + QFile MyStatusFile; //used for persistence storage of + //status string + QString nowStatus; //stores the current status of string + + QFile logFile; +private slots: + void on_pushBackFile_clicked(); + void on_pushBackChat_clicked(); + void on_pushBackVideo_clicked(); + void on_pushBackMusic_clicked(); + void on_pushBackContact_clicked(); + void on_listAvatars_itemClicked(QListWidgetItem* item); + void RequestFinished(); + void ItemRequestFinished(); + void StartServer(); + void backPressed(); + void StopServer(); + void ContactitemClicked(QTreeWidgetItem* item, int column); + void ProgressBarCanceled(); + void UpdateMyStatus(); + +}; + +#endif // ZEROCONFSHARINGUI_H