Skip to content

Commit bbb43f6

Browse files
committed
RDKEMW-1000 : Add COM-RPC support to UnifiedCASManagement plugin
Reason For Change: Adding UnifiedCASManagement interface header Changes Test procedure : Test UnifiedCASManagement Priority: P1 Signed-off-by: naveen-0206 <naveenkumar.t@ltts.com>
1 parent 9264df6 commit bbb43f6

File tree

2 files changed

+95
-0
lines changed

2 files changed

+95
-0
lines changed

apis/Ids.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,6 +344,9 @@ namespace Exchange {
344344
ID_GOOGLE_CAST_RM_DELEGATE = ID_GOOGLE_CAST + 2,
345345
ID_GOOGLE_CAST_RM_DELEGATE_NOTIFICATION = ID_GOOGLE_CAST + 3,
346346

347+
ID_UNIFIEDCASMANAGEMENT = ID_ENTOS_OFFSET + 0x490,
348+
ID_UNIFIEDCASMANAGEMENT_NOTIFICATION = ID_UNIFIEDCASMANAGEMENT + 1,
349+
347350
}; // enum IDS
348351

349352
} // namespace Exchange
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
/*
2+
* If not stated otherwise in this file or this component's LICENSE file the
3+
* following copyright and licenses apply:
4+
*
5+
* Copyright 2026 RDK Management
6+
*
7+
* Licensed under the Apache License, Version 2.0 (the "License");
8+
* you may not use this file except in compliance with the License.
9+
* You may obtain a copy of the License at
10+
*
11+
* http://www.apache.org/licenses/LICENSE-2.0
12+
*
13+
* Unless required by applicable law or agreed to in writing, software
14+
* distributed under the License is distributed on an "AS IS" BASIS,
15+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16+
* See the License for the specific language governing permissions and
17+
* limitations under the License.
18+
*/
19+
20+
#pragma once
21+
#include "Module.h"
22+
23+
// @stubgen:include <com/IIteratorType.h>
24+
25+
namespace WPEFramework
26+
{
27+
namespace Exchange
28+
{
29+
/* @json 1.0.0 @text:keep */
30+
struct EXTERNAL IUnifiedCASManagement : virtual public Core::IUnknown
31+
{
32+
enum { ID = ID_UNIFIEDCASMANAGEMENT };
33+
34+
// @event
35+
struct EXTERNAL INotification : virtual public Core::IUnknown
36+
{
37+
enum { ID = ID_UNIFIEDCASMANAGEMENT_NOTIFICATION };
38+
39+
// @text OnDataReceived
40+
// @brief Sent when the CAS needs to send data to the caller
41+
// @param payload Data to transfer. Can be base64 coded if required
42+
// @param source Origin of the data (PUBLIC or PRIVATE)
43+
virtual void OnDataReceived(const string& payload, const string& source) {}
44+
};
45+
46+
// @brief Register a notification callback
47+
// @param notification: The notification callback object
48+
// @retval Core::ERROR_NONE: Registration successful
49+
// @retval Core::ERROR_ALREADY_CONNECTED: Callback already registered
50+
virtual Core::hresult Register(IUnifiedCASManagement::INotification* notification) = 0;
51+
52+
// @brief Unregister a notification callback
53+
// @param notification: The notification callback object to remove
54+
// @retval Core::ERROR_NONE: Unregistration successful
55+
// @retval Core::ERROR_UNKNOWN_KEY: Callback not found
56+
virtual Core::hresult Unregister(IUnifiedCASManagement::INotification* notification) = 0;
57+
58+
// @text manage
59+
// @brief Manage a well-known CAS (setup CAS management session)
60+
// @param mediaurl The URL to tune to (tune://, ocap://, http://, https://)
61+
// @param mode The use of the tune request (MODE_NONE, MODE_LIVE, MODE_RECORD, MODE_PLAYBACK)
62+
// @param managementType Type of CAS management (MANAGE_NONE, MANAGE_FULL, MANAGE_NO_PSI, MANAGE_NO_TUNER)
63+
// @param casinitdata CAS specific initdata for the selected media
64+
// @param casocdmid The well-known OCDM ID of the CAS to use
65+
// @param success
66+
// @retval Core::ERROR_NONE: Operation successful
67+
// @retval Core::ERROR_GENERAL: Operation failed
68+
virtual Core::hresult Manage(const string& mediaurl,
69+
const string& mode,
70+
const string& managementType,
71+
const string& casinitdata,
72+
const string& casocdmid,
73+
bool& success /* @out */) = 0;
74+
75+
// @text unmanage
76+
// @brief Destroy a management session
77+
// @param success
78+
// @retval Core::ERROR_NONE: Operation successful
79+
// @retval Core::ERROR_GENERAL: Operation failed
80+
virtual Core::hresult Unmanage(bool& success /* @out */) = 0;
81+
82+
// @text send
83+
// @brief Sends data to the remote CAS
84+
// @param payload Data to transfer. Can be base64 coded if required
85+
// @param source Origin of the data (PUBLIC or PRIVATE)
86+
// @param success
87+
// @retval Core::ERROR_NONE: Operation successful
88+
// @retval Core::ERROR_GENERAL: Operation failed
89+
virtual Core::hresult Send(const string& payload, const string& source, bool& success /* @out */) = 0;
90+
};
91+
} // namespace Exchange
92+
} // namespace WPEFramework

0 commit comments

Comments
 (0)