forked from project-chip/connectedhomeip
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsimple-app-helper.h
101 lines (87 loc) · 3.12 KB
/
simple-app-helper.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
/*
*
* Copyright (c) 2023 Project CHIP Authors
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include "core/CastingPlayer.h"
#include "core/CastingPlayerDiscovery.h"
#include "core/IdentificationDeclarationOptions.h"
#include "core/Types.h"
#include <platform/CHIPDeviceLayer.h>
/**
* @brief Matter deviceType that the Linux tv-casting-app will discover over Commissionable Node discovery (DNS-SD)
*
* 35 represents device type of Matter Video Player
*/
const uint64_t kTargetPlayerDeviceType = 35;
/**
* @brief Test values used for demo command and attribute read/subscribe calls
*/
const char kContentURL[] = "https://www.test.com/videoid";
const char kContentDisplayStr[] = "Test video";
const unsigned short kTimedInvokeCommandTimeoutMs = 5 * 1000;
const uint16_t kMinIntervalFloorSeconds = 0;
const uint16_t kMaxIntervalCeilingSeconds = 1;
/**
* @brief Singleton that reacts to CastingPlayer discovery results
*/
class DiscoveryDelegateImpl : public matter::casting::core::DiscoveryDelegate
{
private:
DiscoveryDelegateImpl(){};
static DiscoveryDelegateImpl * _discoveryDelegateImpl;
int commissionersCount = 0;
public:
static DiscoveryDelegateImpl * GetInstance();
/**
* @brief Called when a new CastingPlayer is discovered
*
* @param player the discovered CastingPlayer
*/
void HandleOnAdded(matter::casting::memory::Strong<matter::casting::core::CastingPlayer> player) override;
/**
* @brief Called when there are updates to the Attributes of a previously discovered CastingPlayer
*
* @param player the updated CastingPlayer
*/
void HandleOnUpdated(matter::casting::memory::Strong<matter::casting::core::CastingPlayer> player) override;
};
/**
* @brief Linux tv-casting-app's onCompleted handler for CastingPlayer.VerifyOrEstablishConnection API
*/
void ConnectionHandler(CHIP_ERROR err, matter::casting::core::CastingPlayer * castingPlayer);
#if defined(ENABLE_CHIP_SHELL)
/**
* @brief Register CHIP Shell commands for the Linux tv-casting-app CLI
*/
void RegisterCommands();
/**
* @brief Top level handler that parses text entered on the Linux tv-casting-app CLI and invokes the appropriate handler
*/
CHIP_ERROR CommandHandler(int argc, char ** argv);
/**
* @brief Prints all the commands available on the Linux tv-casting-app CLI
*/
CHIP_ERROR PrintAllCommands();
/**
* @brief Implements the "print-bindings" command
*/
void PrintBindings();
/**
* @brief Implements the "print-fabrics" command
*/
void PrintFabrics();
#endif