summaryrefslogtreecommitdiff
path: root/PluginRoutingInterfaceCAPI/src-gen/org/genivi/am/RoutingControlObserverStubDefault.h
blob: db1c9397b9713e5c22ea50f2decd5ecce8620e4d (plain)
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
/*
* This file was generated by the CommonAPI Generators.
*
* This file was generated by the CommonAPI Generators.
*
* This file was generated by the CommonAPI Generators.
*
* Copyright (C) 2012, BMW AG
*
* This file is part of GENIVI Project AudioManager.
*
* Contributions are licensed to the GENIVI Alliance under one or more
* Contribution License Agreements.
*
* \copyright
* This Source Code Form is subject to the terms of the
* Mozilla Public License, v. 2.0. If a  copy of the MPL was not distributed with
* this file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
*
* \author Aleksandar Donchev, aleksander.donchev@partner.bmw.de BMW 2013
* \author Christian Linke christian.linke@bmw.de BMW 2013
*
* For further information see http://www.genivi.org/.
*/
#ifndef ORG_GENIVI_AM_Routing_Control_Observer_STUB_DEFAULT_H_
#define ORG_GENIVI_AM_Routing_Control_Observer_STUB_DEFAULT_H_

#include <org/genivi/am/RoutingControlObserverStub.h>

namespace org {
namespace genivi {
namespace am {

/**
 * Provides a default implementation for RoutingControlObserverStubRemoteEvent and
 * RoutingControlObserverStub. Method callbacks have an empty implementation,
 * remote set calls on attributes will always change the value of the attribute
 * to the one received.
 * 
 * Override this stub if you only want to provide a subset of the functionality
 * that would be defined for this service, and/or if you do not need any non-default
 * behaviour.
 */
class RoutingControlObserverStubDefault : public RoutingControlObserverStub {
 public:
    RoutingControlObserverStubDefault();

    RoutingControlObserverStubRemoteEvent* initStubAdapter(const std::shared_ptr<RoutingControlObserverStubAdapter>& stubAdapter);

    virtual const am_RoutingReady_e& getRoutingReadyAttribute();
    virtual void setRoutingReadyAttribute(am_RoutingReady_e value);


    virtual void ackConnect(am_Handle_s handle, am_connectionID_t connectionID, am_Error_e error);

    virtual void ackDisconnect(am_Handle_s handle, am_connectionID_t connectionID, am_Error_e error);

    virtual void ackSetSinkVolumeChange(am_Handle_s handle, am_volume_t volume, am_Error_e error);

    virtual void ackSetSourceVolumeChange(am_Handle_s handle, am_volume_t volume, am_Error_e error);

    virtual void ackSetSourceState(am_Handle_s handle, am_Error_e error);

    virtual void ackSetSinkSoundProperties(am_Handle_s handle, am_Error_e error);

    virtual void ackSetSinkSoundProperty(am_Handle_s handle, am_Error_e error);

    virtual void ackSetSourceSoundProperties(am_Handle_s handle, am_Error_e error);

    virtual void ackSetSourceSoundProperty(am_Handle_s handle, am_Error_e error);

    virtual void ackCrossFading(am_Handle_s handle, am_HotSink_e hotSink, am_Error_e error);

    virtual void ackSourceVolumeTick(am_Handle_s handle, am_sourceID_t sourceID, am_volume_t volume);

    virtual void ackSinkVolumeTick(am_Handle_s handle, am_sinkID_t sinkID, am_volume_t volume);

    virtual void peekDomain(std::string name, am_domainID_t& domainID, am_Error_e& error);

    virtual void registerDomain(am_Domain_s domainData, std::string returnBusname, std::string returnInterface, am_domainID_t& domainID, am_Error_e& error);

    virtual void deregisterDomain(am_domainID_t domainID, am_Error_e& error);

    virtual void registerGateway(am_Gateway_s gatewayData, am_gatewayID_t& gatewayID, am_Error_e& error);

    virtual void deregisterGateway(am_gatewayID_t gatewayID, am_Error_e& error);

    virtual void peekSink(std::string name, am_sinkID_t& sinkID, am_Error_e& error);

    virtual void registerSink(am_Sink_s sinkData, am_sinkID_t& sinkID, am_Error_e& error);

    virtual void deregisterSink(am_sinkID_t sinkID, am_Error_e& error);

    virtual void peekSource(std::string name, am_sourceID_t& sourceID, am_Error_e& error);

    virtual void registerSource(am_Source_s sourceData, am_sourceID_t& sourceID, am_Error_e& error);

    virtual void deregisterSource(am_sourceID_t sourceID, am_Error_e& error);

    virtual void registerCrossfader(am_Crossfader_s crossfaderData, am_crossfaderID_t& crossfaderID, am_Error_e& error);

    virtual void deregisterCrossfader(am_crossfaderID_t crossfaderID, am_Error_e& error);

    virtual void peekSourceClassID(std::string name, am_sourceClass_t& sourceClassID, am_Error_e& error);

    virtual void peekSinkClassID(std::string name, am_sinkClass_t& sinkClassID, am_Error_e& error);

    virtual void hookInterruptStatusChange(am_sourceID_t sourceID, am_InterruptState_e interruptState);

    virtual void hookDomainRegistrationComplete(am_domainID_t domainID);

    virtual void hookSinkAvailablityStatusChange(am_sinkID_t sinkID, am_Availability_s availability);

    virtual void hookSourceAvailablityStatusChange(am_sourceID_t sourceID, am_Availability_s availability);

    virtual void hookDomainStateChange(am_domainID_t domainID, am_DomainState_e domainState);

    virtual void hookTimingInformationChanged(am_connectionID_t connectionID, am_timeSync_t delay);

    virtual void sendChangedData(am_EarlyData_L earlyData);

    virtual void updateGateway(am_gatewayID_t gatewayID, am_ConnectionFormat_L listSourceFormats, am_ConnectionFormat_L listSinkFormats, am_Convertion_L convertionMatrix, am_Error_e& error);

    virtual void updateSink(am_sinkID_t sinkID, am_sinkClass_t sinkClassID, am_SoundProperty_L listSoundProperties, am_ConnectionFormat_L listConnectionFormats, am_MainSoundProperty_L listMainSoundProperties, am_Error_e& error);

    virtual void updateSource(am_sourceID_t sourceID, am_sourceClass_t sourceClassID, am_SoundProperty_L listSoundProperties, am_ConnectionFormat_L listConnectionFormats, am_MainSoundProperty_L listMainSoundProperties, am_Error_e& error);

    virtual void ackSetVolumes(am_Handle_s handle, am_Volumes_L listvolumes, am_Error_e error);

    virtual void ackSinkNotificationConfiguration(am_Handle_s handle, am_Error_e error);

    virtual void ackSourceNotificationConfiguration(am_Handle_s handle, am_Error_e error);

    virtual void hookSinkNotificationDataChange(am_sinkID_t sinkID, am_NotificationPayload_s payload);

    virtual void hookSourceNotificationDataChange(am_sourceID_t sourceID, am_NotificationPayload_s payload);

    virtual void confirmRoutingRundown(std::string domainName);

    

 protected:
    virtual void onRemoteRoutingReadyAttributeChanged();
    virtual bool trySetRoutingReadyAttribute(am_RoutingReady_e value);
    virtual bool validateRoutingReadyAttributeRequestedValue(const am_RoutingReady_e& value);

    
 private:
    class RemoteEventHandler: public RoutingControlObserverStubRemoteEvent {
     public:
        RemoteEventHandler(RoutingControlObserverStubDefault* defaultStub);

        virtual bool onRemoteSetRoutingReadyAttribute(am_RoutingReady_e value);
        virtual void onRemoteRoutingReadyAttributeChanged();


     private:
        RoutingControlObserverStubDefault* defaultStub_;
    };

    RemoteEventHandler remoteEventHandler_;
    std::shared_ptr<RoutingControlObserverStubAdapter> stubAdapter_;

    am_RoutingReady_e routingReadyAttributeValue_;
};

} // namespace am
} // namespace genivi
} // namespace org

#endif // ORG_GENIVI_AM_Routing_Control_Observer_STUB_DEFAULT_H_