summaryrefslogtreecommitdiff
path: root/docs/Classes/SDLSubscribeButton.html
blob: 8f763893ec8cf0ba1ab84a21082c495a2ddbfeb4 (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
<h1>SDLSubscribeButton Class Reference</h1>

<h3>Section Contents</h3>

<ul>
  <li><a href="#section--initWithHandler:">-initWithHandler:</a></li>
  <li><a href="#section--initWithButtonName:handler:">-initWithButtonName:handler:</a></li>
  <li><a href="#section-handler">handler</a></li>
  <li><a href="#section-buttonName">buttonName</a></li>
</ul>

<h3>Overview</h3>

<p>Establishes a subscription to button notifications for HMI buttons. Buttons
 are not necessarily physical buttons, but can also be &ldquo;soft&rdquo; buttons on a
 touch screen, depending on the display in the vehicle. Once subscribed to a
 particular button, an application will receive both
 SDLOnButtonEvent and SDLOnButtonPress notifications
 whenever that button is pressed. The application may also unsubscribe from
 notifications for a button by invoking the SDLUnsubscribeButton
 operation
 <p>
 When a button is depressed, an SDLOnButtonEvent notification is
 sent to the application with a ButtonEventMode of BUTTONDOWN. When that same
 button is released, an SDLOnButtonEvent notification is sent to the
 application with a ButtonEventMode of BUTTONUP
 <p>
 When the duration of a button depression (that is, time between depression
 and release) is less than two seconds, an SDLOnButtonPress
 notification is sent to the application (at the moment the button is
 released) with a ButtonPressMode of SHORT. When the duration is two or more
 seconds, an SDLOnButtonPress notification is sent to the
 application (at the moment the two seconds have elapsed) with a
 ButtonPressMode of LONG
 <p>
 The purpose of SDLOnButtonPress notifications is to allow for
 programmatic detection of long button presses similar to those used to store
 presets while listening to the radio, for example
 <p>
 When a button is depressed and released, the sequence in which notifications
 will be sent to the application is as follows:
 <p>
 For short presses:<br/>
 <ul>
 <li>OnButtonEvent (ButtonEventMode = BUTTONDOWN)</li>
 <li>OnButtonEvent (ButtonEventMode = BUTTONUP)</li>
 <li>OnButtonPress (ButtonPressMode = SHORT)</li>
 </ul>
 <p>
 For long presses:<br/>
 <ul>
 <li>OnButtonEvent (ButtonEventMode = BUTTONDOWN)</li>
 <li>OnButtonEvent (ButtonEventMode = BUTTONUP)</li>
 <li>OnButtonPress (ButtonPressMode = LONG)</li>
 </ul>
 <p>
 <b>HMILevel needs to be FULL, LIMITED or BACKGROUND</b>
 </p></p>

<p>Since SmartDeviceLink 1.0<br/>
 See SDLUnsubscribeButton</p>


<section class="section task-group-section">
  <h3 id="section--initWithHandler:">
      -initWithHandler:
  </h3>
  
  <p>Construct a SDLSubscribeButton with a handler callback when an event occurs.</p>

  
  
  <h4>Objective-C</h4>
  <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span><span class="nf">initWithHandler</span><span class="p">:</span>
    <span class="p">(</span><span class="n">nullable</span> <span class="n"><a href="../Type%20Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCButtonNotificationHandler">SDLRPCButtonNotificationHandler</a></span><span class="p">)</span><span class="nv">handler</span><span class="p">;</span></code></pre>

  
  <h4>Swift</h4>
  <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">handler</span><span class="p">:</span> <span class="kt"><a href="../Type%20Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCButtonNotificationHandler">SDLRPCButtonNotificationHandler</a></span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>

  
  
  <h4>Parameters</h4>
  <dl>
      <dt>handler</dt>
      <dd><p>A callback that will be called when a button event occurs for the subscribed button.</p></dd>
  </dl>
  <div>
    <h4>Return Value</h4>
    <p>An SDLSubscribeButton object</p>
  </div>
  
  <h3 id="section--initWithButtonName:handler:">
      -initWithButtonName:handler:
  </h3>
  
  <p>Construct a SDLSubscribeButton with a handler callback when an event occurs with a button name.</p>

  
  
  <h4>Objective-C</h4>
  <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">instancetype</span><span class="p">)</span>
    <span class="nf">initWithButtonName</span><span class="p">:(</span><span class="n">nonnull</span> <span class="n"><a href="../Type%20Definitions.html#/c:SDLButtonName.h@T@SDLButtonName">SDLButtonName</a></span><span class="p">)</span><span class="nv">buttonName</span>
               <span class="nf">handler</span><span class="p">:(</span><span class="n">nullable</span> <span class="n"><a href="../Type%20Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCButtonNotificationHandler">SDLRPCButtonNotificationHandler</a></span><span class="p">)</span><span class="nv">handler</span><span class="p">;</span></code></pre>

  
  <h4>Swift</h4>
  <pre class="highlight swift"><code><span class="nf">init</span><span class="p">(</span><span class="nv">buttonName</span><span class="p">:</span> <span class="kt"><a href="../Type%20Definitions.html#/c:SDLButtonName.h@T@SDLButtonName">SDLButtonName</a></span><span class="p">,</span> <span class="nv">handler</span><span class="p">:</span> <span class="kt"><a href="../Type%20Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCButtonNotificationHandler">SDLRPCButtonNotificationHandler</a></span><span class="p">?</span> <span class="o">=</span> <span class="kc">nil</span><span class="p">)</span></code></pre>

  
  
  <h4>Parameters</h4>
  <dl>
      <dt>buttonName</dt>
      <dd><p>The name of the button to subscribe to</p></dd>
      <dt>handler</dt>
      <dd><p>A callback that will be called when a button event occurs for the subscribed button</p></dd>
  </dl>
  <div>
    <h4>Return Value</h4>
    <p>An SDLSubscribeButton object</p>
  </div>
  
  <h3 id="section-handler">
      handler
  </h3>
  
  <p>A handler that will let you know when the button you subscribed to is selected.</p>
<div class="aside aside-warning">
    <p class="aside-title">Warning</p>
    This will only work if you use SDLManager.

</div>

  
  
  <h4>Objective-C</h4>
  <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">copy</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span>
    <span class="n"><a href="../Type%20Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCButtonNotificationHandler">SDLRPCButtonNotificationHandler</a></span> <span class="n">_Nonnull</span> <span class="n">handler</span><span class="p">;</span></code></pre>

  
  <h4>Swift</h4>
  <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">handler</span><span class="p">:</span> <span class="kt"><a href="../Type%20Definitions.html#/c:SDLNotificationConstants.h@T@SDLRPCButtonNotificationHandler">SDLRPCButtonNotificationHandler</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>

  
  
  
  <h3 id="section-buttonName">
      buttonName
  </h3>
  
  <p>The name of the button to subscribe to
@discussion An enum value, see <i>SDLButtonName</i></p>

  
  
  <h4>Objective-C</h4>
  <pre class="highlight objective_c"><code><span class="k">@property</span> <span class="p">(</span><span class="n">readwrite</span><span class="p">,</span> <span class="n">strong</span><span class="p">,</span> <span class="n">nonatomic</span><span class="p">)</span> <span class="n"><a href="../Type%20Definitions.html#/c:SDLButtonName.h@T@SDLButtonName">SDLButtonName</a></span> <span class="n">_Nonnull</span> <span class="n">buttonName</span><span class="p">;</span></code></pre>

  
  <h4>Swift</h4>
  <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">buttonName</span><span class="p">:</span> <span class="kt"><a href="../Type%20Definitions.html#/c:SDLButtonName.h@T@SDLButtonName">SDLButtonName</a></span> <span class="p">{</span> <span class="k">get</span> <span class="k">set</span> <span class="p">}</span></code></pre>

  
  
  
</section>