blob: fc96d3af4459921cd35b10e7504649f9f2cb87de [file] [log] [blame]
Nicolas Jagera92f1312016-08-25 08:01:22 -04001#pragma once
2/**************************************************************************
3* Copyright (C) 2016 by Savoir-faire Linux *
4* Author: Jäger Nicolas <nicolas.jager@savoirfairelinux.com> *
5* *
6* This program is free software; you can redistribute it and/or modify *
7* it under the terms of the GNU General Public License as published by *
8* the Free Software Foundation; either version 3 of the License, or *
9* (at your option) any later version. *
10* *
11* This program is distributed in the hope that it will be useful, *
12* but WITHOUT ANY WARRANTY; without even the implied warranty of *
13* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14* GNU General Public License for more details. *
15* *
16* You should have received a copy of the GNU General Public License *
17* along with this program. If not, see <http://www.gnu.org/licenses/>. *
18**************************************************************************/
19using namespace Platform;
20using namespace Windows::UI::Xaml::Data;
21
22namespace RingClientUWP
23{
Nicolas Jagerc551c362016-10-01 19:24:50 -040024/* enumerations. */
25public enum class CallStatus { NONE, INCOMING_RINGING, OUTGOING_RINGING, SEARCHING, IN_PROGRESS, ENDED };
26
Nicolas Jagera92f1312016-08-25 08:01:22 -040027public ref class Call sealed : public INotifyPropertyChanged
28{
29public:
Nicolas Jagerc551c362016-10-01 19:24:50 -040030
Nicolas Jagera92f1312016-08-25 08:01:22 -040031 /* functions */
32 Call(String^ accountId, String^ callId, String^ from);
Nicolas Jagera92f1312016-08-25 08:01:22 -040033
34 /* properties */
35 virtual event PropertyChangedEventHandler^ PropertyChanged;
36
37 property String^ accountId;
38 property String^ callId;
39 property String^ from;
Nicolas Jagerc551c362016-10-01 19:24:50 -040040 property CallStatus state {
41 CallStatus get() {
42 return state_;
43 }
44 void set(CallStatus value) {
45 state_ = value;
46 PropertyChanged(this, ref new PropertyChangedEventArgs("state"));
47 }
48 }
Nicolas Jager5750df02016-09-13 11:20:33 -040049 property bool isOutGoing;
Nicolas Jagera92f1312016-08-25 08:01:22 -040050 property int code;
51
52 /* events */
53
54protected:
55 /* properties */
56 void NotifyPropertyChanged(String^ propertyName);
57
Nicolas Jagerf6a10322016-09-06 08:17:49 -040058internal:
Nicolas Jager9edbea32016-10-03 09:13:53 -040059 //void refuse();
60 //void accept();
61 //void cancel();
Nicolas Jagera92f1312016-08-25 08:01:22 -040062
Nicolas Jagerc551c362016-10-01 19:24:50 -040063private:
64 CallStatus state_;
65
Nicolas Jagera92f1312016-08-25 08:01:22 -040066};
67}
68