RAMSES Documentation  27.0.130
Information for RAMSES users and developers
DcsmStatusMessage.h
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // Copyright (C) 2021 BMW AG
3 // -------------------------------------------------------------------------
4 // This Source Code Form is subject to the terms of the Mozilla Public
5 // License, v. 2.0. If a copy of the MPL was not distributed with this
6 // file, You can obtain one at https://mozilla.org/MPL/2.0/.
7 // -------------------------------------------------------------------------
8 
9 #ifndef RAMSES_DCSMSTATUSMESSAGE_H
10 #define RAMSES_DCSMSTATUSMESSAGE_H
11 
13 #include <stdint.h>
14 #include <memory>
15 
16 #if defined(_MSC_VER)
17 __pragma(warning(push))
18 __pragma(warning(disable: 4251))
19 #endif
20 
21 namespace ramses
22 {
23  class DcsmStatusMessageImpl;
28  {
29  public:
34  class StreamStatusMessage const* getAsStreamStatus() const;
35 
40  class ActiveLayoutMessage const* getAsActiveLayout() const;
41 
47 
51  virtual ~DcsmStatusMessage();
52 
57 
62 
66  std::unique_ptr<DcsmStatusMessageImpl> impl;
67 
68  protected:
73  explicit DcsmStatusMessage(std::unique_ptr<DcsmStatusMessageImpl>&& impl_);
74  };
75 
76 
81  {
82  public:
86  enum class Status
87  {
88  Ready = 0,
89  Enabled,
90  Valid,
91  Invalid,
92  Halted,
93  ChannelError,
94  InvalidCommand,
95  VideoResolutionChanged
96  };
97 
102  explicit StreamStatusMessage(Status status);
103 
109 
114  explicit StreamStatusMessage(std::unique_ptr<DcsmStatusMessageImpl>&& impl_);
115  };
116 
117 
122  {
123  public:
127  enum class Layout : uint32_t
128  {
129  Drive = 0,
130  Focus,
131  Gallery,
132  Autonomous,
133  Sport_Road,
134  Sport_Track,
135  };
136 
141  explicit ActiveLayoutMessage(Layout layout);
142 
147  Layout getLayout() const;
148 
153  explicit ActiveLayoutMessage(std::unique_ptr<DcsmStatusMessageImpl>&& impl_);
154  };
155 
160  {
161  public:
165  enum class Status : uint32_t
166  {
167  Unknown = 0,
168  Focused,
169  NotFocused,
170  };
171 
177 
183 
188  explicit WidgetFocusStatusMessage(std::unique_ptr<DcsmStatusMessageImpl>&& impl_);
189  };
190 }
191 
192 #if defined(_MSC_VER)
193 __pragma(warning(pop))
194 #endif
195 #endif
#define RAMSES_API
Definition: APIExport.h:35
A status message containing the instrument cluster's active layout.
Definition: DcsmStatusMessage.h:122
Layout
The possible layout values in the instrument cluster.
Definition: DcsmStatusMessage.h:128
ActiveLayoutMessage(std::unique_ptr< DcsmStatusMessageImpl > &&impl_)
Constructor from impl, only for internal usage.
Layout getLayout() const
Returns the active layout.
ActiveLayoutMessage(Layout layout)
Create an ActiveLayoutMessage object containing the provided layout.
The base class of a message to be sent from DCSM consumer to provider.
Definition: DcsmStatusMessage.h:28
class WidgetFocusStatusMessage const * getAsWidgetFocusStatus() const
Convenience function to get the derived class of DcsmStatusMessage easily.
DcsmStatusMessage(DcsmStatusMessage const &)=delete
Disable copying.
class StreamStatusMessage const * getAsStreamStatus() const
Convenience function to get the derived class of DcsmStatusMessage easily.
class ActiveLayoutMessage const * getAsActiveLayout() const
Convenience function to get the derived class of DcsmStatusMessage easily.
DcsmStatusMessage(std::unique_ptr< DcsmStatusMessageImpl > &&impl_)
Constructor from impl.
virtual ~DcsmStatusMessage()
Default destructor of DcsmStatusMessage.
DcsmStatusMessage(DcsmStatusMessage &&)=delete
Disable moving.
std::unique_ptr< DcsmStatusMessageImpl > impl
Definition: DcsmStatusMessage.h:66
A message containing a stream status.
Definition: DcsmStatusMessage.h:81
StreamStatusMessage(Status status)
Create a StreamStatusMessage object containing the provided status.
Status getStreamStatus() const
Returns the contained status.
StreamStatusMessage(std::unique_ptr< DcsmStatusMessageImpl > &&impl_)
Constructor from impl, only for internal usage.
Status
The states of the video decoder on the instrument cluster.
Definition: DcsmStatusMessage.h:87
A message containing the widget focus state.
Definition: DcsmStatusMessage.h:160
WidgetFocusStatusMessage(Status status)
Create a WidgetFocusStatusMessage object containing the provided status.
Status getWidgetFocusStatus() const
Returns the contained status.
Status
The focus states of the widget on the instrument cluster.
Definition: DcsmStatusMessage.h:166
WidgetFocusStatusMessage(std::unique_ptr< DcsmStatusMessageImpl > &&impl_)
Constructor from impl, only for internal usage.
The RAMSES namespace contains all client side objects and functions used to implement RAMSES applicat...
Definition: AnimatedProperty.h:15
@ Invalid
Invalid semantic.
@ Ready
Request content to be prepare to be shown at any time.