italkingwidget.h 2.93 KB
#ifndef ITALKINGWIDGET_H
#define ITALKINGWIDGET_H

#include <QWidget>
#include <QSlider>
#include <QTimer>

#include "Notification.h"
#include "ui_test.h"
#include "islider.h"
#include "msgmemo.h"
#include "gotye/GotyeAPI.h"
#include "gotye/GotyeDelegate.h"
#include "../JusDoodle/DoodlePch.h"
USING_NS_GOTYEAPI;

namespace Ui {
class TalkingWidget;
}

class IVideoItemTeach;

class ITalkingWidget : public QWidget ,public GotyeDelegate
{
    Q_OBJECT
public:
    explicit ITalkingWidget(QWidget *parent = 0);

    virtual void onReceiveMessage(const GotyeMessage& message, bool* downloadMediaIfNeed);
    void onVideoEvent(int eventType, const Notification &_info);
    void slotClickedBtnDecline();
    void stopLocalVideo();
    void showSessTermed();
    void stopRemoteVideo();
    void initShowUI();
    bool eventFilter(QObject *obj, QEvent *e);
    int getSendUid();
    void callCourse();


signals:
    void StopCall();
    void stopCalling();
    void hideMain();//最小化
    void send_callTimeSec(int);//通话时长
    
public slots:

private:
    Ui::TalkingWidget *ui;//通话界面UI
    ISlider *volSlider;
    QTimer MyTimer;
    QTimer trayHideTimer;
    int receiverUid;
    msgMemo *ui_msgMemo;


public:
//    IVideoItemTeach *videoItemTeacher;//教师视频窗口
    QWidget *videoItemTeacher;//教师视频窗口
    QLabel *hint_label;

    int callTimeSec;//通话时长
    int pptNmu;
    //Explanation m_explanation;
    //Ui::balanceLabels ui_explanation;
    //QWidget m_explanation;

    
public slots:
//    void on_pushButtonMin_clicked();
    void startLocalVideo();
    void startRemoteVideo();
    void slotClickedBtnAnswer();

private slots:
    void on_pushButtonClose_clicked();
    void on_pushButtonCloseVideo_clicked();
    void on_pushButtonMic_clicked();
    void on_pushButtonCameraChange_clicked();
    void on_pushButtonVol_clicked();
    void MicLabelShow();
    void CameraLabelShow();
    void volSliderShow();
    void volSliderHide();
    void SetSpkVol(int value);
    void displayTime();
    void on_pushButton_clicked();
    void on_pushButton_picture_clicked();
    void on_pushButtonMessage_clicked();
    void closeTheCurrentCall(QString);
    void otherVideoReceive(bool flag);
    void widgettrayHide();
    void widgettrayShow();
    void repulseCurrentCall();
    void doResponse(int cmd, int, QString, QString result);
    void showCourseUi();
    void upCourseUi();
    void CallNetChanged(int num);//信号强度
    void slotClickedBtnEnd(); //结束通话
    void ui_msgmemo_ishow(); //msgmemo show

private:
    bool videoFlag;
    bool isClictMic;
    bool isClictCamera;
    bool isClictVol;
    int m_nRemoteWidth;
    int m_nRemoteHeight;
    QTimer *m_timer;
    QTimer *m_courseTimer;
    QTimer *m_hanging_up_timer;
//    QTimer *m_hanging_up_timer;
    QString Myhead;
    QString otherhead;

    unsigned int m_dwSessId;
    JusDoodle::DoodleSession *pSess;
    QJsonArray pptarray;
};

#endif // ITALKINGWIDGET_H