aboutsummaryrefslogtreecommitdiff
path: root/doc/html/index.html
diff options
context:
space:
mode:
authorDave Clark <[email protected]>2018-03-08 15:12:56 -0500
committerDave Clark <[email protected]>2018-03-08 15:12:56 -0500
commit1f9ad132c6d6288d9a842120c05a1a4431800e1c (patch)
tree6b9e178c558d1055b1cc4d0d6ab989ee3fc76448 /doc/html/index.html
parentUpdate CHANGELOG.md (diff)
downloadgfesdk-1f9ad132c6d6288d9a842120c05a1a4431800e1c.tar.xz
gfesdk-1f9ad132c6d6288d9a842120c05a1a4431800e1c.zip
Push GfeSDK 1.1.191
Plus documentation updates
Diffstat (limited to 'doc/html/index.html')
-rw-r--r--doc/html/index.html6
1 files changed, 3 insertions, 3 deletions
diff --git a/doc/html/index.html b/doc/html/index.html
index b8e54b8..9a665c8 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -91,14 +91,14 @@ $(document).ready(function(){initNavTree('index.html','');});
<h4>C++ Bindings</h4>
<div class="fragment"><div class="line"> <a class="code" href="struct_gfe_s_d_k_1_1_create_input_params.html">GfeSDK::CreateInputParams</a> createParams;</div><div class="line"> createParams.appName = <span class="stringliteral">&quot;gfesdk_dx_sample&quot;</span>; <span class="comment">// appName will only be used/visible if GFE cannot identify your game</span></div><div class="line"> createParams.pollForCallbacks = <span class="keyword">true</span>; <span class="comment">// We will poll for callbacks in order to execute callbacks from game loop</span></div><div class="line"> createParams.requiredScopes = {</div><div class="line"> GfeSDK::NVGSDK_SCOPE_HIGHLIGHTS,</div><div class="line"> GfeSDK::NVGSDK_SCOPE_HIGHLIGHTS_VIDEO,</div><div class="line"> GfeSDK::NVGSDK_SCOPE_HIGHLIGHTS_SCREENSHOT</div><div class="line"> };</div><div class="line"> createParams.notificationCallback = std::bind(&amp;HighlightsWrapper::OnNotification, <span class="keyword">this</span>, _1, _2);</div><div class="line"></div><div class="line"> <a class="code" href="struct_gfe_s_d_k_1_1_create_response.html">GfeSDK::CreateResponse</a> response;</div><div class="line"> <a class="code" href="class_gfe_s_d_k_1_1_core.html">GfeSDK::Core</a>* gfesdkCore = <a class="code" href="class_gfe_s_d_k_1_1_core.html#a0cb93acb8b273072cd37348c9b206e0d">GfeSDK::Core::Create</a>(createParams, response);</div><div class="line"> <span class="keywordflow">if</span> (GfeSDK::NVGSDK_SUCCEEDED(response.returnCode))</div><div class="line"> {</div><div class="line"> <span class="comment">// Valid handle has been returned</span></div><div class="line"> LOG(<span class="stringliteral">&quot;Success: %s&quot;</span>, GfeSDK::NVGSDK_RetCodeToString(response.returnCode));</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GFE version %s&quot;</span>, response.nvidiaGfeVersion.c_str());</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GfeSDK version %d.%d&quot;</span>, response.versionMajor, response.versionMinor);</div><div class="line"> <span class="keywordflow">switch</span> (response.returnCode)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">case</span> GfeSDK::NVGSDK_SUCCESS_VERSION_OLD_GFE:</div><div class="line"> LOG(<span class="stringliteral">&quot;Compatible, but the user should update to the latest version of GFE.&quot;</span>);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> <span class="keywordflow">case</span> GfeSDK::NVGSDK_SUCCESS_VERSION_OLD_SDK:</div><div class="line"> LOG(<span class="stringliteral">&quot;Compatible, but this application should update to a more recent GfeSDK to get latest features/bugfixes&quot;</span>);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> }</div><div class="line"> }</div><div class="line"> <span class="keywordflow">else</span></div><div class="line"> {</div><div class="line"> <span class="comment">// No valid handle</span></div><div class="line"> LOG(<span class="stringliteral">&quot;Failure: %s&quot;</span>, GfeSDK::NVGSDK_RetCodeToString(response.returnCode));</div><div class="line"> <span class="keywordflow">switch</span> (response.returnCode)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">case</span> GfeSDK::NVGSDK_ERR_SDK_VERSION:</div><div class="line"> LOG(<span class="stringliteral">&quot;This version of the SDK is too old to communicate with the user&#39;s SDK. We&#39;re never planning on this happening.&quot;</span>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GFE version %s&quot;</span>, response.nvidiaGfeVersion.c_str());</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GfeSDK version %d.%d&quot;</span>, response.versionMajor, response.versionMinor);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> <span class="keywordflow">case</span> GfeSDK::NVGSDK_SUCCESS_VERSION_OLD_SDK:</div><div class="line"> LOG(<span class="stringliteral">&quot;The installed version of GFE is too old to continue. User must upgrade.&quot;</span>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GFE version %s&quot;</span>, response.nvidiaGfeVersion.c_str());</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GfeSDK version %d.%d&quot;</span>, response.versionMajor, response.versionMinor);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> }</div><div class="line"> <span class="keywordflow">return</span>;</div><div class="line"> }</div></div><!-- fragment --><p> // After using GfeSDK</p>
<div class="fragment"><div class="line"> <span class="keyword">delete</span> gfesdkCore;</div></div><!-- fragment --> <h4>C API</h4>
-<div class="fragment"><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___create_input_params.html">NVGSDK_CreateInputParams</a> inParams;</div><div class="line"> memset(&amp;inParams, 0, <span class="keyword">sizeof</span>(inParams));</div><div class="line"></div><div class="line"> NVGSDK_Scope scopes[] = { NVGSDK_SCOPE_HIGHLIGHTS, NVGSDK_SCOPE_HIGHLIGHTS_VIDEO, NVGSDK_SCOPE_HIGHLIGHTS_SCREENSHOT };</div><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___scope_permission.html">NVGSDK_ScopePermission</a> scopePermissions[COUNT_OF(scopes)];</div><div class="line"></div><div class="line"> inParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#ac754df94f208f494a0a339d614bb18f3">appName</a> = <span class="stringliteral">&quot;gfesdk_dx_sample&quot;</span>;</div><div class="line"> inParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#a0bd7568c1cb3fad975562055b4581195">pollForCallbacks</a> = <span class="keyword">true</span>;</div><div class="line"> inParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#ae0ada093d3d60a2f70226932b1a5b6fb">scopeTable</a> = &amp;scopes;</div><div class="line"> inParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#a8941e0c803ec2f821101cfc55a7f60a3">scopeTableSize</a> = COUNT_OF(scopes);</div><div class="line"> inParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#adde61c0a8ea3a728c57081ec97081a72">notificationCallback</a> = handleNotification;</div><div class="line"></div><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___create_response.html">NVGSDK_CreateResponse</a> outParams;</div><div class="line"> memset(&amp;outParams, 0, <span class="keyword">sizeof</span>(outParams));</div><div class="line"> outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a9bc3e75a15cf9fcbc1084f2a7fde5a8f">scopePermissionTable</a> = &amp;scopePermissions;</div><div class="line"> outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a60aec9d469d10e8fe0efd7c010fb96e7">scopePermissionTableSize</a> = COUNT_OF(scopes);</div><div class="line"></div><div class="line"> NVGSDK_RetCode rc = <a class="code" href="isdk_8h.html#a95b3999b5808922e29a36375c22014b8">NVGSDK_Create</a>(&amp;g_sdk, &amp;inParams, &amp;outParams);</div><div class="line"> <span class="keywordflow">if</span> (NVGSDK_SUCCEEDED(rc))</div><div class="line"> {</div><div class="line"> <span class="comment">// Valid handle has been returned</span></div><div class="line"> LOG(<span class="stringliteral">&quot;Success: %s&quot;</span>, NVGSDK_RetCodeToString(rc));</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GFE version %s&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aacdf644f5f6eb996dad6bb90b4145deb">gfeVersionStr</a>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GfeSDK version %d.%d&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aa595214daf18bdbc638ef98e1f22a30f">versionMajor</a>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#ad1687ba8b8d53a75b13a60874f3822be">versionMinor</a>);</div><div class="line"> <span class="keywordflow">switch</span> (rc)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">case</span> NVGSDK_SUCCESS_VERSION_OLD_GFE:</div><div class="line"> LOG(<span class="stringliteral">&quot;Compatible, but the user should update to the latest version of GFE.&quot;</span>);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> <span class="keywordflow">case</span> NVGSDK_SUCCESS_VERSION_OLD_SDK:</div><div class="line"> LOG(<span class="stringliteral">&quot;Compatible, but this application should update to a more recent GfeSDK to get latest features/bugfixes&quot;</span>);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> }</div><div class="line"> }</div><div class="line"> <span class="keywordflow">else</span></div><div class="line"> {</div><div class="line"> <span class="comment">// No valid handle</span></div><div class="line"> LOG(<span class="stringliteral">&quot;Failure: %s&quot;</span>, NVGSDK_RetCodeToString(rc));</div><div class="line"> <span class="keywordflow">switch</span> (rc)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">case</span> NVGSDK_ERR_SDK_VERSION:</div><div class="line"> LOG(<span class="stringliteral">&quot;This version of the SDK is too old to communicate with the user&#39;s SDK. We&#39;re never planning on this happening.&quot;</span>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GFE version %s&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aacdf644f5f6eb996dad6bb90b4145deb">gfeVersionStr</a>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GfeSDK version %d.%d&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aa595214daf18bdbc638ef98e1f22a30f">versionMajor</a>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#ad1687ba8b8d53a75b13a60874f3822be">versionMinor</a>);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> <span class="keywordflow">case</span> NVGSDK_SUCCESS_VERSION_OLD_SDK:</div><div class="line"> LOG(<span class="stringliteral">&quot;The installed version of GFE is too old to continue. User must upgrade.&quot;</span>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GFE version %s&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aacdf644f5f6eb996dad6bb90b4145deb">gfeVersionStr</a>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GfeSDK version %d.%d&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aa595214daf18bdbc638ef98e1f22a30f">versionMajor</a>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#ad1687ba8b8d53a75b13a60874f3822be">versionMinor</a>);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> }</div><div class="line"> <span class="keywordflow">return</span>;</div><div class="line"> }</div></div><!-- fragment --><p> // After using GfeSDK</p>
+<div class="fragment"><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___create_input_params.html">NVGSDK_CreateInputParams</a> inParams;</div><div class="line"> memset(&amp;inParams, 0, <span class="keyword">sizeof</span>(inParams));</div><div class="line"></div><div class="line"> NVGSDK_Scope scopes[] = { NVGSDK_SCOPE_HIGHLIGHTS, NVGSDK_SCOPE_HIGHLIGHTS_VIDEO, NVGSDK_SCOPE_HIGHLIGHTS_SCREENSHOT };</div><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___scope_permission.html">NVGSDK_ScopePermission</a> scopePermissions[COUNT_OF(scopes)];</div><div class="line"></div><div class="line"> inParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#ac754df94f208f494a0a339d614bb18f3">appName</a> = <span class="stringliteral">&quot;gfesdk_dx_sample&quot;</span>;</div><div class="line"> inParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#a0bd7568c1cb3fad975562055b4581195">pollForCallbacks</a> = <span class="keyword">true</span>;</div><div class="line"> inParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#ae0ada093d3d60a2f70226932b1a5b6fb">scopeTable</a> = &amp;scopes[0];</div><div class="line"> inParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#a8941e0c803ec2f821101cfc55a7f60a3">scopeTableSize</a> = COUNT_OF(scopes);</div><div class="line"> inParams.<a class="code" href="struct_n_v_g_s_d_k___create_input_params.html#adde61c0a8ea3a728c57081ec97081a72">notificationCallback</a> = handleNotification;</div><div class="line"></div><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___create_response.html">NVGSDK_CreateResponse</a> outParams;</div><div class="line"> memset(&amp;outParams, 0, <span class="keyword">sizeof</span>(outParams));</div><div class="line"> outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a9bc3e75a15cf9fcbc1084f2a7fde5a8f">scopePermissionTable</a> = &amp;scopePermissions[0];</div><div class="line"> outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a60aec9d469d10e8fe0efd7c010fb96e7">scopePermissionTableSize</a> = COUNT_OF(scopes);</div><div class="line"></div><div class="line"> NVGSDK_RetCode rc = <a class="code" href="isdk_8h.html#a95b3999b5808922e29a36375c22014b8">NVGSDK_Create</a>(&amp;g_sdk, &amp;inParams, &amp;outParams);</div><div class="line"> <span class="keywordflow">if</span> (NVGSDK_SUCCEEDED(rc))</div><div class="line"> {</div><div class="line"> <span class="comment">// Valid handle has been returned</span></div><div class="line"> LOG(<span class="stringliteral">&quot;Success: %s&quot;</span>, NVGSDK_RetCodeToString(rc));</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GFE version %s&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aacdf644f5f6eb996dad6bb90b4145deb">gfeVersionStr</a>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GfeSDK version %d.%d&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aa595214daf18bdbc638ef98e1f22a30f">versionMajor</a>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#ad1687ba8b8d53a75b13a60874f3822be">versionMinor</a>);</div><div class="line"> <span class="keywordflow">switch</span> (rc)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">case</span> NVGSDK_SUCCESS_VERSION_OLD_GFE:</div><div class="line"> LOG(<span class="stringliteral">&quot;Compatible, but the user should update to the latest version of GFE.&quot;</span>);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> <span class="keywordflow">case</span> NVGSDK_SUCCESS_VERSION_OLD_SDK:</div><div class="line"> LOG(<span class="stringliteral">&quot;Compatible, but this application should update to a more recent GfeSDK to get latest features/bugfixes&quot;</span>);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> }</div><div class="line"> }</div><div class="line"> <span class="keywordflow">else</span></div><div class="line"> {</div><div class="line"> <span class="comment">// No valid handle</span></div><div class="line"> LOG(<span class="stringliteral">&quot;Failure: %s&quot;</span>, NVGSDK_RetCodeToString(rc));</div><div class="line"> <span class="keywordflow">switch</span> (rc)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">case</span> NVGSDK_ERR_SDK_VERSION:</div><div class="line"> LOG(<span class="stringliteral">&quot;This version of the SDK is too old to communicate with the user&#39;s SDK. We&#39;re never planning on this happening.&quot;</span>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GFE version %s&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aacdf644f5f6eb996dad6bb90b4145deb">gfeVersionStr</a>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GfeSDK version %d.%d&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aa595214daf18bdbc638ef98e1f22a30f">versionMajor</a>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#ad1687ba8b8d53a75b13a60874f3822be">versionMinor</a>);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> <span class="keywordflow">case</span> NVGSDK_SUCCESS_VERSION_OLD_SDK:</div><div class="line"> LOG(<span class="stringliteral">&quot;The installed version of GFE is too old to continue. User must upgrade.&quot;</span>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GFE version %s&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aacdf644f5f6eb996dad6bb90b4145deb">gfeVersionStr</a>);</div><div class="line"> LOG(<span class="stringliteral">&quot;PC is running GfeSDK version %d.%d&quot;</span>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#aa595214daf18bdbc638ef98e1f22a30f">versionMajor</a>, outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#ad1687ba8b8d53a75b13a60874f3822be">versionMinor</a>);</div><div class="line"> <span class="keywordflow">break</span>;</div><div class="line"> }</div><div class="line"> <span class="keywordflow">return</span>;</div><div class="line"> }</div></div><!-- fragment --><p> // After using GfeSDK</p>
<div class="fragment"><div class="line"> <a class="code" href="isdk_8h.html#ab63d1f433313209b1febbf5736b61463">NVGSDK_Release</a>(g_sdk);</div></div><!-- fragment --> <p>The Create call will inform the app if one or more scopes require user permission. If so, make this call. It will display the overlay UI.</p>
<h4>C++ Bindings</h4>
<div class="fragment"><div class="line"> <span class="comment">// Request Permissions if user hasn&#39;t decided yet</span></div><div class="line"> <a class="code" href="struct_gfe_s_d_k_1_1_request_permissions_params.html">GfeSDK::RequestPermissionsParams</a> requestPermissionsParams;</div><div class="line"></div><div class="line"> <span class="comment">// &#39;response&#39; came from create call. It tells us which permissions we requested during Create,</span></div><div class="line"> <span class="comment">// but the user hasn&#39;t yet made a decision on</span></div><div class="line"> <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp;&amp; entry : response.scopePermissions)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">if</span> (entry.second == GfeSDK::NVGSDK_PERMISSION_MUST_ASK)</div><div class="line"> {</div><div class="line"> requestPermissionsParams.scopes.push_back(entry.first);</div><div class="line"> }</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordflow">if</span> (!requestPermissionsParams.scopes.empty())</div><div class="line"> {</div><div class="line"> <span class="comment">// If the user hasn&#39;t given permission for recording yet, ask them to do so now via overlay</span></div><div class="line"> m_gfesdk-&gt;RequestPermissionsAsync(requestPermissionsParams, [<span class="keyword">this</span>, defaultLocale, highlights, numHighlights](GfeSDK::NVGSDK_RetCode rc, <span class="keywordtype">void</span>* cbContext) {</div><div class="line"> UpdateLastResultString(rc);</div><div class="line"> <span class="keywordflow">if</span> (GfeSDK::NVGSDK_SUCCEEDED(rc))</div><div class="line"> {</div><div class="line"> ConfigureHighlights(defaultLocale, highlights, numHighlights);</div><div class="line"> }</div><div class="line"> });</div><div class="line"> }</div><div class="line"> <span class="keywordflow">else</span></div><div class="line"> {</div><div class="line"> <span class="comment">// Otherwise, go ahead and set up now</span></div><div class="line"> ConfigureHighlights(defaultLocale, highlights, numHighlights);</div><div class="line"> }</div></div><!-- fragment --> <h4>C API</h4>
-<div class="fragment"><div class="line"> <span class="comment">// Request Permissions if user hasn&#39;t decided yet</span></div><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___request_permissions_params.html">NVGSDK_RequestPermissionsParams</a> requestPermissionsParams = { 0 };</div><div class="line"> NVGSDK_Scope requestScopes[COUNT_OF(scopes)];</div><div class="line"> memset(requestScopes, NVGSDK_SCOPE_MAX, COUNT_OF(scopes));</div><div class="line"> requestPermissionsParams.scopeTable = &amp;requestScopes;</div><div class="line"></div><div class="line"> <span class="comment">// &#39;response&#39; came from create call. It tells us which permissions we requested during Create,</span></div><div class="line"> <span class="comment">// but the user hasn&#39;t yet made a decision on</span></div><div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, j = 0; i &lt; outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a60aec9d469d10e8fe0efd7c010fb96e7">scopePermissionTableSize</a>; ++i)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">if</span> (outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a9bc3e75a15cf9fcbc1084f2a7fde5a8f">scopePermissionTable</a>[i].permission == NVGSDK_PERMISSION_MUST_ASK)</div><div class="line"> {</div><div class="line"> requestPermissionsParams.scopeTable[j++] = outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a9bc3e75a15cf9fcbc1084f2a7fde5a8f">scopePermissionTable</a>[i].scope;</div><div class="line"> requestPermissionsParams.scopeTableSize++;</div><div class="line"> }</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordflow">if</span> (requestPermissionsParams.scopeTableSize &gt; 0)</div><div class="line"> {</div><div class="line"> TConfigHolder* configHolder = malloc(<span class="keyword">sizeof</span>(TConfigHolder));</div><div class="line"> configHolder-&gt;defaultLocale = defaultLocale;</div><div class="line"> configHolder-&gt;highlights = highlights;</div><div class="line"> configHolder-&gt;numHighlights = numHighlights;</div><div class="line"></div><div class="line"> <span class="comment">// If the user hasn&#39;t given permission for recording yet, ask them to do so now via overlay</span></div><div class="line"> <a class="code" href="isdk_8h.html#a3e4b6afcafe9ac91c00a95b7d72305e5">NVGSDK_RequestPermissionsAsync</a>(g_sdk, &amp;requestPermissionsParams, &amp;handlePermissionRequested, configHolder);</div><div class="line"> }</div><div class="line"> <span class="keywordflow">else</span></div><div class="line"> {</div><div class="line"> <span class="comment">// Otherwise, go ahead and set up now</span></div><div class="line"> ConfigureHighlights(defaultLocale, highlights, numHighlights);</div><div class="line"> }</div></div><!-- fragment --> <p>This only needs to happen once ever. It is persistent. It could even happen during game installation.</p>
+<div class="fragment"><div class="line"> <span class="comment">// Request Permissions if user hasn&#39;t decided yet</span></div><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___request_permissions_params.html">NVGSDK_RequestPermissionsParams</a> requestPermissionsParams = { 0 };</div><div class="line"> NVGSDK_Scope requestScopes[COUNT_OF(scopes)];</div><div class="line"> memset(requestScopes, NVGSDK_SCOPE_MAX, COUNT_OF(scopes));</div><div class="line"> requestPermissionsParams.scopeTable = &amp;requestScopes[0];</div><div class="line"></div><div class="line"> <span class="comment">// &#39;response&#39; came from create call. It tells us which permissions we requested during Create,</span></div><div class="line"> <span class="comment">// but the user hasn&#39;t yet made a decision on</span></div><div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0, j = 0; i &lt; outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a60aec9d469d10e8fe0efd7c010fb96e7">scopePermissionTableSize</a>; ++i)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">if</span> (outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a9bc3e75a15cf9fcbc1084f2a7fde5a8f">scopePermissionTable</a>[i].permission == NVGSDK_PERMISSION_MUST_ASK)</div><div class="line"> {</div><div class="line"> requestPermissionsParams.scopeTable[j++] = outParams.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a9bc3e75a15cf9fcbc1084f2a7fde5a8f">scopePermissionTable</a>[i].scope;</div><div class="line"> requestPermissionsParams.scopeTableSize++;</div><div class="line"> }</div><div class="line"> }</div><div class="line"></div><div class="line"> <span class="keywordflow">if</span> (requestPermissionsParams.scopeTableSize &gt; 0)</div><div class="line"> {</div><div class="line"> TConfigHolder* configHolder = malloc(<span class="keyword">sizeof</span>(TConfigHolder));</div><div class="line"> configHolder-&gt;defaultLocale = defaultLocale;</div><div class="line"> configHolder-&gt;highlights = highlights;</div><div class="line"> configHolder-&gt;numHighlights = numHighlights;</div><div class="line"></div><div class="line"> <span class="comment">// If the user hasn&#39;t given permission for recording yet, ask them to do so now via overlay</span></div><div class="line"> <a class="code" href="isdk_8h.html#a3e4b6afcafe9ac91c00a95b7d72305e5">NVGSDK_RequestPermissionsAsync</a>(g_sdk, &amp;requestPermissionsParams, &amp;handlePermissionRequested, configHolder);</div><div class="line"> }</div><div class="line"> <span class="keywordflow">else</span></div><div class="line"> {</div><div class="line"> <span class="comment">// Otherwise, go ahead and set up now</span></div><div class="line"> ConfigureHighlights(defaultLocale, highlights, numHighlights);</div><div class="line"> }</div></div><!-- fragment --> <p>This only needs to happen once ever. It is persistent. It could even happen during game installation.</p>
<h4>C++ Bindings</h4>
<div class="fragment"><div class="line"> <span class="comment">// Create handle to highlights module</span></div><div class="line"> m_highlights.reset(GfeSDK::Highlights::Create(m_gfesdk.get()));</div><div class="line"></div><div class="line"> <a class="code" href="struct_gfe_s_d_k_1_1_highlight_config_params.html">GfeSDK::HighlightConfigParams</a> configParams;</div><div class="line"> configParams.defaultLocale = defaultLocale;</div><div class="line"></div><div class="line"> <span class="comment">// Set up highlight definition table</span></div><div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; numHighlights; ++i)</div><div class="line"> {</div><div class="line"> <a class="code" href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a> highlightDef;</div><div class="line"> highlightDef.id = highlights[i].id;</div><div class="line"> highlightDef.userDefaultInterest = highlights[i].userInterest;</div><div class="line"> highlightDef.significance = highlights[i].significance;</div><div class="line"> highlightDef.highlightTags = highlights[i].highlightTags;</div><div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; highlights[i].nameTableSize; ++j)</div><div class="line"> {</div><div class="line"> highlightDef.<a class="code" href="struct_gfe_s_d_k_1_1_highlight_definition.html#a2511ee17dafd2a096b15e6f62b1f77b2">nameLocaleTable</a>[highlights[i].nameTable[j].localeCode] = highlights[i].nameTable[j].localizedString;</div><div class="line"> }</div><div class="line"></div><div class="line"> configParams.highlightDefinitions.push_back(highlightDef);</div><div class="line"> }</div><div class="line"></div><div class="line"> m_highlights-&gt;ConfigureAsync(configParams, [<span class="keyword">this</span>](GfeSDK::NVGSDK_RetCode rc, <span class="keywordtype">void</span>*) {</div><div class="line"> UpdateLastResultString(rc);</div><div class="line"> });</div></div><!-- fragment --> <h4>C API</h4>
-<div class="fragment"><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___highlight.html">NVGSDK_Highlight</a>* highlights = calloc(numHighlights, <span class="keyword">sizeof</span>(<a class="code" href="struct_n_v_g_s_d_k___highlight.html">NVGSDK_Highlight</a>));</div><div class="line"> highlights[0].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a9e0d5a1ba9081cb7f9b549499af61927">userInterest</a> = <span class="keyword">false</span>;</div><div class="line"></div><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___highlight_config_params.html">NVGSDK_HighlightConfigParams</a>* params = calloc(1, <span class="keyword">sizeof</span>(<a class="code" href="struct_n_v_g_s_d_k___highlight_config_params.html">NVGSDK_HighlightConfigParams</a>));</div><div class="line"> params-&gt;<a class="code" href="struct_n_v_g_s_d_k___highlight_config_params.html#a7f4f852d4fe97048f20dcdcc401ab82b">defaultLocale</a> = defaultLocale;</div><div class="line"> params-&gt;highlightDefinitionTable = highlights;</div><div class="line"> params-&gt;highlightTableSize = numHighlights;</div><div class="line"></div><div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; numHighlights; ++i)</div><div class="line"> {</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a1f95d7645df3e535efa830685488ae9b">id</a> = hl[i].id;</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a1e55e8efeca6cfabc9c68583e24f410b">highlightTags</a> = hl[i].highlightTags;</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a3ecee6a0bd80c21b630559fb8ecfc0be">significance</a> = hl[i].significance;</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a9e0d5a1ba9081cb7f9b549499af61927">userInterest</a> = hl[i].userInterest;</div><div class="line"></div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a5522ae0afe385ba7d17afd83d19ed729">nameTableSize</a> = hl[i].nameTableSize;</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a3aa8849a5921b0189c2642840c257247">nameTable</a> = hl[i].nameTableSize &gt; 0 ? calloc(hl[i].nameTableSize, <span class="keyword">sizeof</span>(<a class="code" href="struct_n_v_g_s_d_k___localized_pair.html">NVGSDK_LocalizedPair</a>)) : NULL;</div><div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> name = 0; name &lt; hl[i].nameTableSize; ++name)</div><div class="line"> {</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a3aa8849a5921b0189c2642840c257247">nameTable</a>[name].<a class="code" href="struct_n_v_g_s_d_k___localized_pair.html#aa070c22ef7cf737497855504fb8795d6">localeCode</a> = calloc(NVGSDK_MAX_LENGTH, <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>));</div><div class="line"> strncpy_s(highlights[i].nameTable[name].localeCode, NVGSDK_MAX_LENGTH, hl[i].nameTable[name].localeCode, NVGSDK_MAX_LENGTH);</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a3aa8849a5921b0189c2642840c257247">nameTable</a>[name].<a class="code" href="struct_n_v_g_s_d_k___localized_pair.html#a02d3e482f16824ccc790f1a3dc8b8952">localizedString</a> = calloc(NVGSDK_MAX_LENGTH, <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>));</div><div class="line"> strncpy_s(highlights[i].nameTable[name].localizedString, NVGSDK_MAX_LENGTH, hl[i].nameTable[name].localizedString, NVGSDK_MAX_LENGTH);</div><div class="line"> }</div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="ihighlights_8h.html#a0407132e7fd44771370ecfa03fdfce8d">NVGSDK_Highlights_ConfigureAsync</a>(g_sdk, params, &amp;handleConfigured, params);</div></div><!-- fragment --> <h4>C++ Bindings</h4>
+<div class="fragment"><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___highlight.html">NVGSDK_Highlight</a>* highlights = calloc(numHighlights, <span class="keyword">sizeof</span>(<a class="code" href="struct_n_v_g_s_d_k___highlight.html">NVGSDK_Highlight</a>));</div><div class="line"> highlights[0].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a9e0d5a1ba9081cb7f9b549499af61927">userInterest</a> = <span class="keyword">false</span>;</div><div class="line"></div><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___highlight_config_params.html">NVGSDK_HighlightConfigParams</a>* params = calloc(1, <span class="keyword">sizeof</span>(<a class="code" href="struct_n_v_g_s_d_k___highlight_config_params.html">NVGSDK_HighlightConfigParams</a>));</div><div class="line"> params-&gt;<a class="code" href="struct_n_v_g_s_d_k___highlight_config_params.html#a7f4f852d4fe97048f20dcdcc401ab82b">defaultLocale</a> = defaultLocale;</div><div class="line"> params-&gt;highlightDefinitionTable = highlights;</div><div class="line"> params-&gt;highlightTableSize = numHighlights;</div><div class="line"></div><div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; numHighlights; ++i)</div><div class="line"> {</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a1f95d7645df3e535efa830685488ae9b">id</a> = hl[i].id;</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a1e55e8efeca6cfabc9c68583e24f410b">highlightTags</a> = hl[i].highlightTags;</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a3ecee6a0bd80c21b630559fb8ecfc0be">significance</a> = hl[i].significance;</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a9e0d5a1ba9081cb7f9b549499af61927">userInterest</a> = hl[i].userInterest;</div><div class="line"></div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a5522ae0afe385ba7d17afd83d19ed729">nameTableSize</a> = hl[i].nameTableSize;</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a3aa8849a5921b0189c2642840c257247">nameTable</a> = hl[i].nameTableSize &gt; 0 ? calloc(hl[i].nameTableSize, <span class="keyword">sizeof</span>(<a class="code" href="struct_n_v_g_s_d_k___localized_pair.html">NVGSDK_LocalizedPair</a>)) : NULL;</div><div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> name = 0; name &lt; hl[i].nameTableSize; ++name)</div><div class="line"> {</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a3aa8849a5921b0189c2642840c257247">nameTable</a>[name].<a class="code" href="struct_n_v_g_s_d_k___localized_pair.html#aa070c22ef7cf737497855504fb8795d6">localeCode</a> = calloc(NVGSDK_MAX_LENGTH, <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>));</div><div class="line"> strncpy_s((<span class="keywordtype">char</span>*)highlights[i].nameTable[name].localeCode, NVGSDK_MAX_LENGTH, hl[i].nameTable[name].localeCode, NVGSDK_MAX_LENGTH);</div><div class="line"> highlights[i].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a3aa8849a5921b0189c2642840c257247">nameTable</a>[name].<a class="code" href="struct_n_v_g_s_d_k___localized_pair.html#a02d3e482f16824ccc790f1a3dc8b8952">localizedString</a> = calloc(NVGSDK_MAX_LENGTH, <span class="keyword">sizeof</span>(<span class="keywordtype">char</span>));</div><div class="line"> strncpy_s((<span class="keywordtype">char</span>*)highlights[i].nameTable[name].localizedString, NVGSDK_MAX_LENGTH, hl[i].nameTable[name].localizedString, NVGSDK_MAX_LENGTH);</div><div class="line"> }</div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="ihighlights_8h.html#a0407132e7fd44771370ecfa03fdfce8d">NVGSDK_Highlights_ConfigureAsync</a>(g_sdk, params, &amp;handleConfigured, params);</div></div><!-- fragment --> <h4>C++ Bindings</h4>
<div class="fragment"><div class="line"> <a class="code" href="struct_gfe_s_d_k_1_1_highlight_open_group_params.html">GfeSDK::HighlightOpenGroupParams</a> params;</div><div class="line"> params.groupId = id;</div><div class="line"> params.groupDescriptionLocaleTable[<span class="stringliteral">&quot;en-US&quot;</span>] = id;</div><div class="line"> m_highlights-&gt;OpenGroupAsync(params, [<span class="keyword">this</span>](GfeSDK::NVGSDK_RetCode rc, <span class="keywordtype">void</span>*) {</div><div class="line"> UpdateLastResultString(rc);</div><div class="line"> });</div></div><!-- fragment --><div class="fragment"><div class="line"> <a class="code" href="struct_gfe_s_d_k_1_1_video_highlight_params.html">GfeSDK::VideoHighlightParams</a> params;</div><div class="line"> params.startDelta = startDelta;</div><div class="line"> params.endDelta = endDelta;</div><div class="line"> params.groupId = groupId;</div><div class="line"> params.highlightId = highlightId;</div><div class="line"> m_highlights-&gt;SetVideoHighlightAsync(params, [<span class="keyword">this</span>](GfeSDK::NVGSDK_RetCode rc, <span class="keywordtype">void</span>*) {</div><div class="line"> UpdateLastResultString(rc);</div><div class="line"> });</div></div><!-- fragment --><div class="fragment"><div class="line"> <a class="code" href="struct_gfe_s_d_k_1_1_highlight_close_group_params.html">GfeSDK::HighlightCloseGroupParams</a> params;</div><div class="line"> params.groupId = id;</div><div class="line"> params.destroyHighlights = destroy;</div><div class="line"> m_highlights-&gt;CloseGroupAsync(params, [<span class="keyword">this</span>](GfeSDK::NVGSDK_RetCode rc, <span class="keywordtype">void</span>*) {</div><div class="line"> UpdateLastResultString(rc);</div><div class="line"> });</div></div><!-- fragment --> <h4>C API</h4>
<div class="fragment"><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___highlight_open_group_params.html">NVGSDK_HighlightOpenGroupParams</a> params = { 0 };</div><div class="line"> params.<a class="code" href="struct_n_v_g_s_d_k___highlight_open_group_params.html#a3e9f6351540609fc3e853d5a16188da2">groupId</a> = groupId;</div><div class="line"> <a class="code" href="ihighlights_8h.html#aa49250dbc063e242607123333f8da892">NVGSDK_Highlights_OpenGroupAsync</a>(g_sdk, &amp;params, &amp;handleGenericResponse, NULL);</div></div><!-- fragment --><div class="fragment"><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___video_highlight_params.html">NVGSDK_VideoHighlightParams</a> params;</div><div class="line"> params.<a class="code" href="struct_n_v_g_s_d_k___video_highlight_params.html#aa332ddd28accd8f72fb17adc378c1267">groupId</a> = groupId;</div><div class="line"> params.<a class="code" href="struct_n_v_g_s_d_k___video_highlight_params.html#a622f76afc439ed07a18e97ca95564ff0">highlightId</a> = highlightId;</div><div class="line"> params.<a class="code" href="struct_n_v_g_s_d_k___video_highlight_params.html#ac526b90af6638fec62174304aa175da1">startDelta</a> = startDelta;</div><div class="line"> params.<a class="code" href="struct_n_v_g_s_d_k___video_highlight_params.html#ae63c02443b1eeb24c4e1ed4d49154277">endDelta</a> = endDelta;</div><div class="line"> <a class="code" href="ihighlights_8h.html#a4812495c6dedfc7cc6b2d3c421c161ed">NVGSDK_Highlights_SetVideoHighlightAsync</a>(g_sdk, &amp;params, &amp;handleGenericResponse, NULL);</div></div><!-- fragment --><div class="fragment"><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___highlight_close_group_params.html">NVGSDK_HighlightCloseGroupParams</a> params = { 0 };</div><div class="line"> params.<a class="code" href="struct_n_v_g_s_d_k___highlight_close_group_params.html#a6f1e0e8a5399e868588a83e1c81ad9c3">groupId</a> = groupId;</div><div class="line"> params.<a class="code" href="struct_n_v_g_s_d_k___highlight_close_group_params.html#a3d7eae61163c4616a42569ca8d7785c6">destroyHighlights</a> = destroy;</div><div class="line"> <a class="code" href="ihighlights_8h.html#aa3b6190835ada28f4cee015645814e75">NVGSDK_Highlights_CloseGroupAsync</a>(g_sdk, &amp;params, &amp;handleGenericResponse, NULL);</div></div><!-- fragment --> <h4>C++ Bindings</h4>
<div class="fragment"><div class="line"> <a class="code" href="struct_gfe_s_d_k_1_1_summary_params.html">GfeSDK::SummaryParams</a> params;</div><div class="line"></div><div class="line"> <span class="comment">// Can show more than one group at a time, each with their own filters if desired</span></div><div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; numGroups; ++i)</div><div class="line"> {</div><div class="line"> <a class="code" href="struct_gfe_s_d_k_1_1_group_view.html">GfeSDK::GroupView</a> v;</div><div class="line"> v.groupId = groupIds[i];</div><div class="line"> v.significanceFilter = sigFilter;</div><div class="line"> v.tagsFilter = tagFilter;</div><div class="line"> params.groupViews.push_back(v);</div><div class="line"> }</div><div class="line"></div><div class="line"> m_highlights-&gt;OpenSummaryAsync(params, [<span class="keyword">this</span>](GfeSDK::NVGSDK_RetCode rc, <span class="keywordtype">void</span>*) {</div><div class="line"> UpdateLastResultString(rc);</div><div class="line"> });</div></div><!-- fragment --> <h4>C API</h4>