Skip to content
Snippets Groups Projects
Select Git revision
  • e059062a012ad15b6f4685269e2edea47bb431e3
  • master default protected
  • release/202005
  • release/202001
  • release/201912
  • release/201911
  • release/releaseWindowsTestOne
  • release/windowsReleaseTest
  • release/releaseTest
  • release/releaseWindowsTest
  • release/201910
  • release/qt/201910
  • release/windows-test/201910
  • release/201908
  • release/201906
  • release/201905
  • release/201904
  • release/201903
  • release/201902
  • release/201901
  • release/201812
  • 4.0.0
  • 2.2.0
  • 2.1.0
  • 2.0.1
  • 2.0.0
  • 1.4.1
  • 1.4.0
  • 1.3.0
  • 1.2.0
  • 1.1.0
31 results

media_encoder.cpp

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    keyexchangemodel.h 2.83 KiB
    /****************************************************************************
     *   Copyright (C) 2013-2016 by Savoir-faire Linux                          *
     *   Author : Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com> *
     *                                                                          *
     *   This library is free software; you can redistribute it and/or          *
     *   modify it under the terms of the GNU Lesser General Public             *
     *   License as published by the Free Software Foundation; either           *
     *   version 2.1 of the License, or (at your option) any later version.     *
     *                                                                          *
     *   This library is distributed in the hope that it will be useful,        *
     *   but WITHOUT ANY WARRANTY; without even the implied warranty of         *
     *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU      *
     *   Lesser General Public License for more details.                        *
     *                                                                          *
     *   You should have received a copy of the GNU General Public License      *
     *   along with this program.  If not, see <http://www.gnu.org/licenses/>.  *
     ***************************************************************************/
    #pragma once
    
    #include "typedefs.h"
    #include <QtCore/QAbstractListModel>
    
    //Qt
    class QItemSelectionModel;
    
    //Ring
    class Account;
    class KeyExchangeModelPrivate;
    
    ///Static model for handling encryption types
    class LIB_EXPORT KeyExchangeModel : public QAbstractListModel {
       #pragma GCC diagnostic push
       #pragma GCC diagnostic ignored "-Wzero-as-null-pointer-constant"
       Q_OBJECT
       #pragma GCC diagnostic pop
       friend class Account;
    
    public:
    
       enum class Role {
          TYPE = 100
       };
    
       ///@enum Type Every supported encryption types
       enum class Type {
          NONE = 0,
          SDES = 1,
          COUNT__,
       };
    
       ///@enum Options Every Key exchange options
       enum class Options {
          RTP_FALLBACK     = 0,
          COUNT__,
       };
    
       //Private constructor, can only be called by 'Account'
       explicit KeyExchangeModel(Account* account);
       virtual ~KeyExchangeModel();
    
       //Model functions
       virtual QVariant      data     ( const QModelIndex& index, int role = Qt::DisplayRole     ) const override;
       virtual int           rowCount ( const QModelIndex& parent = QModelIndex()                ) const override;
       virtual bool          setData  ( const QModelIndex& index, const QVariant &value, int role)       override;
       virtual QHash<int,QByteArray> roleNames() const override;
    
       QItemSelectionModel* selectionModel() const;
    
    private:
       QScopedPointer<KeyExchangeModelPrivate> d_ptr;
    
    public Q_SLOTS:
       void enableSRTP(bool enable);
    
    Q_SIGNALS:
       void srtpEnabled(bool);
    };
    Q_DECLARE_METATYPE(KeyExchangeModel*)
    Q_DECLARE_METATYPE(KeyExchangeModel::Type)