Coverage Report

Created: 2025-06-20 06:55

/src/connectedhomeip/examples/all-clusters-app/all-clusters-common/include/chime-instance.h
Line
Count
Source
1
/*
2
 *
3
 *    Copyright (c) 2025 Project CHIP Authors
4
 *    All rights reserved.
5
 *
6
 *    Licensed under the Apache License, Version 2.0 (the "License");
7
 *    you may not use this file except in compliance with the License.
8
 *    You may obtain a copy of the License at
9
 *
10
 *        http://www.apache.org/licenses/LICENSE-2.0
11
 *
12
 *    Unless required by applicable law or agreed to in writing, software
13
 *    distributed under the License is distributed on an "AS IS" BASIS,
14
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
 *    See the License for the specific language governing permissions and
16
 *    limitations under the License.
17
 */
18
19
#pragma once
20
21
#include <app/clusters/chime-server/chime-server.h>
22
#include <app/util/config.h>
23
#include <cstring>
24
25
namespace chip {
26
namespace app {
27
namespace Clusters {
28
29
/**
30
 * The application delegate to define the options & implement commands.
31
 */
32
class ChimeCommandDelegate : public ChimeDelegate
33
{
34
    static ChimeCommandDelegate instance;
35
    static chip::app::Clusters::Chime::Structs::ChimeSoundStruct::Type supportedChimes[];
36
37
public:
38
    CHIP_ERROR GetChimeSoundByIndex(uint8_t chimeIndex, uint8_t & chimeID, MutableCharSpan & name);
39
40
    CHIP_ERROR GetChimeIDByIndex(uint8_t chimeIndex, uint8_t & chimeID);
41
42
    Protocols::InteractionModel::Status PlayChimeSound();
43
44
    ChimeCommandDelegate()  = default;
45
    ~ChimeCommandDelegate() = default;
46
47
2
    static inline ChimeCommandDelegate & getInstance() { return instance; }
48
};
49
50
} // namespace Clusters
51
} // namespace app
52
} // namespace chip