aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md6
-rw-r--r--README.md2
-rw-r--r--doc/html/_c_h_a_n_g_e_l_o_g_8md_source.html2
-rw-r--r--doc/html/_m_a_i_n_p_a_g_e_8md_source.html2
-rw-r--r--doc/html/config_8h_source.html6
-rw-r--r--doc/html/files.html6
-rw-r--r--doc/html/files.js2
-rw-r--r--doc/html/gfe3__product__version_8h_source.html6
-rw-r--r--doc/html/highlights__types__cpp_8h_source.html24
-rw-r--r--doc/html/ihighlights__cpp_8h_source.html14
-rw-r--r--doc/html/ihighlights__cpp__impl_8h_source.html18
-rw-r--r--doc/html/index.html26
-rw-r--r--doc/html/navtreedata.js2
-rw-r--r--doc/html/navtreeindex0.js20
-rw-r--r--doc/html/navtreeindex1.js1
-rw-r--r--doc/html/sdk__types__ipc_8h_source.html6
-rw-r--r--doc/html/section_changelog.html8
-rw-r--r--doc/html/struct_gfe_s_d_k_1_1_get_number_of_highlights_response.html2
-rw-r--r--doc/html/struct_gfe_s_d_k_1_1_get_user_settings_response.html2
-rw-r--r--doc/html/struct_gfe_s_d_k_1_1_group_view.html2
-rw-r--r--doc/html/struct_gfe_s_d_k_1_1_highlight_close_group_params.html2
-rw-r--r--doc/html/struct_gfe_s_d_k_1_1_highlight_config_params.html2
-rw-r--r--doc/html/struct_gfe_s_d_k_1_1_highlight_definition-members.html11
-rw-r--r--doc/html/struct_gfe_s_d_k_1_1_highlight_definition.js1
-rw-r--r--doc/html/struct_gfe_s_d_k_1_1_highlight_open_group_params.html2
-rw-r--r--doc/html/struct_gfe_s_d_k_1_1_highlight_user_setting.html2
-rw-r--r--doc/html/struct_gfe_s_d_k_1_1_screenshot_highlight_params.html2
-rw-r--r--doc/html/struct_gfe_s_d_k_1_1_summary_params.html2
-rw-r--r--doc/html/struct_gfe_s_d_k_1_1_video_highlight_params.html2
-rw-r--r--include/gfesdk/bindings/cpp/highlights/highlights_types_cpp.h1
-rw-r--r--include/gfesdk/config.h8
-rw-r--r--include/gfesdk/gfe3_product_version.h8
-rw-r--r--include/gfesdk/sdk_types_ipc.h2
-rw-r--r--lib/win32/GfeSDK.libbin6182 -> 6182 bytes
-rw-r--r--lib/win64/GfeSDK.libbin6100 -> 6100 bytes
-rw-r--r--redist/win32/GfeSDK.dllbin2916272 -> 2926480 bytes
-rw-r--r--redist/win32_uwp/GfeSDK.dllbin870320 -> 880528 bytes
-rw-r--r--redist/win64/GfeSDK.dllbin3743152 -> 3753360 bytes
-rw-r--r--redist/win64_uwp/GfeSDK.dllbin1214896 -> 1225104 bytes
39 files changed, 109 insertions, 93 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b21a249..6ba8ba1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
# Changelog {#section_changelog}
+## NVIDIA GfeSDK 1.1 (2018-01-22)
+
+### API Changes
+* **SDK version incremented to 1.1** Allows old SDK clients to work with upcoming 3.13 GFE
+* **Highlights Config parameters validation** Rejects Highlights of invalid type and significance
+
## NVIDIA GfeSDK 1.0 (2018-01-16)
### Features for GFE 3.13+
diff --git a/README.md b/README.md
index eba863d..411ccef 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# NVIDIA GeForce Experience SDK #
-* Version: 1.0.168.8a267a87
+* Version: 1.1.173.5d889305
* GeForce Experience minimum version: 3.8
* See [Changelog](./CHANGELOG.md)
diff --git a/doc/html/_c_h_a_n_g_e_l_o_g_8md_source.html b/doc/html/_c_h_a_n_g_e_l_o_g_8md_source.html
index ca64837..23b013a 100644
--- a/doc/html/_c_h_a_n_g_e_l_o_g_8md_source.html
+++ b/doc/html/_c_h_a_n_g_e_l_o_g_8md_source.html
@@ -85,7 +85,7 @@ $(document).ready(function(){initNavTree('_c_h_a_n_g_e_l_o_g_8md.html','');});
<div class="title">C:/u/workspace/dev/sdkwinauto/doc/CHANGELOG.md</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;# Changelog {#section_changelog}</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;## NVIDIA GfeSDK 1.0 (2018-01-16)</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;### Features for GFE 3.13+</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;* **UWP Support** Add support to Universal Windows Platform games</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;* **Target PID** Add support for whitelisted apps to record another process&#39;s PID</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;### API Changes</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;* **Target PID** Added to NVGSDK_Create call</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;* **Unannounced Highlight Type** To prevent showing Highlights notifications for certain applications</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;### Improvements</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;* **UWP Sample App** Add a new sample MarbleMaze app that demostrates a full Highlights integration</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;### Bug Fixes</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;* **Fix Crash** Was occasionally crashing when communication with the backend could not be established</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;## NVIDIA GfeSDK 1.0 (2017-08-01)</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;### API Changes</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;* **Timeout:** Was returning NVGSDK_ERR_GENERIC when IPC call timed now. Now returning NVGSDK_ERR_IPC_FAILED</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;* **windows.h:** Removed windows.h from public includes</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;* **globals:** Removed macros from global namespace</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;* **stdint:** Standardize on stdint types</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;* **stdbool:** Use stdbool in C API instead of integer 0/1</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;* **namespace:** Renamed namespace from gfesdk to GfeSDK, and wrapped C API in namespace when using C++ bindings</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;* **Highlights split:** Split all Highlights features into their own headers</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;* **C++ Bindings RAII:** Update C++ bindings to follow recognized C++ idioms</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;* **package structure:** Standardize package structure to look like other GameWorks packages</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;* **Typed Callbacks:** Return typed callback data instead of void*</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;* **Naming:** Match naming standard to other GameWorks packages</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;### Improvements</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;* **Thread Model**: Improve thread model. Prevent callbacks from occurring after Release. Allow Polling of callbacks</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;* **Documentation**: Improved and expanded documentation</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;### Bug Fixes</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;* **Whitelist:** Fix error causing ShadowPlay to not whitelist game correctly.</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;* **Fix crash:** Was crashing when the same game ran twice.</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;* **Input validation:** Added input validation to return an error for C++ create instead of crash</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;* **Timeout return value:** Was returning NVGSDK_ERR_GENERIC instead of NVGSDK_ERR_IPC_FAILED</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;### Features for GFE 3.9+</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;* **In-Game Overlay Notification:** Notify the app when the in-game overlay opens or closes.</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;## NVIDIA GfeSDK 1.0 (2017-07-10)</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;### Features for GFE 3.8+</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;* **ShadowPlay Highlights** Help Gamers automatically capture their most exciting gaming moments.</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;# Changelog {#section_changelog}</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;## NVIDIA GfeSDK 1.1 (2018-01-22)</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;### API Changes</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;* **SDK version incremented to 1.1** Allows old SDK clients to work with upcoming 3.13 GFE</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;* **Highlights Config parameters validation** Rejects Highlights of invalid type and significance</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;## NVIDIA GfeSDK 1.0 (2018-01-16)</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;### Features for GFE 3.13+</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;* **UWP Support** Add support to Universal Windows Platform games</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;* **Target PID** Add support for whitelisted apps to record another process&#39;s PID</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;### API Changes</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;* **Target PID** Added to NVGSDK_Create call</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;* **Unannounced Highlight Type** To prevent showing Highlights notifications for certain applications</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;### Improvements</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;* **UWP Sample App** Add a new sample MarbleMaze app that demostrates a full Highlights integration</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;### Bug Fixes</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;* **Fix Crash** Was occasionally crashing when communication with the backend could not be established</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;## NVIDIA GfeSDK 1.0 (2017-08-01)</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;### API Changes</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;* **Timeout:** Was returning NVGSDK_ERR_GENERIC when IPC call timed now. Now returning NVGSDK_ERR_IPC_FAILED</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;* **windows.h:** Removed windows.h from public includes</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;* **globals:** Removed macros from global namespace</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;* **stdint:** Standardize on stdint types</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;* **stdbool:** Use stdbool in C API instead of integer 0/1</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;* **namespace:** Renamed namespace from gfesdk to GfeSDK, and wrapped C API in namespace when using C++ bindings</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;* **Highlights split:** Split all Highlights features into their own headers</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;* **C++ Bindings RAII:** Update C++ bindings to follow recognized C++ idioms</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;* **package structure:** Standardize package structure to look like other GameWorks packages</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;* **Typed Callbacks:** Return typed callback data instead of void*</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;* **Naming:** Match naming standard to other GameWorks packages</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;### Improvements</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;* **Thread Model**: Improve thread model. Prevent callbacks from occurring after Release. Allow Polling of callbacks</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;* **Documentation**: Improved and expanded documentation</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;### Bug Fixes</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;* **Whitelist:** Fix error causing ShadowPlay to not whitelist game correctly.</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;* **Fix crash:** Was crashing when the same game ran twice.</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;* **Input validation:** Added input validation to return an error for C++ create instead of crash</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;* **Timeout return value:** Was returning NVGSDK_ERR_GENERIC instead of NVGSDK_ERR_IPC_FAILED</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;### Features for GFE 3.9+</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;* **In-Game Overlay Notification:** Notify the app when the in-game overlay opens or closes.</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;## NVIDIA GfeSDK 1.0 (2017-07-10)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;### Features for GFE 3.8+</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;* **ShadowPlay Highlights** Help Gamers automatically capture their most exciting gaming moments.</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.12-->
<!-- start footer part -->
diff --git a/doc/html/_m_a_i_n_p_a_g_e_8md_source.html b/doc/html/_m_a_i_n_p_a_g_e_8md_source.html
index f55c858..3d2be66 100644
--- a/doc/html/_m_a_i_n_p_a_g_e_8md_source.html
+++ b/doc/html/_m_a_i_n_p_a_g_e_8md_source.html
@@ -85,7 +85,7 @@ $(document).ready(function(){initNavTree('_m_a_i_n_p_a_g_e_8md.html','');});
<div class="title">MAINPAGE.md</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;# Development Guide # {#mainpage}</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;# NVIDIA GeForce Experience SDK # {#section_main}</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;* Version: 1.0.168.8a267a87</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;* GeForce Experience minimum version: 3.8</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;* See [Changelog](\ref section_changelog)</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;## At a Glance {#section_glance}</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;The GeForce SDK (GfeSDK) is a means for games to integrate with ShadowPlay Highlights allowing them to capture videos</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;and screenshots and present the resulting highlights back to users for viewing and sharing. GfeSDK will add other features</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;over time that benefit from games and applications working in concert with GFE functionality.</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;![Shadowplay Highlights](/img/gfesdk_highlights.png)</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;### Software Stack {#section_stack}</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;![Software Stack](/img/gfesdk_block.png)</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;An application integrates with the GfeSDK via either the provided Unreal Engine 4 plug-in, C++ interface, or C interface. This integration, via the SDK, calls a compatible GFE 3.0 release. </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;The developer (or associated publisher) distributes the application (including associated SDK libraries).</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;NVIDIA distributes a GfeSDK package coupled with GfeSDK-compatible GFE releases. GFE maintains backwards SDK-compatibility; games integrated with older SDKs work with newer GFE releases.</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;### GfeSDK Package {#section_package}</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;The distribution will look like the following</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;```</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;.</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;+-- README.md</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;+-- LICENSE</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;+-- doc</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;| +-- index.html # Points to the deeper index.html</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;| +-- html</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;| | +-- index.html</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;| | ...</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;+-- include</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;| +-- gfesdk</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;| | +-- bindings </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;| | | +-- cpp # C++ bindings that sit on top of C API</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;| | +-- isdk.h</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;| | ...</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;+-- lib</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;| +-- win32</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;| | +-- GfeSDK.lib # x86 Import library for linking</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;| +-- win64</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;| | +-- GfeSDK.lib # x64 Import library for linking</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;+-- redist</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;| +-- assets</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;| | +-- img</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;| | | +-- xxxx.png # Images the game may redistribute</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;| +-- win32</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;| | +-- GfeSDK.dll # x86 DLL to be shipped with the game</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;| +-- win64</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;| | +-- GfeSDK.dll # x64 DLL to be shipped with the game</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;+-- samples</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;| +-- bin</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;| | +-- UnrealDemo # Binary game that demonstrates GfeSDK + Highlights</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;```</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;### Compiling And Linking {#section_compiling}</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;To compile, add the ./include (not the ./include/gfesdk) directory to the compiler&#39;s list of includes. The import libraries</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;are found in the ./lib folder and can be used to link the symbols into the game&#39;s executable. The proper GfeSDK.dll file</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;will need to be distributed with the game in a place that the game can find it.</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;The C++ bindings are currently distributed in header-only form to avoid ABI incompatibilities between different compiler</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;versions. The linking and include steps are the same.</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;## Using GfeSDK ## {#section_using}</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;Creation and destruction of an SDK instance is a prerequisite to making calls</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;to the SDK. The means of creating and destroying an instance depend on which</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;integration mechanism the client employs:</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;See [Core header documentation](\ref isdk.h)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;See [Highlights header documentation](\ref ihighlights.h)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;### Creation and Release {#section_example_create}</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;#### C++ Bindings</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;\snippet GfeSDKDemo.cpp Creation CPP</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;// After using GfeSDK</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;\snippet GfeSDKDemo.cpp Release CPP</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;#### C API</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;\snippet GfeSDKDemo.cpp Creation</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;// After using GfeSDK</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;\snippet GfeSDKDemo.cpp Release</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;### Request Permissions {#section_example_permission}</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;The Create call will inform the app if one or more scopes require user</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;permission. If so, make this call. It will display the overlay UI.</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;#### C++ Bindings</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;\snippet GfeSDKDemo.cpp Permissions CPP</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;#### C API</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;\snippet GfeSDKDemo.cpp Permissions</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;### Configure Highlights {#section_example_highlightsconfigure}</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;This only needs to happen once ever. It is persistent. It could even happen</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;during game installation.</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;#### C++ Bindings</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;\snippet GfeSDKDemo.cpp ConfigureHighlights CPP</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;#### C API</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;\snippet GfeSDKDemo.cpp ConfigureHighlights</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;### Groups and Saving Highlights {#section_Example_highlights}</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;#### C++ Bindings</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;\snippet GfeSDKDemo.cpp OpenGroup CPP</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;\snippet GfeSDKDemo.cpp SaveVideo CPP</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;\snippet GfeSDKDemo.cpp CloseGroup CPP</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;#### C API</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;\snippet GfeSDKDemo.cpp OpenGroup</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;\snippet GfeSDKDemo.cpp SaveVideo</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;\snippet GfeSDKDemo.cpp CloseGroup</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;### Open Highlight Summary {#section_example_summary}</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;#### C++ Bindings</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;\snippet GfeSDKDemo.cpp OpenSummary CPP</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;#### C API</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;\snippet GfeSDKDemo.cpp OpenSummary</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;## Concepts {#section_concepts}</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;The GfeSDK is composed of two parts, the client/app, and the backend/server.</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;This distribution contains GfeSDK.dll which represents the client/app part.</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;The end-user downloads GFE onto their machine. The GFE package includes the</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;backend pieces necessary to support the calls coming from the client. See</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;\ref section_version for more information regarding this communication.</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;Calls made will be serialized. Therefore, if the app makes two consecutive</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;calls to NVGSDK_Highlights_OpenGroup and then either</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;NVGSDK_Highlights_SetVideoHighlight or NVGSDK_Highlights_SetScreenshotHighlight,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;before receiving the callback from open group, the set highlight call will</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;function normally. If open group succeeded, then the set highlights calls will</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;succeed as well. If it failed, the set highlights calls will fail, as there</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;will be no valid group to assign them to.</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;### Strings {#section_strings}</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;All strings are to be provided in single-byte width, UTF-8 encoded.</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;### Versioning {#section_version}</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;Because there are two different parts, and the client / user&#39;s machine may</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;be mismatched at times, the game should be aware of the versioning system.</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;It&#39;s GfeSDK&#39;s goal to make this as seamless as possible, but there could still</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;be compatibility issues to be aware of.</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;The GfeSDK version contains 4 parts, MAJOR.MINOR.BUILD.HASH. The BUILD and HASH</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;components are descriptive and don&#39;t have any effect on functionality. The</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;MAJOR component identifies overall compatibility. If the client and server</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;mismatch on the major version number, no communication is possible. **There</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;are no current plans to update from 1, breaking communication**. The major</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;version number gives a way to show incompatibility if the fundamental</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;architecture of GFE ever changes. The minor version number indicates feature</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;compatibility. When a new feature gets added / modified on the SDK, the minor</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;version number will be bumped. This means that for older games / newer GFE</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;installations, the game is simply missing out on newer features. This will</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;generally not be a problem. For a game with a newer version of the GfeSDK,</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;and a user with an older installation of GFE, some features may not function,</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;and the user should be encouraged to update GFE.</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;With that in mind, here are the possible return values from \ref NVGSDK_Create,</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;with regards to versioning:</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;* **NVGSDK_SUCCESS** - Perfect version match</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;* **NVGSDK_SUCCESS_OLD_GFE** - Minor version mismatch. User has an older</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;version of GFE installed. Newer features distributed by the game will not</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;function properly until the user upgrades.</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;* **NVGSDK_SUCCESS_OLD_SDK** - Minor version mismatch.</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;Game is distributing an older version of GfeSDK.</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;Game could be missing out on latest features, but no compatibily issue. </div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;* **NVGSDK_ERR_GFE_VERSION** - Major version mismatch. User has a GFE</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;installation that predates the GfeSDK. User must upgrade to get functionality.</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;* **NVGSDK_ERR_SDK_VERSION** - Major version mismatch. GFE has changed</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;fundamentally. **There are no plans to do this. This is to cover all bases**</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;### Permissions {#section_permissions}</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;Certain actions require permission from the user. For example, recording video</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;for Highlights requires the user to agree to the recording. To achieve this,</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;the app must know what features it wishes to enable. It will pass these</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;&quot;scopes&quot; into the NVGSDK_Create call via NVGSDK_CreateInputParams. Consider</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;the typical Highlights case as an example. The app will pass in a list of</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;the scopes NVGSDK_SCOPE_HIGHLIGHTS, NVGSDK_SCOPE_HIGHLIGHTS_VIDEO, and</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;NVGSDK_SCOPE_SCREENSHOT. The first of these is required in order for any</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;of the NVGSDK_Highlights_* calls to succeed and send a message to the server.</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;It will allocate the resources required in the DLL and on the server in order</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;to achieve this. The second of these permissions is required in order to</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;capture video of the gameplay, and the final is to capture a screenshot.</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;The first time the user runs the game, and the game calls NVGSDK_Create(...),</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;and passes in these three permissions, the game might receive back that</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;NVGSDK_SCOPE_HIGHLIGHTS has been granted permission implicitly, but that</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;NVGSDK_SCOPE_HIGHLIGHTS_VIDEO and NVGSDK_SCOPE_HIGHLIGHTS_SCREENSHOT</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;currently have &quot;must ask&quot; permission. In other words, the game must ask</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;GFE for permission to record video before it will succeed in doing so. To</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;achieve this, the game will call NVGSDK_RequestPermissionsAsync with two</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;scopes in the list, NVGSDK_SCOPE_HIGHLIGHTS_VIDEO and</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;NVGSDK_SCOPE_HIGHLIGHTS_SCREENSHOT. It&#39;s not necessary to request permission</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;for a scope that has implicitly been granted permission already.</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;The call to NVGSDK_RequestPermissions is required because it will trigger</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;GFE to put up an \ref section_igo. The game might not want this to occur</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;during NVGSDK_Create time. Once called, the user will see the overlay</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;pop up, asking them for permission.</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;![Highlights Permission](/img/permission.png)</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;The async callback will be triggered as soon as the message is processed</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;by the GFE backend. The user will be able to accept, deny, or defer the</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;request. If the user accepts or denies the request, the app will recieve</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;a \ref NVGSDK_NOTIFICATION_PERMISSIONS_CHANGED notification with the results.</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;If \ref NVGSDK_RequestPermissionsAsync is called again when the permission is</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;already granted or denied, the overlay will not be displayed a second time.</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;The user can reverse their decision in either case later on in GFE3 on</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;the games details page.</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;### Asynchronous Calls {#section_async}</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;Most of the calls to GfeSDK are asynchronous. This is due to the client/server</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;architecture described in \ref section_concepts. For each asynchronous call, a</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;callback and an opaque void* context are passed in as arguments. If the app</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;does not care or desire to know what happens to the call, is it fine to pass</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;in NULL. If the app does care, supply a callback of the proper type, and</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;optionally a pointer as a context to receive back during the callback.</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;The callbacks are properly typed. For callbacks that return nothing but the</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;return value and context, a \ref NVGSDK_EmptyCallback is passed in. For</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;versions that do return data, a typed callback is passed in, such as</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;\ref NVGSDK_GetUILanguageCallback.</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;The callback will be called on one of three threads, depending on the</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;situation. If NVGSDK_CreateInputParams::pollForCallbacks is set to false</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;during creation, the callback will always occur on a GfeSDK controller thread.</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;If the app desires callback to occur on their own thread, true is passed in</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;instead. In that case, the callback will occur on the thread that calls</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;\ref NVGSDK_Poll. The exception is that during \ref NVGSDK_Destroy, GfeSDK</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;pushes out all remaining callbacks. If the app is awaiting any callbacks</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;during this time, they will be called on the same thread that called</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;NVGSDK_Destroy. Usually, this will be the same thread that calls NVGSDK_Poll,</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;so it shouldn&#39;t cause any surprises, but it&#39;s something to be aware of. See</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;\ref section_threading for more information</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;**Note:** There is currently a limitation in the GfeSDK backend that depends</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;on game frames being rendered during certain API calls. Therefore, the game</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;cannot block the render loop while awaiting an asynchronous callback. Doing</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;so will result in a deadlock.</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;### Notifications ### {#section_notifications}</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;In addition to the async callbacks that most of the APIs accept as an argument,</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;the app can also register to recieve unsolicited notifications when certain</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;events occur. For example, the app might want to know when the user can</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;given / removed permission for recording video from the app, either through</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;the permissions dialog, or via GFE3. See \ref NVGSDK_CreateInputParams and</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;\ref NVGSDK_NotificationType</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;This notification will get called on either the GfeSDK callback thread, or</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;the thread that calls \ref NVGSDK_Poll, depending on params passed in to</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;\ref NVGSDK_Create. See \ref section_threading for more information.</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;### Threading {#section_threading}</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;There are two different threading models that may be used. The model used</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;depends on the value passed in to \ref NVGSDK_CreateInputParams</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;##### GfeSDK Controller Callback Model</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;In this model, all callbacks will occur as soon as they are processed on the</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;internal GfeSDK callback thread.</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;##### Polling Model</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;The app can choose to use this model if it wants to take action during the</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;callback that depend on being on the game loop. Callbacks are queued up, and</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;executed when the app calls \ref NVGSDK_Poll. This means that callbacks will</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;be blocked indefinitely if that API is never called.</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;The exception occurs during \ref NVGSDK_Destroy. Because the normal case is</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;to make NVGSDK_Destroy and NVGSDK_Poll calls from the same thread, GfeSDK</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;can&#39;t block and wait for another poll call. All remaining callbacks will be</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;executed during \ref NVGSDK_Destroy. See \ref section_async for more info.</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;### In Game Overlay {#section_igo}</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;![In Game Overlay](/img/igo.png)</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;The In-Game overlay can be used by the user to change Highlights settings, and</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;view Highlights that have been saved to the gallery. It&#39;s also used to display</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;the permissions dialog from \ref NVGSDK_RequestPermissionsAsync, and the</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;group summary from \ref NVGSDK_OpenGroupSummaryAsync. The user can open it</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;up by themselves using the default keybinding Alt+Z</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;## UX Guidance {#section_ux}</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;### Highlights Summary</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;Many times a button is used to display the Highlights Summary. Suggested UX:</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;&quot;View \%d highlights&quot; or &quot;\%d new highlights&quot;. Include an icon to the left of</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;the text. The icon to use is located in</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;GfeSDK/redist/assets/img/img_logo_experience_512.png</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;## Logging {#section_log}</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;By default, GfeSDK stores its own logs for problem triage in</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;\%LOCALAPPDATA\%\\NVIDIA Corporation\\GfeSDK. This behavior can be adjusted by</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;the following calls:</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;* \ref NVGSDK_SetLogLevel</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;* \ref NVGSDK_AttachLogListener</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;* \ref NVGSDK_SetListenerLogLevel</div></div><!-- fragment --></div><!-- contents -->
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;# Development Guide # {#mainpage}</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;# NVIDIA GeForce Experience SDK # {#section_main}</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;* Version: 1.1.173.5d889305</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;* GeForce Experience minimum version: 3.8</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;* See [Changelog](\ref section_changelog)</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;## At a Glance {#section_glance}</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;The GeForce SDK (GfeSDK) is a means for games to integrate with ShadowPlay Highlights allowing them to capture videos</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;and screenshots and present the resulting highlights back to users for viewing and sharing. GfeSDK will add other features</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;over time that benefit from games and applications working in concert with GFE functionality.</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;![Shadowplay Highlights](/img/gfesdk_highlights.png)</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;### Software Stack {#section_stack}</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;![Software Stack](/img/gfesdk_block.png)</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;An application integrates with the GfeSDK via either the provided Unreal Engine 4 plug-in, C++ interface, or C interface. This integration, via the SDK, calls a compatible GFE 3.0 release. </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;The developer (or associated publisher) distributes the application (including associated SDK libraries).</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;NVIDIA distributes a GfeSDK package coupled with GfeSDK-compatible GFE releases. GFE maintains backwards SDK-compatibility; games integrated with older SDKs work with newer GFE releases.</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;### GfeSDK Package {#section_package}</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;The distribution will look like the following</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;```</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;.</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;+-- README.md</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;+-- LICENSE</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;+-- doc</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;| +-- index.html # Points to the deeper index.html</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;| +-- html</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;| | +-- index.html</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;| | ...</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;+-- include</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;| +-- gfesdk</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;| | +-- bindings </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;| | | +-- cpp # C++ bindings that sit on top of C API</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;| | +-- isdk.h</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;| | ...</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;+-- lib</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;| +-- win32</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;| | +-- GfeSDK.lib # x86 Import library for linking</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;| +-- win64</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;| | +-- GfeSDK.lib # x64 Import library for linking</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;+-- redist</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;| +-- assets</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;| | +-- img</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;| | | +-- xxxx.png # Images the game may redistribute</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;| +-- win32</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;| | +-- GfeSDK.dll # x86 DLL to be shipped with the game</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;| +-- win64</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;| | +-- GfeSDK.dll # x64 DLL to be shipped with the game</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;+-- samples</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;| +-- bin</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;| | +-- UnrealDemo # Binary game that demonstrates GfeSDK + Highlights</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;```</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;### Compiling And Linking {#section_compiling}</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;To compile, add the ./include (not the ./include/gfesdk) directory to the compiler&#39;s list of includes. The import libraries</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;are found in the ./lib folder and can be used to link the symbols into the game&#39;s executable. The proper GfeSDK.dll file</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;will need to be distributed with the game in a place that the game can find it.</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;The C++ bindings are currently distributed in header-only form to avoid ABI incompatibilities between different compiler</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;versions. The linking and include steps are the same.</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;## Using GfeSDK ## {#section_using}</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;Creation and destruction of an SDK instance is a prerequisite to making calls</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;to the SDK. The means of creating and destroying an instance depend on which</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;integration mechanism the client employs:</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;See [Core header documentation](\ref isdk.h)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;See [Highlights header documentation](\ref ihighlights.h)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;### Creation and Release {#section_example_create}</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;#### C++ Bindings</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;\snippet GfeSDKDemo.cpp Creation CPP</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;// After using GfeSDK</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;\snippet GfeSDKDemo.cpp Release CPP</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;#### C API</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;\snippet GfeSDKDemo.cpp Creation</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;// After using GfeSDK</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;\snippet GfeSDKDemo.cpp Release</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;### Request Permissions {#section_example_permission}</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;The Create call will inform the app if one or more scopes require user</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;permission. If so, make this call. It will display the overlay UI.</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;#### C++ Bindings</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;\snippet GfeSDKDemo.cpp Permissions CPP</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;#### C API</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;\snippet GfeSDKDemo.cpp Permissions</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;### Configure Highlights {#section_example_highlightsconfigure}</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;This only needs to happen once ever. It is persistent. It could even happen</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;during game installation.</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;#### C++ Bindings</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;\snippet GfeSDKDemo.cpp ConfigureHighlights CPP</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;#### C API</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;\snippet GfeSDKDemo.cpp ConfigureHighlights</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;### Groups and Saving Highlights {#section_Example_highlights}</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;#### C++ Bindings</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;\snippet GfeSDKDemo.cpp OpenGroup CPP</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;\snippet GfeSDKDemo.cpp SaveVideo CPP</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;\snippet GfeSDKDemo.cpp CloseGroup CPP</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;#### C API</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;\snippet GfeSDKDemo.cpp OpenGroup</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;\snippet GfeSDKDemo.cpp SaveVideo</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;\snippet GfeSDKDemo.cpp CloseGroup</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;### Open Highlight Summary {#section_example_summary}</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;#### C++ Bindings</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;\snippet GfeSDKDemo.cpp OpenSummary CPP</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;#### C API</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;\snippet GfeSDKDemo.cpp OpenSummary</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;## Concepts {#section_concepts}</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;The GfeSDK is composed of two parts, the client/app, and the backend/server.</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;This distribution contains GfeSDK.dll which represents the client/app part.</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;The end-user downloads GFE onto their machine. The GFE package includes the</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;backend pieces necessary to support the calls coming from the client. See</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;\ref section_version for more information regarding this communication.</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;Calls made will be serialized. Therefore, if the app makes two consecutive</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;calls to NVGSDK_Highlights_OpenGroup and then either</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;NVGSDK_Highlights_SetVideoHighlight or NVGSDK_Highlights_SetScreenshotHighlight,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;before receiving the callback from open group, the set highlight call will</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;function normally. If open group succeeded, then the set highlights calls will</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;succeed as well. If it failed, the set highlights calls will fail, as there</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;will be no valid group to assign them to.</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;### Strings {#section_strings}</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;All strings are to be provided in single-byte width, UTF-8 encoded.</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;### Versioning {#section_version}</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;Because there are two different parts, and the client / user&#39;s machine may</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;be mismatched at times, the game should be aware of the versioning system.</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;It&#39;s GfeSDK&#39;s goal to make this as seamless as possible, but there could still</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;be compatibility issues to be aware of.</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;The GfeSDK version contains 4 parts, MAJOR.MINOR.BUILD.HASH. The BUILD and HASH</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;components are descriptive and don&#39;t have any effect on functionality. The</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;MAJOR component identifies overall compatibility. If the client and server</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;mismatch on the major version number, no communication is possible. **There</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;are no current plans to update from 1, breaking communication**. The major</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;version number gives a way to show incompatibility if the fundamental</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;architecture of GFE ever changes. The minor version number indicates feature</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;compatibility. When a new feature gets added / modified on the SDK, the minor</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;version number will be bumped. This means that for older games / newer GFE</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;installations, the game is simply missing out on newer features. This will</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;generally not be a problem. For a game with a newer version of the GfeSDK,</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;and a user with an older installation of GFE, some features may not function,</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;and the user should be encouraged to update GFE.</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;With that in mind, here are the possible return values from \ref NVGSDK_Create,</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;with regards to versioning:</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;* **NVGSDK_SUCCESS** - Perfect version match</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;* **NVGSDK_SUCCESS_OLD_GFE** - Minor version mismatch. User has an older</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;version of GFE installed. Newer features distributed by the game will not</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;function properly until the user upgrades.</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;* **NVGSDK_SUCCESS_OLD_SDK** - Minor version mismatch.</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;Game is distributing an older version of GfeSDK.</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;Game could be missing out on latest features, but no compatibily issue. </div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;* **NVGSDK_ERR_GFE_VERSION** - Major version mismatch. User has a GFE</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;installation that predates the GfeSDK. User must upgrade to get functionality.</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;* **NVGSDK_ERR_SDK_VERSION** - Major version mismatch. GFE has changed</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;fundamentally. **There are no plans to do this. This is to cover all bases**</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;### Permissions {#section_permissions}</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;Certain actions require permission from the user. For example, recording video</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;for Highlights requires the user to agree to the recording. To achieve this,</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;the app must know what features it wishes to enable. It will pass these</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;&quot;scopes&quot; into the NVGSDK_Create call via NVGSDK_CreateInputParams. Consider</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;the typical Highlights case as an example. The app will pass in a list of</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;the scopes NVGSDK_SCOPE_HIGHLIGHTS, NVGSDK_SCOPE_HIGHLIGHTS_VIDEO, and</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;NVGSDK_SCOPE_SCREENSHOT. The first of these is required in order for any</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;of the NVGSDK_Highlights_* calls to succeed and send a message to the server.</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;It will allocate the resources required in the DLL and on the server in order</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;to achieve this. The second of these permissions is required in order to</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;capture video of the gameplay, and the final is to capture a screenshot.</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;The first time the user runs the game, and the game calls NVGSDK_Create(...),</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;and passes in these three permissions, the game might receive back that</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;NVGSDK_SCOPE_HIGHLIGHTS has been granted permission implicitly, but that</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;NVGSDK_SCOPE_HIGHLIGHTS_VIDEO and NVGSDK_SCOPE_HIGHLIGHTS_SCREENSHOT</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;currently have &quot;must ask&quot; permission. In other words, the game must ask</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;GFE for permission to record video before it will succeed in doing so. To</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;achieve this, the game will call NVGSDK_RequestPermissionsAsync with two</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;scopes in the list, NVGSDK_SCOPE_HIGHLIGHTS_VIDEO and</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;NVGSDK_SCOPE_HIGHLIGHTS_SCREENSHOT. It&#39;s not necessary to request permission</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;for a scope that has implicitly been granted permission already.</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;The call to NVGSDK_RequestPermissions is required because it will trigger</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;GFE to put up an \ref section_igo. The game might not want this to occur</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;during NVGSDK_Create time. Once called, the user will see the overlay</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;pop up, asking them for permission.</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;![Highlights Permission](/img/permission.png)</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;The async callback will be triggered as soon as the message is processed</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;by the GFE backend. The user will be able to accept, deny, or defer the</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;request. If the user accepts or denies the request, the app will recieve</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;a \ref NVGSDK_NOTIFICATION_PERMISSIONS_CHANGED notification with the results.</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;If \ref NVGSDK_RequestPermissionsAsync is called again when the permission is</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;already granted or denied, the overlay will not be displayed a second time.</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;The user can reverse their decision in either case later on in GFE3 on</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;the games details page.</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;### Asynchronous Calls {#section_async}</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;Most of the calls to GfeSDK are asynchronous. This is due to the client/server</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;architecture described in \ref section_concepts. For each asynchronous call, a</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;callback and an opaque void* context are passed in as arguments. If the app</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;does not care or desire to know what happens to the call, is it fine to pass</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;in NULL. If the app does care, supply a callback of the proper type, and</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;optionally a pointer as a context to receive back during the callback.</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;The callbacks are properly typed. For callbacks that return nothing but the</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;return value and context, a \ref NVGSDK_EmptyCallback is passed in. For</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;versions that do return data, a typed callback is passed in, such as</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;\ref NVGSDK_GetUILanguageCallback.</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;The callback will be called on one of three threads, depending on the</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;situation. If NVGSDK_CreateInputParams::pollForCallbacks is set to false</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;during creation, the callback will always occur on a GfeSDK controller thread.</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;If the app desires callback to occur on their own thread, true is passed in</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;instead. In that case, the callback will occur on the thread that calls</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;\ref NVGSDK_Poll. The exception is that during \ref NVGSDK_Destroy, GfeSDK</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;pushes out all remaining callbacks. If the app is awaiting any callbacks</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;during this time, they will be called on the same thread that called</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;NVGSDK_Destroy. Usually, this will be the same thread that calls NVGSDK_Poll,</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;so it shouldn&#39;t cause any surprises, but it&#39;s something to be aware of. See</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;\ref section_threading for more information</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;**Note:** There is currently a limitation in the GfeSDK backend that depends</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;on game frames being rendered during certain API calls. Therefore, the game</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;cannot block the render loop while awaiting an asynchronous callback. Doing</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;so will result in a deadlock.</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;### Notifications ### {#section_notifications}</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;In addition to the async callbacks that most of the APIs accept as an argument,</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;the app can also register to recieve unsolicited notifications when certain</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;events occur. For example, the app might want to know when the user can</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;given / removed permission for recording video from the app, either through</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;the permissions dialog, or via GFE3. See \ref NVGSDK_CreateInputParams and</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;\ref NVGSDK_NotificationType</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;This notification will get called on either the GfeSDK callback thread, or</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;the thread that calls \ref NVGSDK_Poll, depending on params passed in to</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;\ref NVGSDK_Create. See \ref section_threading for more information.</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;### Threading {#section_threading}</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;There are two different threading models that may be used. The model used</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;depends on the value passed in to \ref NVGSDK_CreateInputParams</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;##### GfeSDK Controller Callback Model</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;In this model, all callbacks will occur as soon as they are processed on the</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;internal GfeSDK callback thread.</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;##### Polling Model</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;The app can choose to use this model if it wants to take action during the</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;callback that depend on being on the game loop. Callbacks are queued up, and</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;executed when the app calls \ref NVGSDK_Poll. This means that callbacks will</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;be blocked indefinitely if that API is never called.</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;The exception occurs during \ref NVGSDK_Destroy. Because the normal case is</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;to make NVGSDK_Destroy and NVGSDK_Poll calls from the same thread, GfeSDK</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;can&#39;t block and wait for another poll call. All remaining callbacks will be</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;executed during \ref NVGSDK_Destroy. See \ref section_async for more info.</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;### In Game Overlay {#section_igo}</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;![In Game Overlay](/img/igo.png)</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;The In-Game overlay can be used by the user to change Highlights settings, and</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;view Highlights that have been saved to the gallery. It&#39;s also used to display</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;the permissions dialog from \ref NVGSDK_RequestPermissionsAsync, and the</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;group summary from \ref NVGSDK_OpenGroupSummaryAsync. The user can open it</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;up by themselves using the default keybinding Alt+Z</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;## UX Guidance {#section_ux}</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;### Highlights Summary</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;Many times a button is used to display the Highlights Summary. Suggested UX:</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;&quot;View \%d highlights&quot; or &quot;\%d new highlights&quot;. Include an icon to the left of</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;the text. The icon to use is located in</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;GfeSDK/redist/assets/img/img_logo_experience_512.png</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;## Logging {#section_log}</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;By default, GfeSDK stores its own logs for problem triage in</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;\%LOCALAPPDATA\%\\NVIDIA Corporation\\GfeSDK. This behavior can be adjusted by</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;the following calls:</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;* \ref NVGSDK_SetLogLevel</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;* \ref NVGSDK_AttachLogListener</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;* \ref NVGSDK_SetListenerLogLevel</div></div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.12-->
<!-- start footer part -->
diff --git a/doc/html/config_8h_source.html b/doc/html/config_8h_source.html
index 971fe45..365fad0 100644
--- a/doc/html/config_8h_source.html
+++ b/doc/html/config_8h_source.html
@@ -6,7 +6,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>NVIDIAGeForceExperienceSDK: C:/u/workspace/dev/sdkwinauto/_build/sys-msvc141-uwp_x64_RelWithDebInfo/sdk/include/gfesdk/config.h Source File</title>
+<title>NVIDIAGeForceExperienceSDK: C:/u/workspace/dev/sdkwinauto/_build/p4-msvc120_x86_RelWithDebInfo/sdk/include/gfesdk/config.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -85,13 +85,13 @@ $(document).ready(function(){initNavTree('config_8h_source.html','');});
<div class="title">config.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * NVIDIA CORPORATION and its licensors retain all intellectual property</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * and proprietary rights in and to this software, related documentation</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * and any modifications thereto. Any use, reproduction, disclosure or</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * license agreement from NVIDIA CORPORATION is strictly prohibited.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// Warning: This file is generated. Do not edit</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#ifndef _NVGSDK_CONFIG_H_</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#define _NVGSDK_CONFIG_H_</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;gfe3_product_version.h&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#define NVGSDK_PROJECT_NAME &quot;GfeSDK&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define NVGSDK_VERSION_MAJOR 1</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#define NVGSDK_VERSION_MINOR 0</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#define NVGSDK_BUILD_NUMBER 168</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#define NVGSDK_BUILD_HASH 8a267a87</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#define NVGSDK_BUILD_HASH_STR &quot;8a267a87&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif // _NVGSDK_CONFIG_H_</span></div></div><!-- fragment --></div><!-- contents -->
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * NVIDIA CORPORATION and its licensors retain all intellectual property</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * and proprietary rights in and to this software, related documentation</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * and any modifications thereto. Any use, reproduction, disclosure or</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * license agreement from NVIDIA CORPORATION is strictly prohibited.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// Warning: This file is generated. Do not edit</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#ifndef _NVGSDK_CONFIG_H_</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#define _NVGSDK_CONFIG_H_</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;gfe3_product_version.h&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#define NVGSDK_PROJECT_NAME &quot;GfeSDK&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define NVGSDK_VERSION_MAJOR 1</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#define NVGSDK_VERSION_MINOR 1</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#define NVGSDK_BUILD_NUMBER 173</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#define NVGSDK_BUILD_HASH 5d889305</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#define NVGSDK_BUILD_HASH_STR &quot;5d889305&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif // _NVGSDK_CONFIG_H_</span></div></div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.12-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_93766c917ed92592c1894d5c5e65f172.html">sdk</a></li><li class="navelem"><a class="el" href="dir_35d2c3225318c321406c9a6beb044d2f.html">include</a></li><li class="navelem"><a class="el" href="dir_10362ab7f5c0ce07ef57bf30752a9cd8.html">gfesdk</a></li><li class="navelem"><b>config.h</b></li>
+ <li class="navelem"><a class="el" href="dir_3218f9f0b6327c4561f5657fde3efe5c.html">sdk</a></li><li class="navelem"><a class="el" href="dir_6b811c56f74854312f0f79bac710ab51.html">include</a></li><li class="navelem"><a class="el" href="dir_1c824c8e748d5ae4b3cfd93e0df1dd54.html">gfesdk</a></li><li class="navelem"><b>config.h</b></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
doxygen</a> 1.8.12 </li>
diff --git a/doc/html/files.html b/doc/html/files.html
index 6f87987..d6ed8ee 100644
--- a/doc/html/files.html
+++ b/doc/html/files.html
@@ -87,9 +87,9 @@ $(document).ready(function(){initNavTree('files.html','');});
<div class="contents">
<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</span><span onclick="javascript:toggleLevel(5);">5</span><span onclick="javascript:toggleLevel(6);">6</span><span onclick="javascript:toggleLevel(7);">7</span>]</div><table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')">&#160;</span><a class="el" href="dir_93766c917ed92592c1894d5c5e65f172.html" target="_self">sdk</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_0_" class="arrow" onclick="toggleFolder('0_0_')">&#9660;</span><span id="img_0_0_" class="iconfopen" onclick="toggleFolder('0_0_')">&#160;</span><a class="el" href="dir_35d2c3225318c321406c9a6beb044d2f.html" target="_self">include</a></td><td class="desc"></td></tr>
-<tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_0_" class="arrow" onclick="toggleFolder('0_0_0_')">&#9660;</span><span id="img_0_0_0_" class="iconfopen" onclick="toggleFolder('0_0_0_')">&#160;</span><a class="el" href="dir_10362ab7f5c0ce07ef57bf30752a9cd8.html" target="_self">gfesdk</a></td><td class="desc"></td></tr>
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')">&#160;</span><a class="el" href="dir_3218f9f0b6327c4561f5657fde3efe5c.html" target="_self">sdk</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_0_" class="arrow" onclick="toggleFolder('0_0_')">&#9660;</span><span id="img_0_0_" class="iconfopen" onclick="toggleFolder('0_0_')">&#160;</span><a class="el" href="dir_6b811c56f74854312f0f79bac710ab51.html" target="_self">include</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_0_0_" class="arrow" onclick="toggleFolder('0_0_0_')">&#9660;</span><span id="img_0_0_0_" class="iconfopen" onclick="toggleFolder('0_0_0_')">&#160;</span><a class="el" href="dir_1c824c8e748d5ae4b3cfd93e0df1dd54.html" target="_self">gfesdk</a></td><td class="desc"></td></tr>
<tr id="row_0_0_0_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="config_8h_source.html"><span class="icondoc"></span></a><b>config.h</b></td><td class="desc"></td></tr>
<tr id="row_0_0_0_1_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="gfe3__product__version_8h_source.html"><span class="icondoc"></span></a><b>gfe3_product_version.h</b></td><td class="desc"></td></tr>
<tr id="row_0_0_0_2_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="sdk__types__ipc_8h_source.html"><span class="icondoc"></span></a><b>sdk_types_ipc.h</b></td><td class="desc"></td></tr>
diff --git a/doc/html/files.js b/doc/html/files.js
index ddfc285..0fdebe1 100644
--- a/doc/html/files.js
+++ b/doc/html/files.js
@@ -1,5 +1,5 @@
var files =
[
- [ "sdk", "dir_93766c917ed92592c1894d5c5e65f172.html", "dir_93766c917ed92592c1894d5c5e65f172" ],
+ [ "sdk", "dir_3218f9f0b6327c4561f5657fde3efe5c.html", "dir_3218f9f0b6327c4561f5657fde3efe5c" ],
[ "sdkclient", "dir_4522e853adfb3285c34ceee6be627ffe.html", "dir_4522e853adfb3285c34ceee6be627ffe" ]
]; \ No newline at end of file
diff --git a/doc/html/gfe3__product__version_8h_source.html b/doc/html/gfe3__product__version_8h_source.html
index 894fbf2..e502a40 100644
--- a/doc/html/gfe3__product__version_8h_source.html
+++ b/doc/html/gfe3__product__version_8h_source.html
@@ -6,7 +6,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>NVIDIAGeForceExperienceSDK: C:/u/workspace/dev/sdkwinauto/_build/sys-msvc141-uwp_x64_RelWithDebInfo/sdk/include/gfesdk/gfe3_product_version.h Source File</title>
+<title>NVIDIAGeForceExperienceSDK: C:/u/workspace/dev/sdkwinauto/_build/p4-msvc120_x86_RelWithDebInfo/sdk/include/gfesdk/gfe3_product_version.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -85,13 +85,13 @@ $(document).ready(function(){initNavTree('gfe3__product__version_8h_source.html'
<div class="title">gfe3_product_version.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// GFE3 product version: </span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// - A.B.XY.N, if X &gt; 0</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// - A.B.Y.N, otherwise</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// A - Major release version.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// B - Minor release version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// X - _dev to _rel_next rebase counter.</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// Y - _rel_next to _rel rebase counter.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// N - Build counter.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_MAJOR 3</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_MINOR 13</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_DEV_REBASE 0</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_RNEXT_REBASE 0</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_BUILD 41</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// Composite version values. We don&#39;t concatenate them here automatically because</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// (a) one can&#39;t use L-based wchar_t conversion with preprocessor-concatenated terminals; and</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// (b) some build scripts rely upon the explicit value for NVIDIA_GFE3_VERSION / NVIDIA_GFE3_VERSION_STRING_DOT</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// Format: A,B,XY,N</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION 3,13,0,41</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Format: A.B.XY.N</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_DOT 3.13.0.41</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">// Format: &quot;A.B.XY.N&quot;</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_STRING &quot;3.13.0.41&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment">// Some common strings</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_PRODUCT_NAME &quot;NVIDIA GeForce Experience&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// These values are taken from nvVer.h</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#define NV_COMPANY_NAME_STRING_SHORT &quot;NVIDIA&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#define NV_COMPANY_NAME_STRING_FULL &quot;NVIDIA Corporation&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#define NV_COMPANY_NAME_STRING NV_COMPANY_NAME_STRING_FULL</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#define NV_COPYRIGHT_YEAR &quot;2017&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#define NV_COPYRIGHT &quot;(C) &quot; NV_COPYRIGHT_YEAR &quot; &quot; NV_COMPANY_NAME_STRING_FULL &quot;. All rights reserved.&quot; // Please do not use the non-ascii copyright symbol for (C).</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// GFE3 product version: </span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// - A.B.XY.N, if X &gt; 0</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// - A.B.Y.N, otherwise</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// A - Major release version.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// B - Minor release version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// X - _dev to _rel_next rebase counter.</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// Y - _rel_next to _rel rebase counter.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// N - Build counter.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_MAJOR 3</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_MINOR 13</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_DEV_REBASE 0</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_RNEXT_REBASE 0</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_BUILD 47</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// Composite version values. We don&#39;t concatenate them here automatically because</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// (a) one can&#39;t use L-based wchar_t conversion with preprocessor-concatenated terminals; and</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">// (b) some build scripts rely upon the explicit value for NVIDIA_GFE3_VERSION / NVIDIA_GFE3_VERSION_STRING_DOT</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// Format: A,B,XY,N</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION 3,13,0,47</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Format: A.B.XY.N</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_DOT 3.13.0.47</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">// Format: &quot;A.B.XY.N&quot;</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_VERSION_STRING &quot;3.13.0.47&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment">// Some common strings</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#define NVIDIA_GFE3_PRODUCT_NAME &quot;NVIDIA GeForce Experience&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">// These values are taken from nvVer.h</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#define NV_COMPANY_NAME_STRING_SHORT &quot;NVIDIA&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#define NV_COMPANY_NAME_STRING_FULL &quot;NVIDIA Corporation&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#define NV_COMPANY_NAME_STRING NV_COMPANY_NAME_STRING_FULL</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#define NV_COPYRIGHT_YEAR &quot;2017&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#define NV_COPYRIGHT &quot;(C) &quot; NV_COPYRIGHT_YEAR &quot; &quot; NV_COMPANY_NAME_STRING_FULL &quot;. All rights reserved.&quot; // Please do not use the non-ascii copyright symbol for (C).</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.12-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_93766c917ed92592c1894d5c5e65f172.html">sdk</a></li><li class="navelem"><a class="el" href="dir_35d2c3225318c321406c9a6beb044d2f.html">include</a></li><li class="navelem"><a class="el" href="dir_10362ab7f5c0ce07ef57bf30752a9cd8.html">gfesdk</a></li><li class="navelem"><b>gfe3_product_version.h</b></li>
+ <li class="navelem"><a class="el" href="dir_3218f9f0b6327c4561f5657fde3efe5c.html">sdk</a></li><li class="navelem"><a class="el" href="dir_6b811c56f74854312f0f79bac710ab51.html">include</a></li><li class="navelem"><a class="el" href="dir_1c824c8e748d5ae4b3cfd93e0df1dd54.html">gfesdk</a></li><li class="navelem"><b>gfe3_product_version.h</b></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
doxygen</a> 1.8.12 </li>
diff --git a/doc/html/highlights__types__cpp_8h_source.html b/doc/html/highlights__types__cpp_8h_source.html
index 6be7759..46ccf63 100644
--- a/doc/html/highlights__types__cpp_8h_source.html
+++ b/doc/html/highlights__types__cpp_8h_source.html
@@ -85,22 +85,22 @@ $(document).ready(function(){initNavTree('highlights__types__cpp_8h_source.html'
<div class="title">highlights_types_cpp.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">*</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">* NVIDIA CORPORATION and its licensors retain all intellectual property</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">* and proprietary rights in and to this software, related documentation</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">* and any modifications thereto. Any use, reproduction, disclosure or</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">* distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">* license agreement from NVIDIA CORPORATION is strictly prohibited.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#ifndef HIGHLIGHTS_TYPES_CPP_H</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#define HIGHLIGHTS_TYPES_CPP_H</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &lt;gfesdk/bindings/cpp/sdk_types_cpp.h&gt;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Avoid polluting global namespace with C api</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_gfe_s_d_k.html">GfeSDK</a></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;{</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="highlights__types_8h.html">gfesdk/highlights/highlights_types.h</a>&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;}</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_gfe_s_d_k.html">GfeSDK</a></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_highlight_definition.html"> 25</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_gfe_s_d_k_1_1_highlight_definition.html">HighlightDefinition</a></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;{</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; std::string id;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">bool</span> userDefaultInterest;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; NVGSDK_HighlightType highlightTags;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="highlights__types_8h.html#a3d7cffeef9ff6fc0170b249784535cc1">NVGSDK_HighlightSignificance</a> significance;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_highlight_definition.html#a2511ee17dafd2a096b15e6f62b1f77b2"> 31</a></span>&#160; TTranslationTable <a class="code" href="struct_gfe_s_d_k_1_1_highlight_definition.html#a2511ee17dafd2a096b15e6f62b1f77b2">nameLocaleTable</a>; </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;};</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_highlight_config_params.html"> 35</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_gfe_s_d_k_1_1_highlight_config_params.html">HighlightConfigParams</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; std::vector&lt;HighlightDefinition&gt; highlightDefinitions;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; std::string defaultLocale;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;};</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_highlight_open_group_params.html"> 42</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_gfe_s_d_k_1_1_highlight_open_group_params.html">HighlightOpenGroupParams</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; std::string groupId;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; TTranslationTable groupDescriptionLocaleTable;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;};</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_highlight_close_group_params.html"> 49</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_gfe_s_d_k_1_1_highlight_close_group_params.html">HighlightCloseGroupParams</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; std::string groupId;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">bool</span> destroyHighlights;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;};</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_screenshot_highlight_params.html"> 56</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_gfe_s_d_k_1_1_screenshot_highlight_params.html">ScreenshotHighlightParams</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; std::string groupId;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; std::string highlightId;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;};</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_video_highlight_params.html"> 63</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_gfe_s_d_k_1_1_video_highlight_params.html">VideoHighlightParams</a></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; std::string groupId;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; std::string highlightId;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; int32_t startDelta;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; int32_t endDelta;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;};</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_group_view.html"> 72</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_gfe_s_d_k_1_1_group_view.html">GroupView</a></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;{</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; std::string groupId;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; NVGSDK_HighlightType tagsFilter;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="highlights__types_8h.html#a3d7cffeef9ff6fc0170b249784535cc1">NVGSDK_HighlightSignificance</a> significanceFilter;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="struct_gfe_s_d_k_1_1_group_view.html">GroupView</a>() : tagsFilter(NVGSDK_HighlightType(0)), significanceFilter(<a class="code" href="highlights__types_8h.html#a3d7cffeef9ff6fc0170b249784535cc1">NVGSDK_HighlightSignificance</a>(0)) {}</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;};</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_summary_params.html"> 81</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_gfe_s_d_k_1_1_summary_params.html">SummaryParams</a></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; std::vector&lt;GroupView&gt; groupViews;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;};</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_highlight_user_setting.html"> 87</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_gfe_s_d_k_1_1_highlight_user_setting.html">HighlightUserSetting</a></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;{</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_highlight_user_setting.html#a867bd13b05ece98cbebadd0d34e778b9"> 89</a></span>&#160; std::string <a class="code" href="struct_gfe_s_d_k_1_1_highlight_user_setting.html#a867bd13b05ece98cbebadd0d34e778b9">highlightId</a>; </div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_highlight_user_setting.html#aee344169ace39e645bd57a3b0387e556"> 90</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_gfe_s_d_k_1_1_highlight_user_setting.html#aee344169ace39e645bd57a3b0387e556">enabled</a>; </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;};</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_get_number_of_highlights_response.html"> 96</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_gfe_s_d_k_1_1_get_number_of_highlights_response.html">GetNumberOfHighlightsResponse</a></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;{</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; uint16_t numHighlights;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;};</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword">typedef</span> std::function&lt;void(NVGSDK_RetCode rc, GetNumberOfHighlightsResponse const*, void*)&gt; TGetNumberOfHighlightsCallback;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_get_user_settings_response.html"> 103</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_gfe_s_d_k_1_1_get_user_settings_response.html">GetUserSettingsResponse</a></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;{</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; std::vector&lt;HighlightUserSetting&gt; highlightSettings;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;};</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="keyword">typedef</span> std::function&lt;void(NVGSDK_RetCode rc, GetUserSettingsResponse const*, void*)&gt; TGetUserSettingsCallback;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;}</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">#endif //HIGHLIGHTS_TYPES_CPP_H</span></div><div class="ttc" id="struct_gfe_s_d_k_1_1_summary_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_summary_params.html">GfeSDK::SummaryParams</a></div><div class="ttdoc">C++ binding for NVGSDK_SummaryParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00081">highlights_types_cpp.h:81</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_screenshot_highlight_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_screenshot_highlight_params.html">GfeSDK::ScreenshotHighlightParams</a></div><div class="ttdoc">C++ binding for NVGSDK_ScreenshotHighlightParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00056">highlights_types_cpp.h:56</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_close_group_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_close_group_params.html">GfeSDK::HighlightCloseGroupParams</a></div><div class="ttdoc">C++ binding for NVGSDK_HighlightCloseGroupParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00049">highlights_types_cpp.h:49</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_open_group_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_open_group_params.html">GfeSDK::HighlightOpenGroupParams</a></div><div class="ttdoc">C++ binding for NVGSDK_HighlightOpenGroupParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00042">highlights_types_cpp.h:42</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_get_user_settings_response_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_get_user_settings_response.html">GfeSDK::GetUserSettingsResponse</a></div><div class="ttdoc">C++ binding for NVGSDK_Highlights_GetUserSettingsResponse. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00103">highlights_types_cpp.h:103</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">*</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">* NVIDIA CORPORATION and its licensors retain all intellectual property</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">* and proprietary rights in and to this software, related documentation</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">* and any modifications thereto. Any use, reproduction, disclosure or</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">* distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">* license agreement from NVIDIA CORPORATION is strictly prohibited.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#ifndef HIGHLIGHTS_TYPES_CPP_H</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#define HIGHLIGHTS_TYPES_CPP_H</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &lt;gfesdk/bindings/cpp/sdk_types_cpp.h&gt;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Avoid polluting global namespace with C api</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_gfe_s_d_k.html">GfeSDK</a></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;{</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="highlights__types_8h.html">gfesdk/highlights/highlights_types.h</a>&gt;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;}</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_gfe_s_d_k.html">GfeSDK</a></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_highlight_definition.html"> 25</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_gfe_s_d_k_1_1_highlight_definition.html">HighlightDefinition</a></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;{</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; std::string id;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">bool</span> userDefaultInterest;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; NVGSDK_HighlightType highlightTags;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="highlights__types_8h.html#a3d7cffeef9ff6fc0170b249784535cc1">NVGSDK_HighlightSignificance</a> significance;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_highlight_definition.html#a2511ee17dafd2a096b15e6f62b1f77b2"> 31</a></span>&#160; TTranslationTable <a class="code" href="struct_gfe_s_d_k_1_1_highlight_definition.html#a2511ee17dafd2a096b15e6f62b1f77b2">nameLocaleTable</a>; </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="code" href="struct_gfe_s_d_k_1_1_highlight_definition.html">HighlightDefinition</a>() : highlightTags(static_cast&lt;NVGSDK_HighlightType&gt;(0)), significance(static_cast&lt;<a class="code" href="highlights__types_8h.html#a3d7cffeef9ff6fc0170b249784535cc1">NVGSDK_HighlightSignificance</a>&gt;(0)), userDefaultInterest(true) {}</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;};</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_highlight_config_params.html"> 36</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_gfe_s_d_k_1_1_highlight_config_params.html">HighlightConfigParams</a></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; std::vector&lt;HighlightDefinition&gt; highlightDefinitions;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; std::string defaultLocale;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;};</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_highlight_open_group_params.html"> 43</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_gfe_s_d_k_1_1_highlight_open_group_params.html">HighlightOpenGroupParams</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; std::string groupId;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; TTranslationTable groupDescriptionLocaleTable;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;};</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_highlight_close_group_params.html"> 50</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_gfe_s_d_k_1_1_highlight_close_group_params.html">HighlightCloseGroupParams</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; std::string groupId;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordtype">bool</span> destroyHighlights;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;};</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_screenshot_highlight_params.html"> 57</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_gfe_s_d_k_1_1_screenshot_highlight_params.html">ScreenshotHighlightParams</a></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; std::string groupId;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; std::string highlightId;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;};</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_video_highlight_params.html"> 64</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_gfe_s_d_k_1_1_video_highlight_params.html">VideoHighlightParams</a></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; std::string groupId;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; std::string highlightId;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; int32_t startDelta;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; int32_t endDelta;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;};</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_group_view.html"> 73</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_gfe_s_d_k_1_1_group_view.html">GroupView</a></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;{</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; std::string groupId;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; NVGSDK_HighlightType tagsFilter;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="highlights__types_8h.html#a3d7cffeef9ff6fc0170b249784535cc1">NVGSDK_HighlightSignificance</a> significanceFilter;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="struct_gfe_s_d_k_1_1_group_view.html">GroupView</a>() : tagsFilter(NVGSDK_HighlightType(0)), significanceFilter(<a class="code" href="highlights__types_8h.html#a3d7cffeef9ff6fc0170b249784535cc1">NVGSDK_HighlightSignificance</a>(0)) {}</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;};</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_summary_params.html"> 82</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_gfe_s_d_k_1_1_summary_params.html">SummaryParams</a></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;{</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; std::vector&lt;GroupView&gt; groupViews;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;};</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_highlight_user_setting.html"> 88</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_gfe_s_d_k_1_1_highlight_user_setting.html">HighlightUserSetting</a></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;{</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_highlight_user_setting.html#a867bd13b05ece98cbebadd0d34e778b9"> 90</a></span>&#160; std::string <a class="code" href="struct_gfe_s_d_k_1_1_highlight_user_setting.html#a867bd13b05ece98cbebadd0d34e778b9">highlightId</a>; </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_highlight_user_setting.html#aee344169ace39e645bd57a3b0387e556"> 91</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="struct_gfe_s_d_k_1_1_highlight_user_setting.html#aee344169ace39e645bd57a3b0387e556">enabled</a>; </div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;};</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_get_number_of_highlights_response.html"> 97</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_gfe_s_d_k_1_1_get_number_of_highlights_response.html">GetNumberOfHighlightsResponse</a></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;{</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; uint16_t numHighlights;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;};</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="keyword">typedef</span> std::function&lt;void(NVGSDK_RetCode rc, GetNumberOfHighlightsResponse const*, void*)&gt; TGetNumberOfHighlightsCallback;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="struct_gfe_s_d_k_1_1_get_user_settings_response.html"> 104</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_gfe_s_d_k_1_1_get_user_settings_response.html">GetUserSettingsResponse</a></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;{</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; std::vector&lt;HighlightUserSetting&gt; highlightSettings;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;};</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="keyword">typedef</span> std::function&lt;void(NVGSDK_RetCode rc, GetUserSettingsResponse const*, void*)&gt; TGetUserSettingsCallback;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;}</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor">#endif //HIGHLIGHTS_TYPES_CPP_H</span></div><div class="ttc" id="struct_gfe_s_d_k_1_1_summary_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_summary_params.html">GfeSDK::SummaryParams</a></div><div class="ttdoc">C++ binding for NVGSDK_SummaryParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00082">highlights_types_cpp.h:82</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_screenshot_highlight_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_screenshot_highlight_params.html">GfeSDK::ScreenshotHighlightParams</a></div><div class="ttdoc">C++ binding for NVGSDK_ScreenshotHighlightParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00057">highlights_types_cpp.h:57</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_close_group_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_close_group_params.html">GfeSDK::HighlightCloseGroupParams</a></div><div class="ttdoc">C++ binding for NVGSDK_HighlightCloseGroupParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00050">highlights_types_cpp.h:50</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_open_group_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_open_group_params.html">GfeSDK::HighlightOpenGroupParams</a></div><div class="ttdoc">C++ binding for NVGSDK_HighlightOpenGroupParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00043">highlights_types_cpp.h:43</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_get_user_settings_response_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_get_user_settings_response.html">GfeSDK::GetUserSettingsResponse</a></div><div class="ttdoc">C++ binding for NVGSDK_Highlights_GetUserSettingsResponse. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00104">highlights_types_cpp.h:104</a></div></div>
<div class="ttc" id="highlights__types_8h_html_a3d7cffeef9ff6fc0170b249784535cc1"><div class="ttname"><a href="highlights__types_8h.html#a3d7cffeef9ff6fc0170b249784535cc1">NVGSDK_HighlightSignificance</a></div><div class="ttdeci">NVGSDK_HighlightSignificance</div><div class="ttdef"><b>Definition:</b> <a href="highlights__types_8h_source.html#l00023">highlights_types.h:23</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_config_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_config_params.html">GfeSDK::HighlightConfigParams</a></div><div class="ttdoc">C++ binding for NVGSDK_HighlightConfigParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00035">highlights_types_cpp.h:35</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_video_highlight_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_video_highlight_params.html">GfeSDK::VideoHighlightParams</a></div><div class="ttdoc">C++ binding for NVGSDK_VideoHighlightParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00063">highlights_types_cpp.h:63</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_user_setting_html_a867bd13b05ece98cbebadd0d34e778b9"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_user_setting.html#a867bd13b05ece98cbebadd0d34e778b9">GfeSDK::HighlightUserSetting::highlightId</a></div><div class="ttdeci">std::string highlightId</div><div class="ttdoc">Unique id for game event. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00089">highlights_types_cpp.h:89</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_group_view_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_group_view.html">GfeSDK::GroupView</a></div><div class="ttdoc">C++ binding for NVGSDK_GroupView. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00072">highlights_types_cpp.h:72</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_user_setting_html_aee344169ace39e645bd57a3b0387e556"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_user_setting.html#aee344169ace39e645bd57a3b0387e556">GfeSDK::HighlightUserSetting::enabled</a></div><div class="ttdeci">bool enabled</div><div class="ttdoc">Boolean for whether the user wants to record this type of highlight. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00090">highlights_types_cpp.h:90</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_get_number_of_highlights_response_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_get_number_of_highlights_response.html">GfeSDK::GetNumberOfHighlightsResponse</a></div><div class="ttdoc">C++ binding for NVGSDK_GetNumberOfHighlightsResponse. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00096">highlights_types_cpp.h:96</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_config_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_config_params.html">GfeSDK::HighlightConfigParams</a></div><div class="ttdoc">C++ binding for NVGSDK_HighlightConfigParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00036">highlights_types_cpp.h:36</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_video_highlight_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_video_highlight_params.html">GfeSDK::VideoHighlightParams</a></div><div class="ttdoc">C++ binding for NVGSDK_VideoHighlightParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00064">highlights_types_cpp.h:64</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_user_setting_html_a867bd13b05ece98cbebadd0d34e778b9"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_user_setting.html#a867bd13b05ece98cbebadd0d34e778b9">GfeSDK::HighlightUserSetting::highlightId</a></div><div class="ttdeci">std::string highlightId</div><div class="ttdoc">Unique id for game event. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00090">highlights_types_cpp.h:90</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_group_view_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_group_view.html">GfeSDK::GroupView</a></div><div class="ttdoc">C++ binding for NVGSDK_GroupView. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00073">highlights_types_cpp.h:73</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_user_setting_html_aee344169ace39e645bd57a3b0387e556"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_user_setting.html#aee344169ace39e645bd57a3b0387e556">GfeSDK::HighlightUserSetting::enabled</a></div><div class="ttdeci">bool enabled</div><div class="ttdoc">Boolean for whether the user wants to record this type of highlight. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00091">highlights_types_cpp.h:91</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_get_number_of_highlights_response_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_get_number_of_highlights_response.html">GfeSDK::GetNumberOfHighlightsResponse</a></div><div class="ttdoc">C++ binding for NVGSDK_GetNumberOfHighlightsResponse. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00097">highlights_types_cpp.h:97</a></div></div>
<div class="ttc" id="namespace_gfe_s_d_k_html"><div class="ttname"><a href="namespace_gfe_s_d_k.html">GfeSDK</a></div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00016">highlights_types_cpp.h:16</a></div></div>
<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_definition_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a></div><div class="ttdoc">C++ binding for NVGSDK_Highlight. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00025">highlights_types_cpp.h:25</a></div></div>
<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_definition_html_a2511ee17dafd2a096b15e6f62b1f77b2"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_definition.html#a2511ee17dafd2a096b15e6f62b1f77b2">GfeSDK::HighlightDefinition::nameLocaleTable</a></div><div class="ttdeci">TTranslationTable nameLocaleTable</div><div class="ttdoc">Locale/translation pairs. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00031">highlights_types_cpp.h:31</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_user_setting_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_user_setting.html">GfeSDK::HighlightUserSetting</a></div><div class="ttdoc">C++ binding for NVGSDK_HighlightUserSetting. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00087">highlights_types_cpp.h:87</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_user_setting_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_user_setting.html">GfeSDK::HighlightUserSetting</a></div><div class="ttdoc">C++ binding for NVGSDK_HighlightUserSetting. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00088">highlights_types_cpp.h:88</a></div></div>
<div class="ttc" id="highlights__types_8h_html"><div class="ttname"><a href="highlights__types_8h.html">highlights_types.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/doc/html/ihighlights__cpp_8h_source.html b/doc/html/ihighlights__cpp_8h_source.html
index a7f941c..7ca55dd 100644
--- a/doc/html/ihighlights__cpp_8h_source.html
+++ b/doc/html/ihighlights__cpp_8h_source.html
@@ -86,16 +86,16 @@ $(document).ready(function(){initNavTree('ihighlights__cpp_8h_source.html','');}
</div><!--header-->
<div class="contents">
<a href="ihighlights__cpp_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">*</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">* NVIDIA CORPORATION and its licensors retain all intellectual property</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">* and proprietary rights in and to this software, related documentation</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">* and any modifications thereto. Any use, reproduction, disclosure or</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">* distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">* license agreement from NVIDIA CORPORATION is strictly prohibited.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#ifndef GFESDK_IHIGHLIGHTS_CPP_H</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#define GFESDK_IHIGHLIGHTS_CPP_H</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="isdk__cpp_8h.html">gfesdk/bindings/cpp/isdk_cpp.h</a>&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &lt;gfesdk/bindings/cpp/highlights/highlights_types_cpp.h&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_gfe_s_d_k.html">GfeSDK</a></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// Avoid polluting global namespace with C api, so put it inside namespace</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="ihighlights_8h.html">gfesdk/highlights/ihighlights.h</a>&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="class_gfe_s_d_k_1_1_highlights.html"> 28</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_gfe_s_d_k_1_1_highlights.html">Highlights</a></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;{</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">static</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights.html">Highlights</a>* Create(<a class="code" href="class_gfe_s_d_k_1_1_core.html">Core</a>* core);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_gfe_s_d_k_1_1_highlights.html">Highlights</a>() {}</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights.html#a8e522535c3393a1911e2bbb65c71eb52">ConfigureAsync</a>(<a class="code" href="struct_gfe_s_d_k_1_1_highlight_config_params.html">HighlightConfigParams</a> <span class="keyword">const</span>&amp; params, TCallback cb = <span class="keyword">nullptr</span>, <span class="keywordtype">void</span>* cbContext = <span class="keyword">nullptr</span>) = 0;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights.html#a593d1bd58183bc0b53c7dee7991d8491">GetUserSettingsAsync</a>(TGetUserSettingsCallback cb = <span class="keyword">nullptr</span>, <span class="keywordtype">void</span>* cbContext = <span class="keyword">nullptr</span>) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights.html#ab1b35bd4fe9e8aac357db3aeabfefa1b">OpenGroupAsync</a>(<a class="code" href="struct_gfe_s_d_k_1_1_highlight_open_group_params.html">HighlightOpenGroupParams</a> <span class="keyword">const</span>&amp; params, TCallback cb = <span class="keyword">nullptr</span>, <span class="keywordtype">void</span>* cbContext = <span class="keyword">nullptr</span>) = 0;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights.html#ac53536039527813888e5404a3a20e4ab">CloseGroupAsync</a>(<a class="code" href="struct_gfe_s_d_k_1_1_highlight_close_group_params.html">HighlightCloseGroupParams</a> <span class="keyword">const</span>&amp; params, TCallback cb = <span class="keyword">nullptr</span>, <span class="keywordtype">void</span>* cbContext = <span class="keyword">nullptr</span>) = 0;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights.html#a84475c751b97bf00d55e767b55e89bff">SetScreenshotHighlightAsync</a>(<a class="code" href="struct_gfe_s_d_k_1_1_screenshot_highlight_params.html">ScreenshotHighlightParams</a> <span class="keyword">const</span>&amp; params, TCallback cb = <span class="keyword">nullptr</span>, <span class="keywordtype">void</span>* cbContext = <span class="keyword">nullptr</span>) = 0;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights.html#a982f27414a0672d50f6f156ecf557791">SetVideoHighlightAsync</a>(<a class="code" href="struct_gfe_s_d_k_1_1_video_highlight_params.html">VideoHighlightParams</a> <span class="keyword">const</span>&amp; params, TCallback cb = <span class="keyword">nullptr</span>, <span class="keywordtype">void</span>* cbContext = <span class="keyword">nullptr</span>) = 0;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights.html#a9d1ab59542571efe90391aea1503411b">OpenSummaryAsync</a>(<a class="code" href="struct_gfe_s_d_k_1_1_summary_params.html">SummaryParams</a> <span class="keyword">const</span>&amp; params, TCallback cb = <span class="keyword">nullptr</span>, <span class="keywordtype">void</span>* cbContext = <span class="keyword">nullptr</span>) = 0;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights.html#ad640f12621aa2ab8f0bf39b859f8d849">GetNumberOfHighlightsAsync</a>(<a class="code" href="struct_gfe_s_d_k_1_1_group_view.html">GroupView</a> <span class="keyword">const</span>&amp; params, TGetNumberOfHighlightsCallback cb = <span class="keyword">nullptr</span>, <span class="keywordtype">void</span>* cbContext = <span class="keyword">nullptr</span>) = 0;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;};</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;}</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#endif //GFESDK_IHIGHLIGHTS_CPP_H</span></div><div class="ttc" id="class_gfe_s_d_k_1_1_highlights_html_ad640f12621aa2ab8f0bf39b859f8d849"><div class="ttname"><a href="class_gfe_s_d_k_1_1_highlights.html#ad640f12621aa2ab8f0bf39b859f8d849">GfeSDK::Highlights::GetNumberOfHighlightsAsync</a></div><div class="ttdeci">virtual void GetNumberOfHighlightsAsync(GroupView const &amp;params, TGetNumberOfHighlightsCallback cb=nullptr, void *cbContext=nullptr)=0</div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_summary_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_summary_params.html">GfeSDK::SummaryParams</a></div><div class="ttdoc">C++ binding for NVGSDK_SummaryParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00081">highlights_types_cpp.h:81</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_screenshot_highlight_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_screenshot_highlight_params.html">GfeSDK::ScreenshotHighlightParams</a></div><div class="ttdoc">C++ binding for NVGSDK_ScreenshotHighlightParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00056">highlights_types_cpp.h:56</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_close_group_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_close_group_params.html">GfeSDK::HighlightCloseGroupParams</a></div><div class="ttdoc">C++ binding for NVGSDK_HighlightCloseGroupParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00049">highlights_types_cpp.h:49</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_open_group_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_open_group_params.html">GfeSDK::HighlightOpenGroupParams</a></div><div class="ttdoc">C++ binding for NVGSDK_HighlightOpenGroupParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00042">highlights_types_cpp.h:42</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_summary_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_summary_params.html">GfeSDK::SummaryParams</a></div><div class="ttdoc">C++ binding for NVGSDK_SummaryParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00082">highlights_types_cpp.h:82</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_screenshot_highlight_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_screenshot_highlight_params.html">GfeSDK::ScreenshotHighlightParams</a></div><div class="ttdoc">C++ binding for NVGSDK_ScreenshotHighlightParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00057">highlights_types_cpp.h:57</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_close_group_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_close_group_params.html">GfeSDK::HighlightCloseGroupParams</a></div><div class="ttdoc">C++ binding for NVGSDK_HighlightCloseGroupParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00050">highlights_types_cpp.h:50</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_open_group_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_open_group_params.html">GfeSDK::HighlightOpenGroupParams</a></div><div class="ttdoc">C++ binding for NVGSDK_HighlightOpenGroupParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00043">highlights_types_cpp.h:43</a></div></div>
<div class="ttc" id="class_gfe_s_d_k_1_1_highlights_html_ac53536039527813888e5404a3a20e4ab"><div class="ttname"><a href="class_gfe_s_d_k_1_1_highlights.html#ac53536039527813888e5404a3a20e4ab">GfeSDK::Highlights::CloseGroupAsync</a></div><div class="ttdeci">virtual void CloseGroupAsync(HighlightCloseGroupParams const &amp;params, TCallback cb=nullptr, void *cbContext=nullptr)=0</div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_config_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_config_params.html">GfeSDK::HighlightConfigParams</a></div><div class="ttdoc">C++ binding for NVGSDK_HighlightConfigParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00035">highlights_types_cpp.h:35</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_video_highlight_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_video_highlight_params.html">GfeSDK::VideoHighlightParams</a></div><div class="ttdoc">C++ binding for NVGSDK_VideoHighlightParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00063">highlights_types_cpp.h:63</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_config_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_config_params.html">GfeSDK::HighlightConfigParams</a></div><div class="ttdoc">C++ binding for NVGSDK_HighlightConfigParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00036">highlights_types_cpp.h:36</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_video_highlight_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_video_highlight_params.html">GfeSDK::VideoHighlightParams</a></div><div class="ttdoc">C++ binding for NVGSDK_VideoHighlightParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00064">highlights_types_cpp.h:64</a></div></div>
<div class="ttc" id="class_gfe_s_d_k_1_1_highlights_html_a593d1bd58183bc0b53c7dee7991d8491"><div class="ttname"><a href="class_gfe_s_d_k_1_1_highlights.html#a593d1bd58183bc0b53c7dee7991d8491">GfeSDK::Highlights::GetUserSettingsAsync</a></div><div class="ttdeci">virtual void GetUserSettingsAsync(TGetUserSettingsCallback cb=nullptr, void *cbContext=nullptr) const =0</div></div>
<div class="ttc" id="isdk__cpp_8h_html"><div class="ttname"><a href="isdk__cpp_8h.html">isdk_cpp.h</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_group_view_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_group_view.html">GfeSDK::GroupView</a></div><div class="ttdoc">C++ binding for NVGSDK_GroupView. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00072">highlights_types_cpp.h:72</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_group_view_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_group_view.html">GfeSDK::GroupView</a></div><div class="ttdoc">C++ binding for NVGSDK_GroupView. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00073">highlights_types_cpp.h:73</a></div></div>
<div class="ttc" id="class_gfe_s_d_k_1_1_highlights_html_a84475c751b97bf00d55e767b55e89bff"><div class="ttname"><a href="class_gfe_s_d_k_1_1_highlights.html#a84475c751b97bf00d55e767b55e89bff">GfeSDK::Highlights::SetScreenshotHighlightAsync</a></div><div class="ttdeci">virtual void SetScreenshotHighlightAsync(ScreenshotHighlightParams const &amp;params, TCallback cb=nullptr, void *cbContext=nullptr)=0</div></div>
<div class="ttc" id="class_gfe_s_d_k_1_1_highlights_html_a8e522535c3393a1911e2bbb65c71eb52"><div class="ttname"><a href="class_gfe_s_d_k_1_1_highlights.html#a8e522535c3393a1911e2bbb65c71eb52">GfeSDK::Highlights::ConfigureAsync</a></div><div class="ttdeci">virtual void ConfigureAsync(HighlightConfigParams const &amp;params, TCallback cb=nullptr, void *cbContext=nullptr)=0</div></div>
<div class="ttc" id="class_gfe_s_d_k_1_1_highlights_html_a982f27414a0672d50f6f156ecf557791"><div class="ttname"><a href="class_gfe_s_d_k_1_1_highlights.html#a982f27414a0672d50f6f156ecf557791">GfeSDK::Highlights::SetVideoHighlightAsync</a></div><div class="ttdeci">virtual void SetVideoHighlightAsync(VideoHighlightParams const &amp;params, TCallback cb=nullptr, void *cbContext=nullptr)=0</div></div>
diff --git a/doc/html/ihighlights__cpp__impl_8h_source.html b/doc/html/ihighlights__cpp__impl_8h_source.html
index ffdb728..f14e0ab 100644
--- a/doc/html/ihighlights__cpp__impl_8h_source.html
+++ b/doc/html/ihighlights__cpp__impl_8h_source.html
@@ -87,17 +87,17 @@ $(document).ready(function(){initNavTree('ihighlights__cpp__impl_8h_source.html'
<div class="contents">
<a href="ihighlights__cpp__impl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">*</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">* NVIDIA CORPORATION and its licensors retain all intellectual property</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">* and proprietary rights in and to this software, related documentation</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">* and any modifications thereto. Any use, reproduction, disclosure or</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">* distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">* license agreement from NVIDIA CORPORATION is strictly prohibited.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#ifndef GFESDK_IHIGHLIGHTS_CPP_IMPL_H</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#define GFESDK_IHIGHLIGHTS_CPP_IMPL_H</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="ihighlights__cpp_8h.html">ihighlights_cpp.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="isdk__cpp__impl_8h.html">gfesdk/bindings/cpp/isdk_cpp_impl.h</a>&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_gfe_s_d_k.html">GfeSDK</a></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;{</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="class_gfe_s_d_k_1_1_highlights_impl.html"> 26</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html">HighlightsImpl</a> : <span class="keyword">public</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights.html">Highlights</a></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html#adfee0bca7a525fd81406d719ad1aaed9">ConfigureAsync</a>(<a class="code" href="struct_gfe_s_d_k_1_1_highlight_config_params.html">HighlightConfigParams</a> <span class="keyword">const</span>&amp; params, TCallback cb = <span class="keyword">nullptr</span>, <span class="keywordtype">void</span>* cbContext = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html#ac6238d6e68d8b3ed07c2753f35ea8040">GetUserSettingsAsync</a>(TGetUserSettingsCallback cb = <span class="keyword">nullptr</span>, <span class="keywordtype">void</span>* cbContext = <span class="keyword">nullptr</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html#a8420e07f1812fba8bf961e90e5795d3b">OpenGroupAsync</a>(<a class="code" href="struct_gfe_s_d_k_1_1_highlight_open_group_params.html">HighlightOpenGroupParams</a> <span class="keyword">const</span>&amp; params, TCallback cb = <span class="keyword">nullptr</span>, <span class="keywordtype">void</span>* cbContext = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html#a22481d623b4124cd7277b30a70a11fad">CloseGroupAsync</a>(<a class="code" href="struct_gfe_s_d_k_1_1_highlight_close_group_params.html">HighlightCloseGroupParams</a> <span class="keyword">const</span>&amp; params, TCallback cb = <span class="keyword">nullptr</span>, <span class="keywordtype">void</span>* cbContext = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html#a10ec6fa65e8afb5ea417f4cfe7f1d5ab">SetScreenshotHighlightAsync</a>(<a class="code" href="struct_gfe_s_d_k_1_1_screenshot_highlight_params.html">ScreenshotHighlightParams</a> <span class="keyword">const</span>&amp; params, TCallback cb = <span class="keyword">nullptr</span>, <span class="keywordtype">void</span>* cbContext = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html#ab4989563440e14295449166c626ac3a9">SetVideoHighlightAsync</a>(<a class="code" href="struct_gfe_s_d_k_1_1_video_highlight_params.html">VideoHighlightParams</a> <span class="keyword">const</span>&amp; params, TCallback cb = <span class="keyword">nullptr</span>, <span class="keywordtype">void</span>* cbContext = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html#ab31f1319b9dcf33cf9146916f8a1d5f3">OpenSummaryAsync</a>(<a class="code" href="struct_gfe_s_d_k_1_1_summary_params.html">SummaryParams</a> <span class="keyword">const</span>&amp; params, TCallback cb = <span class="keyword">nullptr</span>, <span class="keywordtype">void</span>* cbContext = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html#a358fcbe7699b79ed79952bb2eab12830">GetNumberOfHighlightsAsync</a>(<a class="code" href="struct_gfe_s_d_k_1_1_group_view.html">GroupView</a> <span class="keyword">const</span>&amp; params, TGetNumberOfHighlightsCallback cb = <span class="keyword">nullptr</span>, <span class="keywordtype">void</span>* cbContext = <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_gfe_s_d_k_1_1_highlights.html">Highlights</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="comment">// Remove default construct, copy and assignment operators</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html">HighlightsImpl</a>(<a class="code" href="class_gfe_s_d_k_1_1_core.html">Core</a>* core) : m_handle(core ? core-&gt;GetHandle() : <span class="keyword">nullptr</span>) {}</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html">HighlightsImpl</a>(<span class="keyword">const</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html">HighlightsImpl</a>&amp; other) {}</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html">HighlightsImpl</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html">HighlightsImpl</a>&amp; other) {}</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; NVGSDK_HANDLE* m_handle;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;};</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keyword">inline</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights.html">Highlights</a>* Highlights::Create(<a class="code" href="class_gfe_s_d_k_1_1_core.html">Core</a>* core)</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html">HighlightsImpl</a>(core);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="class_gfe_s_d_k_1_1_highlights_impl.html#adfee0bca7a525fd81406d719ad1aaed9"> 62</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html#adfee0bca7a525fd81406d719ad1aaed9">HighlightsImpl::ConfigureAsync</a>(<a class="code" href="struct_gfe_s_d_k_1_1_highlight_config_params.html">HighlightConfigParams</a> <span class="keyword">const</span>&amp; params, TCallback callback, <span class="keywordtype">void</span>* context)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="struct_n_v_g_s_d_k___highlight_config_params.html">NVGSDK_HighlightConfigParams</a> cParams;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; std::vector&lt;NVGSDK_Highlight&gt; cHighlights;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; std::vector&lt;std::vector&lt;NVGSDK_LocalizedPair&gt;&gt; cLocaleMaps;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = params.highlightDefinitions.begin(); it != params.highlightDefinitions.end(); ++it)</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; cLocaleMaps.push_back(std::vector&lt;NVGSDK_LocalizedPair&gt;());</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> localeIt = it-&gt;nameLocaleTable.begin(); localeIt != it-&gt;nameLocaleTable.end(); ++localeIt)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; cLocaleMaps.back().push_back({</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; localeIt-&gt;first.c_str(),</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; localeIt-&gt;second.c_str()</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; });</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; cHighlights.push_back({</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; it-&gt;id.c_str(),</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; it-&gt;userDefaultInterest,</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; it-&gt;highlightTags,</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; it-&gt;significance,</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; &amp;cLocaleMaps.back()[0],</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; it-&gt;nameLocaleTable.size()</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; });</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; cParams.highlightDefinitionTable = &amp;cHighlights[0];</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; cParams.highlightTableSize = cHighlights.size();</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; cParams.<a class="code" href="struct_n_v_g_s_d_k___highlight_config_params.html#a7f4f852d4fe97048f20dcdcc401ab82b">defaultLocale</a> = params.defaultLocale.c_str();</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="ihighlights_8h.html#a0407132e7fd44771370ecfa03fdfce8d">NVGSDK_Highlights_ConfigureAsync</a>(m_handle, &amp;cParams, CoreImpl::callbackWrapper, <span class="keyword">new</span> CoreImpl::CallbackContext&lt;TCallback&gt;({ callback, context }));</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;}</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="class_gfe_s_d_k_1_1_highlights_impl.html#ac6238d6e68d8b3ed07c2753f35ea8040"> 92</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html#ac6238d6e68d8b3ed07c2753f35ea8040">HighlightsImpl::GetUserSettingsAsync</a>(TGetUserSettingsCallback callback, <span class="keywordtype">void</span>* context)<span class="keyword"> const</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="ihighlights_8h.html#a48a359560944097729acf3dff42e34bb">NVGSDK_Highlights_GetUserSettingsAsync</a>(m_handle, [](NVGSDK_RetCode rc, <a class="code" href="struct_n_v_g_s_d_k___highlights___user_settings.html">NVGSDK_Highlights_UserSettings</a> <span class="keyword">const</span>* data, <span class="keywordtype">void</span>* context) {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; std::unique_ptr&lt;CoreImpl::CallbackContext&lt;TGetUserSettingsCallback&gt;&gt; callbackContext(<span class="keyword">reinterpret_cast&lt;</span>CoreImpl::CallbackContext&lt;TGetUserSettingsCallback&gt;*<span class="keyword">&gt;</span>(context));</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span> (!callbackContext-&gt;callback) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span> (NVGSDK_FAILED(rc))</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> callbackContext-&gt;callback(rc, <span class="keyword">nullptr</span>, callbackContext-&gt;appContext);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="struct_gfe_s_d_k_1_1_get_user_settings_response.html">GetUserSettingsResponse</a> r;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; data-&gt;highlightSettingTableSize; ++i)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; r.highlightSettings.push_back({</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; data-&gt;highlightSettingTable[i].<a class="code" href="struct_n_v_g_s_d_k___highlight_user_setting.html#a048402ca61d36ae60fbee7a5fb2252b4">id</a>,</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; data-&gt;highlightSettingTable[i].<a class="code" href="struct_n_v_g_s_d_k___highlight_user_setting.html#a44eafd6943fb886c236cd4ff356c666d">enabled</a></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; });</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; callbackContext-&gt;callback(rc, &amp;r, callbackContext-&gt;appContext);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }, <span class="keyword">new</span> CoreImpl::CallbackContext&lt;TGetUserSettingsCallback&gt;({ callback, context }));</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="class_gfe_s_d_k_1_1_highlights_impl.html#a8420e07f1812fba8bf961e90e5795d3b"> 115</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html#a8420e07f1812fba8bf961e90e5795d3b">HighlightsImpl::OpenGroupAsync</a>(<a class="code" href="struct_gfe_s_d_k_1_1_highlight_open_group_params.html">HighlightOpenGroupParams</a> <span class="keyword">const</span>&amp; params, TCallback callback, <span class="keywordtype">void</span>* context)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="struct_n_v_g_s_d_k___highlight_open_group_params.html">NVGSDK_HighlightOpenGroupParams</a> cParams;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; std::vector&lt;NVGSDK_LocalizedPair&gt; localePairs;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; CoreImpl::translateLocaleTable(params.groupDescriptionLocaleTable, localePairs);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; cParams.<a class="code" href="struct_n_v_g_s_d_k___highlight_open_group_params.html#a3e9f6351540609fc3e853d5a16188da2">groupId</a> = params.groupId.c_str();</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; cParams.<a class="code" href="struct_n_v_g_s_d_k___highlight_open_group_params.html#a3d06bbfc6586ca5378eedc9a5984d662">groupDescriptionTable</a> = &amp;localePairs[0];</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; cParams.<a class="code" href="struct_n_v_g_s_d_k___highlight_open_group_params.html#a7a3c123385683c40bd3a891e7af268bb">groupDescriptionTableSize</a> = localePairs.size();</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="ihighlights_8h.html#aa49250dbc063e242607123333f8da892">NVGSDK_Highlights_OpenGroupAsync</a>(m_handle, &amp;cParams, CoreImpl::callbackWrapper, <span class="keyword">new</span> CoreImpl::CallbackContext&lt;TCallback&gt;({ callback, context }));</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;}</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="class_gfe_s_d_k_1_1_highlights_impl.html#a22481d623b4124cd7277b30a70a11fad"> 128</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html#a22481d623b4124cd7277b30a70a11fad">HighlightsImpl::CloseGroupAsync</a>(<a class="code" href="struct_gfe_s_d_k_1_1_highlight_close_group_params.html">HighlightCloseGroupParams</a> <span class="keyword">const</span>&amp; params, TCallback callback, <span class="keywordtype">void</span>* context)</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;{</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="struct_n_v_g_s_d_k___highlight_close_group_params.html">NVGSDK_HighlightCloseGroupParams</a> cParams;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; cParams.<a class="code" href="struct_n_v_g_s_d_k___highlight_close_group_params.html#a6f1e0e8a5399e868588a83e1c81ad9c3">groupId</a> = params.groupId.c_str();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; cParams.<a class="code" href="struct_n_v_g_s_d_k___highlight_close_group_params.html#a3d7eae61163c4616a42569ca8d7785c6">destroyHighlights</a> = params.destroyHighlights;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="ihighlights_8h.html#aa3b6190835ada28f4cee015645814e75">NVGSDK_Highlights_CloseGroupAsync</a>(m_handle, &amp;cParams, CoreImpl::callbackWrapper, <span class="keyword">new</span> CoreImpl::CallbackContext&lt;TCallback&gt;({ callback, context }));</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;}</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="class_gfe_s_d_k_1_1_highlights_impl.html#a10ec6fa65e8afb5ea417f4cfe7f1d5ab"> 137</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html#a10ec6fa65e8afb5ea417f4cfe7f1d5ab">HighlightsImpl::SetScreenshotHighlightAsync</a>(<a class="code" href="struct_gfe_s_d_k_1_1_screenshot_highlight_params.html">ScreenshotHighlightParams</a> <span class="keyword">const</span>&amp; params, TCallback callback, <span class="keywordtype">void</span>* context)</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;{</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="struct_n_v_g_s_d_k___screenshot_highlight_params.html">NVGSDK_ScreenshotHighlightParams</a> cParams;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; cParams.<a class="code" href="struct_n_v_g_s_d_k___screenshot_highlight_params.html#adef68850dccafb01bc761da47413359d">groupId</a> = params.groupId.c_str();</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; cParams.<a class="code" href="struct_n_v_g_s_d_k___screenshot_highlight_params.html#a9fb8219abe683974c0df4963a6794949">highlightId</a> = params.highlightId.c_str();</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="ihighlights_8h.html#a16d77849897fc5dca0e1c813525cd576">NVGSDK_Highlights_SetScreenshotHighlightAsync</a>(m_handle, &amp;cParams, CoreImpl::callbackWrapper, <span class="keyword">new</span> CoreImpl::CallbackContext&lt;TCallback&gt;({ callback, context }));</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;}</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="class_gfe_s_d_k_1_1_highlights_impl.html#ab4989563440e14295449166c626ac3a9"> 145</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html#ab4989563440e14295449166c626ac3a9">HighlightsImpl::SetVideoHighlightAsync</a>(<a class="code" href="struct_gfe_s_d_k_1_1_video_highlight_params.html">VideoHighlightParams</a> <span class="keyword">const</span>&amp; params, TCallback callback, <span class="keywordtype">void</span>* context)</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;{</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="struct_n_v_g_s_d_k___video_highlight_params.html">NVGSDK_VideoHighlightParams</a> cParams;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; cParams.<a class="code" href="struct_n_v_g_s_d_k___video_highlight_params.html#aa332ddd28accd8f72fb17adc378c1267">groupId</a> = params.groupId.c_str();</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; cParams.<a class="code" href="struct_n_v_g_s_d_k___video_highlight_params.html#a622f76afc439ed07a18e97ca95564ff0">highlightId</a> = params.highlightId.c_str();</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; cParams.<a class="code" href="struct_n_v_g_s_d_k___video_highlight_params.html#ac526b90af6638fec62174304aa175da1">startDelta</a> = params.startDelta;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; cParams.<a class="code" href="struct_n_v_g_s_d_k___video_highlight_params.html#ae63c02443b1eeb24c4e1ed4d49154277">endDelta</a> = params.endDelta;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="ihighlights_8h.html#a4812495c6dedfc7cc6b2d3c421c161ed">NVGSDK_Highlights_SetVideoHighlightAsync</a>(m_handle, &amp;cParams, CoreImpl::callbackWrapper, <span class="keyword">new</span> CoreImpl::CallbackContext&lt;TCallback&gt;({ callback, context }));</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;}</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="class_gfe_s_d_k_1_1_highlights_impl.html#ab31f1319b9dcf33cf9146916f8a1d5f3"> 155</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html#ab31f1319b9dcf33cf9146916f8a1d5f3">HighlightsImpl::OpenSummaryAsync</a>(<a class="code" href="struct_gfe_s_d_k_1_1_summary_params.html">SummaryParams</a> <span class="keyword">const</span>&amp; params, TCallback callback, <span class="keywordtype">void</span>* context)</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;{</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; std::vector&lt;NVGSDK_GroupView&gt; cGroupViews;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = params.groupViews.begin(); it != params.groupViews.end(); ++it)</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; cGroupViews.push_back({</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; it-&gt;groupId.c_str(),</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; it-&gt;tagsFilter,</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; it-&gt;significanceFilter</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; });</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="struct_n_v_g_s_d_k___summary_params.html">NVGSDK_SummaryParams</a> cParams;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; cParams.<a class="code" href="struct_n_v_g_s_d_k___summary_params.html#a0a6f4e491c47e1468610f813c61ff4ff">groupSummaryTable</a> = &amp;cGroupViews[0];</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; cParams.<a class="code" href="struct_n_v_g_s_d_k___summary_params.html#a8fbfd016dc92f631921e738f12ef399d">groupSummaryTableSize</a> = cGroupViews.size();</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="ihighlights_8h.html#ac6ee1cb402b4476571a79050f61bcd92">NVGSDK_Highlights_OpenSummaryAsync</a>(m_handle, &amp;cParams, CoreImpl::callbackWrapper, <span class="keyword">new</span> CoreImpl::CallbackContext&lt;TCallback&gt;({ callback, context }));</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;}</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="class_gfe_s_d_k_1_1_highlights_impl.html#a358fcbe7699b79ed79952bb2eab12830"> 173</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="class_gfe_s_d_k_1_1_highlights_impl.html#a358fcbe7699b79ed79952bb2eab12830">HighlightsImpl::GetNumberOfHighlightsAsync</a>(<a class="code" href="struct_gfe_s_d_k_1_1_group_view.html">GroupView</a> <span class="keyword">const</span>&amp; params, TGetNumberOfHighlightsCallback callback, <span class="keywordtype">void</span>* context)</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="struct_n_v_g_s_d_k___group_view.html">NVGSDK_GroupView</a> cParams;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; cParams.<a class="code" href="struct_n_v_g_s_d_k___group_view.html#a4f957ca7635183b884ce960e733bbfcc">groupId</a> = params.groupId.c_str();</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; cParams.<a class="code" href="struct_n_v_g_s_d_k___group_view.html#acd4b8ee94ed3a76bd9b6e7e8afe355a2">tagsFilter</a> = params.tagsFilter;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; cParams.<a class="code" href="struct_n_v_g_s_d_k___group_view.html#a88a126c5b8f2cd7c0e790bfdc3836fcb">significanceFilter</a> = params.significanceFilter;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="ihighlights_8h.html#afad5de18b900053c2b291ce2a55985c1">NVGSDK_Highlights_GetNumberOfHighlightsAsync</a>(m_handle, &amp;cParams, [](NVGSDK_RetCode rc, <a class="code" href="struct_n_v_g_s_d_k___highlights___number_of_highlights.html">NVGSDK_Highlights_NumberOfHighlights</a> <span class="keyword">const</span>* data, <span class="keywordtype">void</span>* context) {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; std::unique_ptr&lt;CoreImpl::CallbackContext&lt;TGetNumberOfHighlightsCallback&gt;&gt; callbackContext(<span class="keyword">reinterpret_cast&lt;</span>CoreImpl::CallbackContext&lt;TGetNumberOfHighlightsCallback&gt;*<span class="keyword">&gt;</span>(context));</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">if</span> (!callbackContext-&gt;callback) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">if</span> (NVGSDK_FAILED(rc))</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> callbackContext-&gt;callback(rc, <span class="keyword">nullptr</span>, callbackContext-&gt;appContext);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="struct_gfe_s_d_k_1_1_get_number_of_highlights_response.html">GetNumberOfHighlightsResponse</a> num;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; num.numHighlights = data-&gt;numberOfHighlights;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; callbackContext-&gt;callback(rc, &amp;num, callbackContext-&gt;appContext);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }, <span class="keyword">new</span> CoreImpl::CallbackContext&lt;TGetNumberOfHighlightsCallback&gt;({ callback, context }));</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;}</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;}</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="preprocessor">#endif //GFESDK_IHIGHLIGHTS_CPP_IMPL_H</span></div><div class="ttc" id="struct_n_v_g_s_d_k___video_highlight_params_html_aa332ddd28accd8f72fb17adc378c1267"><div class="ttname"><a href="struct_n_v_g_s_d_k___video_highlight_params.html#aa332ddd28accd8f72fb17adc378c1267">NVGSDK_VideoHighlightParams::groupId</a></div><div class="ttdeci">char const * groupId</div><div class="ttdoc">Required ID of the group this highlight is attached to. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types_8h_source.html#l00091">highlights_types.h:91</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___video_highlight_params_html_ae63c02443b1eeb24c4e1ed4d49154277"><div class="ttname"><a href="struct_n_v_g_s_d_k___video_highlight_params.html#ae63c02443b1eeb24c4e1ed4d49154277">NVGSDK_VideoHighlightParams::endDelta</a></div><div class="ttdeci">int32_t endDelta</div><div class="ttdoc">Milliseconds between the time of request, and end of desired video clip. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types_8h_source.html#l00094">highlights_types.h:94</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_summary_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_summary_params.html">GfeSDK::SummaryParams</a></div><div class="ttdoc">C++ binding for NVGSDK_SummaryParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00081">highlights_types_cpp.h:81</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_summary_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_summary_params.html">GfeSDK::SummaryParams</a></div><div class="ttdoc">C++ binding for NVGSDK_SummaryParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00082">highlights_types_cpp.h:82</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___group_view_html_a88a126c5b8f2cd7c0e790bfdc3836fcb"><div class="ttname"><a href="struct_n_v_g_s_d_k___group_view.html#a88a126c5b8f2cd7c0e790bfdc3836fcb">NVGSDK_GroupView::significanceFilter</a></div><div class="ttdeci">NVGSDK_HighlightSignificance significanceFilter</div><div class="ttdoc">If not zero, represents a bitfield of significance values to include. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types_8h_source.html#l00102">highlights_types.h:102</a></div></div>
<div class="ttc" id="class_gfe_s_d_k_1_1_highlights_impl_html_a358fcbe7699b79ed79952bb2eab12830"><div class="ttname"><a href="class_gfe_s_d_k_1_1_highlights_impl.html#a358fcbe7699b79ed79952bb2eab12830">GfeSDK::HighlightsImpl::GetNumberOfHighlightsAsync</a></div><div class="ttdeci">virtual void GetNumberOfHighlightsAsync(GroupView const &amp;params, TGetNumberOfHighlightsCallback cb=nullptr, void *cbContext=nullptr)</div><div class="ttdef"><b>Definition:</b> <a href="ihighlights__cpp__impl_8h_source.html#l00173">ihighlights_cpp_impl.h:173</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___highlight_open_group_params_html"><div class="ttname"><a href="struct_n_v_g_s_d_k___highlight_open_group_params.html">NVGSDK_HighlightOpenGroupParams</a></div><div class="ttdef"><b>Definition:</b> <a href="highlights__types_8h_source.html#l00064">highlights_types.h:64</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_screenshot_highlight_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_screenshot_highlight_params.html">GfeSDK::ScreenshotHighlightParams</a></div><div class="ttdoc">C++ binding for NVGSDK_ScreenshotHighlightParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00056">highlights_types_cpp.h:56</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_screenshot_highlight_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_screenshot_highlight_params.html">GfeSDK::ScreenshotHighlightParams</a></div><div class="ttdoc">C++ binding for NVGSDK_ScreenshotHighlightParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00057">highlights_types_cpp.h:57</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___highlight_user_setting_html_a44eafd6943fb886c236cd4ff356c666d"><div class="ttname"><a href="struct_n_v_g_s_d_k___highlight_user_setting.html#a44eafd6943fb886c236cd4ff356c666d">NVGSDK_HighlightUserSetting::enabled</a></div><div class="ttdeci">bool enabled</div><div class="ttdoc">Boolean for whether the user wants to record this type of highlight. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types_8h_source.html#l00060">highlights_types.h:60</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_close_group_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_close_group_params.html">GfeSDK::HighlightCloseGroupParams</a></div><div class="ttdoc">C++ binding for NVGSDK_HighlightCloseGroupParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00049">highlights_types_cpp.h:49</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_open_group_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_open_group_params.html">GfeSDK::HighlightOpenGroupParams</a></div><div class="ttdoc">C++ binding for NVGSDK_HighlightOpenGroupParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00042">highlights_types_cpp.h:42</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_close_group_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_close_group_params.html">GfeSDK::HighlightCloseGroupParams</a></div><div class="ttdoc">C++ binding for NVGSDK_HighlightCloseGroupParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00050">highlights_types_cpp.h:50</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_open_group_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_open_group_params.html">GfeSDK::HighlightOpenGroupParams</a></div><div class="ttdoc">C++ binding for NVGSDK_HighlightOpenGroupParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00043">highlights_types_cpp.h:43</a></div></div>
<div class="ttc" id="class_gfe_s_d_k_1_1_highlights_impl_html_ab4989563440e14295449166c626ac3a9"><div class="ttname"><a href="class_gfe_s_d_k_1_1_highlights_impl.html#ab4989563440e14295449166c626ac3a9">GfeSDK::HighlightsImpl::SetVideoHighlightAsync</a></div><div class="ttdeci">virtual void SetVideoHighlightAsync(VideoHighlightParams const &amp;params, TCallback cb=nullptr, void *cbContext=nullptr)</div><div class="ttdef"><b>Definition:</b> <a href="ihighlights__cpp__impl_8h_source.html#l00145">ihighlights_cpp_impl.h:145</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___highlight_close_group_params_html"><div class="ttname"><a href="struct_n_v_g_s_d_k___highlight_close_group_params.html">NVGSDK_HighlightCloseGroupParams</a></div><div class="ttdef"><b>Definition:</b> <a href="highlights__types_8h_source.html#l00074">highlights_types.h:74</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_get_user_settings_response_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_get_user_settings_response.html">GfeSDK::GetUserSettingsResponse</a></div><div class="ttdoc">C++ binding for NVGSDK_Highlights_GetUserSettingsResponse. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00103">highlights_types_cpp.h:103</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_get_user_settings_response_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_get_user_settings_response.html">GfeSDK::GetUserSettingsResponse</a></div><div class="ttdoc">C++ binding for NVGSDK_Highlights_GetUserSettingsResponse. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00104">highlights_types_cpp.h:104</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___group_view_html"><div class="ttname"><a href="struct_n_v_g_s_d_k___group_view.html">NVGSDK_GroupView</a></div><div class="ttdef"><b>Definition:</b> <a href="highlights__types_8h_source.html#l00098">highlights_types.h:98</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___video_highlight_params_html_a622f76afc439ed07a18e97ca95564ff0"><div class="ttname"><a href="struct_n_v_g_s_d_k___video_highlight_params.html#a622f76afc439ed07a18e97ca95564ff0">NVGSDK_VideoHighlightParams::highlightId</a></div><div class="ttdeci">char const * highlightId</div><div class="ttdoc">Refers to unique highlight id in highlight table. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types_8h_source.html#l00092">highlights_types.h:92</a></div></div>
<div class="ttc" id="class_gfe_s_d_k_1_1_highlights_impl_html_a22481d623b4124cd7277b30a70a11fad"><div class="ttname"><a href="class_gfe_s_d_k_1_1_highlights_impl.html#a22481d623b4124cd7277b30a70a11fad">GfeSDK::HighlightsImpl::CloseGroupAsync</a></div><div class="ttdeci">virtual void CloseGroupAsync(HighlightCloseGroupParams const &amp;params, TCallback cb=nullptr, void *cbContext=nullptr)</div><div class="ttdef"><b>Definition:</b> <a href="ihighlights__cpp__impl_8h_source.html#l00128">ihighlights_cpp_impl.h:128</a></div></div>
@@ -105,9 +105,9 @@ $(document).ready(function(){initNavTree('ihighlights__cpp__impl_8h_source.html'
<div class="ttc" id="struct_n_v_g_s_d_k___highlight_config_params_html"><div class="ttname"><a href="struct_n_v_g_s_d_k___highlight_config_params.html">NVGSDK_HighlightConfigParams</a></div><div class="ttdef"><b>Definition:</b> <a href="highlights__types_8h_source.html#l00049">highlights_types.h:49</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___highlight_config_params_html_a7f4f852d4fe97048f20dcdcc401ab82b"><div class="ttname"><a href="struct_n_v_g_s_d_k___highlight_config_params.html#a7f4f852d4fe97048f20dcdcc401ab82b">NVGSDK_HighlightConfigParams::defaultLocale</a></div><div class="ttdeci">char const * defaultLocale</div><div class="ttdoc">Default locality, used for hinting GFE which translation to use. Defaults to en-us. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types_8h_source.html#l00053">highlights_types.h:53</a></div></div>
<div class="ttc" id="class_gfe_s_d_k_1_1_highlights_impl_html_a8420e07f1812fba8bf961e90e5795d3b"><div class="ttname"><a href="class_gfe_s_d_k_1_1_highlights_impl.html#a8420e07f1812fba8bf961e90e5795d3b">GfeSDK::HighlightsImpl::OpenGroupAsync</a></div><div class="ttdeci">virtual void OpenGroupAsync(HighlightOpenGroupParams const &amp;params, TCallback cb=nullptr, void *cbContext=nullptr)</div><div class="ttdef"><b>Definition:</b> <a href="ihighlights__cpp__impl_8h_source.html#l00115">ihighlights_cpp_impl.h:115</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_config_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_config_params.html">GfeSDK::HighlightConfigParams</a></div><div class="ttdoc">C++ binding for NVGSDK_HighlightConfigParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00035">highlights_types_cpp.h:35</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_highlight_config_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_highlight_config_params.html">GfeSDK::HighlightConfigParams</a></div><div class="ttdoc">C++ binding for NVGSDK_HighlightConfigParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00036">highlights_types_cpp.h:36</a></div></div>
<div class="ttc" id="ihighlights_8h_html_aa49250dbc063e242607123333f8da892"><div class="ttname"><a href="ihighlights_8h.html#aa49250dbc063e242607123333f8da892">NVGSDK_Highlights_OpenGroupAsync</a></div><div class="ttdeci">NVGSDK_EXPORT void NVGSDKApi NVGSDK_Highlights_OpenGroupAsync(NVGSDK_HANDLE *handle, NVGSDK_HighlightOpenGroupParams const *params, NVGSDK_EmptyCallback callback, void *context)</div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_video_highlight_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_video_highlight_params.html">GfeSDK::VideoHighlightParams</a></div><div class="ttdoc">C++ binding for NVGSDK_VideoHighlightParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00063">highlights_types_cpp.h:63</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_video_highlight_params_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_video_highlight_params.html">GfeSDK::VideoHighlightParams</a></div><div class="ttdoc">C++ binding for NVGSDK_VideoHighlightParams. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00064">highlights_types_cpp.h:64</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___summary_params_html"><div class="ttname"><a href="struct_n_v_g_s_d_k___summary_params.html">NVGSDK_SummaryParams</a></div><div class="ttdef"><b>Definition:</b> <a href="highlights__types_8h_source.html#l00106">highlights_types.h:106</a></div></div>
<div class="ttc" id="class_gfe_s_d_k_1_1_highlights_impl_html_ab31f1319b9dcf33cf9146916f8a1d5f3"><div class="ttname"><a href="class_gfe_s_d_k_1_1_highlights_impl.html#ab31f1319b9dcf33cf9146916f8a1d5f3">GfeSDK::HighlightsImpl::OpenSummaryAsync</a></div><div class="ttdeci">virtual void OpenSummaryAsync(SummaryParams const &amp;params, TCallback cb=nullptr, void *cbContext=nullptr)</div><div class="ttdef"><b>Definition:</b> <a href="ihighlights__cpp__impl_8h_source.html#l00155">ihighlights_cpp_impl.h:155</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___highlight_open_group_params_html_a3d06bbfc6586ca5378eedc9a5984d662"><div class="ttname"><a href="struct_n_v_g_s_d_k___highlight_open_group_params.html#a3d06bbfc6586ca5378eedc9a5984d662">NVGSDK_HighlightOpenGroupParams::groupDescriptionTable</a></div><div class="ttdeci">NVGSDK_LocalizedPair * groupDescriptionTable</div><div class="ttdef"><b>Definition:</b> <a href="highlights__types_8h_source.html#l00068">highlights_types.h:68</a></div></div>
@@ -122,7 +122,7 @@ $(document).ready(function(){initNavTree('ihighlights__cpp__impl_8h_source.html'
<div class="ttc" id="ihighlights_8h_html_afad5de18b900053c2b291ce2a55985c1"><div class="ttname"><a href="ihighlights_8h.html#afad5de18b900053c2b291ce2a55985c1">NVGSDK_Highlights_GetNumberOfHighlightsAsync</a></div><div class="ttdeci">NVGSDK_EXPORT void NVGSDKApi NVGSDK_Highlights_GetNumberOfHighlightsAsync(NVGSDK_HANDLE *handle, NVGSDK_GroupView const *groupParams, NVGSDK_Highlights_GetNumberOfHighlightsCallback cb, void *context)</div></div>
<div class="ttc" id="class_gfe_s_d_k_1_1_highlights_impl_html_a10ec6fa65e8afb5ea417f4cfe7f1d5ab"><div class="ttname"><a href="class_gfe_s_d_k_1_1_highlights_impl.html#a10ec6fa65e8afb5ea417f4cfe7f1d5ab">GfeSDK::HighlightsImpl::SetScreenshotHighlightAsync</a></div><div class="ttdeci">virtual void SetScreenshotHighlightAsync(ScreenshotHighlightParams const &amp;params, TCallback cb=nullptr, void *cbContext=nullptr)</div><div class="ttdef"><b>Definition:</b> <a href="ihighlights__cpp__impl_8h_source.html#l00137">ihighlights_cpp_impl.h:137</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___video_highlight_params_html"><div class="ttname"><a href="struct_n_v_g_s_d_k___video_highlight_params.html">NVGSDK_VideoHighlightParams</a></div><div class="ttdef"><b>Definition:</b> <a href="highlights__types_8h_source.html#l00089">highlights_types.h:89</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_group_view_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_group_view.html">GfeSDK::GroupView</a></div><div class="ttdoc">C++ binding for NVGSDK_GroupView. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00072">highlights_types_cpp.h:72</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_group_view_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_group_view.html">GfeSDK::GroupView</a></div><div class="ttdoc">C++ binding for NVGSDK_GroupView. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00073">highlights_types_cpp.h:73</a></div></div>
<div class="ttc" id="ihighlights_8h_html_aa3b6190835ada28f4cee015645814e75"><div class="ttname"><a href="ihighlights_8h.html#aa3b6190835ada28f4cee015645814e75">NVGSDK_Highlights_CloseGroupAsync</a></div><div class="ttdeci">NVGSDK_EXPORT void NVGSDKApi NVGSDK_Highlights_CloseGroupAsync(NVGSDK_HANDLE *handle, NVGSDK_HighlightCloseGroupParams const *params, NVGSDK_EmptyCallback callback, void *context)</div></div>
<div class="ttc" id="ihighlights__cpp_8h_html"><div class="ttname"><a href="ihighlights__cpp_8h.html">ihighlights_cpp.h</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___group_view_html_a4f957ca7635183b884ce960e733bbfcc"><div class="ttname"><a href="struct_n_v_g_s_d_k___group_view.html#a4f957ca7635183b884ce960e733bbfcc">NVGSDK_GroupView::groupId</a></div><div class="ttdeci">char const * groupId</div><div class="ttdoc">Unique ID of the group to open. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types_8h_source.html#l00100">highlights_types.h:100</a></div></div>
@@ -130,7 +130,7 @@ $(document).ready(function(){initNavTree('ihighlights__cpp__impl_8h_source.html'
<div class="ttc" id="ihighlights_8h_html_a4812495c6dedfc7cc6b2d3c421c161ed"><div class="ttname"><a href="ihighlights_8h.html#a4812495c6dedfc7cc6b2d3c421c161ed">NVGSDK_Highlights_SetVideoHighlightAsync</a></div><div class="ttdeci">NVGSDK_EXPORT void NVGSDKApi NVGSDK_Highlights_SetVideoHighlightAsync(NVGSDK_HANDLE *handle, NVGSDK_VideoHighlightParams const *, NVGSDK_EmptyCallback callback, void *context)</div></div>
<div class="ttc" id="class_gfe_s_d_k_1_1_highlights_impl_html_adfee0bca7a525fd81406d719ad1aaed9"><div class="ttname"><a href="class_gfe_s_d_k_1_1_highlights_impl.html#adfee0bca7a525fd81406d719ad1aaed9">GfeSDK::HighlightsImpl::ConfigureAsync</a></div><div class="ttdeci">virtual void ConfigureAsync(HighlightConfigParams const &amp;params, TCallback cb=nullptr, void *cbContext=nullptr)</div><div class="ttdef"><b>Definition:</b> <a href="ihighlights__cpp__impl_8h_source.html#l00062">ihighlights_cpp_impl.h:62</a></div></div>
<div class="ttc" id="class_gfe_s_d_k_1_1_highlights_impl_html"><div class="ttname"><a href="class_gfe_s_d_k_1_1_highlights_impl.html">GfeSDK::HighlightsImpl</a></div><div class="ttdef"><b>Definition:</b> <a href="ihighlights__cpp__impl_8h_source.html#l00026">ihighlights_cpp_impl.h:26</a></div></div>
-<div class="ttc" id="struct_gfe_s_d_k_1_1_get_number_of_highlights_response_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_get_number_of_highlights_response.html">GfeSDK::GetNumberOfHighlightsResponse</a></div><div class="ttdoc">C++ binding for NVGSDK_GetNumberOfHighlightsResponse. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00096">highlights_types_cpp.h:96</a></div></div>
+<div class="ttc" id="struct_gfe_s_d_k_1_1_get_number_of_highlights_response_html"><div class="ttname"><a href="struct_gfe_s_d_k_1_1_get_number_of_highlights_response.html">GfeSDK::GetNumberOfHighlightsResponse</a></div><div class="ttdoc">C++ binding for NVGSDK_GetNumberOfHighlightsResponse. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types__cpp_8h_source.html#l00097">highlights_types_cpp.h:97</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___video_highlight_params_html_ac526b90af6638fec62174304aa175da1"><div class="ttname"><a href="struct_n_v_g_s_d_k___video_highlight_params.html#ac526b90af6638fec62174304aa175da1">NVGSDK_VideoHighlightParams::startDelta</a></div><div class="ttdeci">int32_t startDelta</div><div class="ttdoc">Milliseconds between the time of request, and the start of desired video clip. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types_8h_source.html#l00093">highlights_types.h:93</a></div></div>
<div class="ttc" id="class_gfe_s_d_k_1_1_core_html"><div class="ttname"><a href="class_gfe_s_d_k_1_1_core.html">GfeSDK::Core</a></div><div class="ttdef"><b>Definition:</b> <a href="isdk__cpp_8h_source.html#l00037">isdk_cpp.h:37</a></div></div>
<div class="ttc" id="struct_n_v_g_s_d_k___highlight_open_group_params_html_a7a3c123385683c40bd3a891e7af268bb"><div class="ttname"><a href="struct_n_v_g_s_d_k___highlight_open_group_params.html#a7a3c123385683c40bd3a891e7af268bb">NVGSDK_HighlightOpenGroupParams::groupDescriptionTableSize</a></div><div class="ttdeci">size_t groupDescriptionTableSize</div><div class="ttdoc">Number of entries in the groupDescriptionTable */. </div><div class="ttdef"><b>Definition:</b> <a href="highlights__types_8h_source.html#l00070">highlights_types.h:70</a></div></div>
diff --git a/doc/html/index.html b/doc/html/index.html
index ef483a1..1cdf245 100644
--- a/doc/html/index.html
+++ b/doc/html/index.html
@@ -88,7 +88,7 @@ $(document).ready(function(){initNavTree('index.html','');});
<div class="textblock"><h1><a class="anchor" id="section_main"></a>
NVIDIA GeForce Experience SDK</h1>
<ul>
-<li>Version: 1.0.168.8a267a87</li>
+<li>Version: 1.1.173.5d889305</li>
<li>GeForce Experience minimum version: 3.8</li>
<li>See <a class="el" href="section_changelog.html">Changelog</a></li>
</ul>
@@ -122,28 +122,28 @@ Using GfeSDK</h2>
<h3><a class="anchor" id="section_example_create"></a>
Creation and Release</h3>
<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> inParams;</div><div class="line"> inParams.appName = <span class="stringliteral">&quot;MyGame&quot;</span>;</div><div class="line"> inParams.requiredScopes = { NVGSDK_SCOPE_HIGHLIGHTS, NVGSDK_SCOPE_HIGHLIGHTS_VIDEO, NVGSDK_SCOPE_HIGHLIGHTS_SCREENSHOT };</div><div class="line"> inParams.pollForCallbacks = <span class="keyword">false</span>;</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>* core = <a class="code" href="class_gfe_s_d_k_1_1_core.html#a0cb93acb8b273072cd37348c9b206e0d">GfeSDK::Core::Create</a>(&amp;inParams, &amp;response);</div><div class="line"> <a class="code" href="class_gfe_s_d_k_1_1_highlights.html">GfeSDK::Highlights</a>* highlights = GfeSDK::Highlights::Create(core);</div></div><!-- fragment --><p> // After using GfeSDK</p>
-<div class="fragment"><div class="line"> <span class="keyword">delete</span> core;</div></div><!-- fragment --> <h4>C API</h4>
-<div class="fragment"><div class="line"> NVGSDK_HANDLE* handle;</div><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(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[3];</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;MyGame&quot;</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> = 3;</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">false</span>;</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> response;</div><div class="line"> response.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a9bc3e75a15cf9fcbc1084f2a7fde5a8f">scopePermissionTable</a> = &amp;scopePermissions[0];</div><div class="line"> response.scopePermissionsTableSize = 3;</div><div class="line"></div><div class="line"> <a class="code" href="isdk_8h.html#a95b3999b5808922e29a36375c22014b8">NVGSDK_Create</a>(handle, &amp;inParams, &amp;response);</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>(handle);</div></div><!-- fragment --> <h3><a class="anchor" id="section_example_permission"></a>
+<div class="fragment"></div><!-- fragment --><p> // After using GfeSDK</p>
+<div class="fragment"></div><!-- fragment --> <h4>C API</h4>
+<div class="fragment"></div><!-- fragment --><p> // After using GfeSDK</p>
+<div class="fragment"></div><!-- fragment --> <h3><a class="anchor" id="section_example_permission"></a>
Request Permissions</h3>
<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">// Got GfeSDK::CreateResponse after GfeSDK::Core::Create call</span></div><div class="line"> <a class="code" href="struct_gfe_s_d_k_1_1_request_permissions_params.html">GfeSDK::RequestPermissionsParams</a> params;</div><div class="line"> <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; scopePermission : response.scopePermissions)</div><div class="line"> {</div><div class="line"> <span class="keywordflow">if</span> (scopePermission.permission == NVGSDK_PERMISSION_MUST_ASK)</div><div class="line"> {</div><div class="line"> params.scope.push_back(scopePermission.scope);</div><div class="line"> }</div><div class="line"> }</div><div class="line"> core-&gt;RequestPermissions(&amp;params);</div></div><!-- fragment --> <h4>C API</h4>
-<div class="fragment"><div class="line"> <span class="comment">// Got NVGSDK_CreateResponse after NVGSDK_Create call</span></div><div class="line"> NVGSDK_Scope scopesToRequest[3];</div><div class="line"> <span class="keywordtype">int</span> n = 0;</div><div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; response.<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> (response.<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"> scopesToRequest[n++] = response.<a class="code" href="struct_n_v_g_s_d_k___create_response.html#a9bc3e75a15cf9fcbc1084f2a7fde5a8f">scopePermissionTable</a>[i].scope;</div><div class="line"> }</div><div class="line"> }</div><div class="line"></div><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___request_permissions_params.html">NVGSDK_RequestPermissionsParams</a> params;</div><div class="line"> params.scopeTable = &amp;scopesToRequest[0];</div><div class="line"> params.scopeTableSize = n;</div><div class="line"></div><div class="line"> <span class="comment">// Will display overlay UI to the user</span></div><div class="line"> <a class="code" href="isdk_8h.html#a3e4b6afcafe9ac91c00a95b7d72305e5">NVGSDK_RequestPermissionsAsync</a>(handle, &amp;params, NULL, NULL);</div></div><!-- fragment --> <h3><a class="anchor" id="section_example_highlightsconfigure"></a>
+<div class="fragment"></div><!-- fragment --> <h4>C API</h4>
+<div class="fragment"></div><!-- fragment --> <h3><a class="anchor" id="section_example_highlightsconfigure"></a>
Configure Highlights</h3>
<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">// Must have handle to Highlights object via GfeSDK::Highlights::Create()</span></div><div class="line"> HighlightsConfigParams params;</div><div class="line"> params.highlightDefinitions = {</div><div class="line"> {</div><div class="line"> <span class="stringliteral">&quot;highlight1&quot;</span>,</div><div class="line"> <span class="keyword">true</span>,</div><div class="line"> NVGSDK_HIGHLIGHT_TYPE_ACHIEVEMENT,</div><div class="line"> NVGSDK_HIGHLIGHT_SIGNIFICANCE_VERY_GOOD,</div><div class="line"> {</div><div class="line"> { <span class="stringliteral">&quot;en-US&quot;</span>, <span class="stringliteral">&quot;Highlight One&quot;</span> },</div><div class="line"> { <span class="stringliteral">&quot;es-MX&quot;</span>, <span class="stringliteral">&quot;Resalte Uno&quot;</span> }</div><div class="line"> }</div><div class="line"> },</div><div class="line"> {</div><div class="line"> <span class="stringliteral">&quot;highlight2&quot;</span>,</div><div class="line"> <span class="keyword">true</span>,</div><div class="line"> NVGSDK_HIGHLIGHT_TYPE_MILESTONE | NVGSDK_HIGHLIGHTS_TYPE_STATE_CHANGE,</div><div class="line"> NVGSDK_HIGHLIGHT_SIGNIFICANCE_NEUTRAL,</div><div class="line"> {</div><div class="line"> { <span class="stringliteral">&quot;en-US&quot;</span>, <span class="stringliteral">&quot;Highlight Two&quot;</span> },</div><div class="line"> { <span class="stringliteral">&quot;es-MX&quot;</span>, <span class="stringliteral">&quot;Resalte Dos&quot;</span> }</div><div class="line"> }</div><div class="line"> },</div><div class="line"> };</div><div class="line"> params.defaultLocale = <span class="stringliteral">&quot;en-US&quot;</span>;</div><div class="line"></div><div class="line"> highlights-&gt;<a class="code" href="class_gfe_s_d_k_1_1_highlights.html#a8e522535c3393a1911e2bbb65c71eb52">ConfigureAsync</a>(&amp;params);</div></div><!-- fragment --> <h4>C API</h4>
-<div class="fragment"><div class="line"> <span class="keywordtype">int</span> <span class="keyword">const</span> NUM_HIGHLIGHTS = 2;</div><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___highlight.html">NVGSDK_Highlight</a> highlights[NUM_HIGHLIGHTS];</div><div class="line"> memset(highlights, 0, <span class="keyword">sizeof</span>(<a class="code" href="struct_n_v_g_s_d_k___highlight.html">NVGSDK_Highlight</a> * NUM_HIGHLIGHTS));</div><div class="line"></div><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___localized_pair.html">NVGSDK_LocalizedPair</a> highlight1Translation[2] = {</div><div class="line"> { <span class="stringliteral">&quot;en-US&quot;</span>, <span class="stringliteral">&quot;Highlight One&quot;</span> },</div><div class="line"> { <span class="stringliteral">&quot;es-MX&quot;</span>, <span class="stringliteral">&quot;Resalte Uno&quot;</span> }</div><div class="line"> };</div><div class="line"></div><div class="line"> highlights[0].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a1f95d7645df3e535efa830685488ae9b">id</a> = <span class="stringliteral">&quot;highlight1&quot;</span>;</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">true</span>;</div><div class="line"> highlights[0].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a1e55e8efeca6cfabc9c68583e24f410b">highlightTags</a> = NVGSDK_HIGHLIGHT_TYPE_ACHIEVEMENT;</div><div class="line"> highlights[0].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a3ecee6a0bd80c21b630559fb8ecfc0be">significance</a> = NVGSDK_HIGHLIGHT_SIGNIFICANCE_VERY_GOOD;</div><div class="line"> highlights[0].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a3aa8849a5921b0189c2642840c257247">nameTable</a> = &amp;highlight1Translation[0];</div><div class="line"> highlights[0].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a5522ae0afe385ba7d17afd83d19ed729">nameTableSize</a> = 2;</div><div class="line"></div><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___localized_pair.html">NVGSDK_LocalizedPair</a> highlight2Translation[2] = {</div><div class="line"> { <span class="stringliteral">&quot;en-US&quot;</span>, <span class="stringliteral">&quot;Highlight Two&quot;</span> },</div><div class="line"> { <span class="stringliteral">&quot;es-MX&quot;</span>, <span class="stringliteral">&quot;Resalte Dos&quot;</span> }</div><div class="line"> };</div><div class="line"></div><div class="line"> highlights[1].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a1f95d7645df3e535efa830685488ae9b">id</a> = <span class="stringliteral">&quot;highlight2&quot;</span>;</div><div class="line"> highlights[1].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a9e0d5a1ba9081cb7f9b549499af61927">userInterest</a> = <span class="keyword">true</span>;</div><div class="line"> highlights[1].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a1e55e8efeca6cfabc9c68583e24f410b">highlightTags</a> = NVGSDK_HIGHLIGHT_TYPE_MILESTONE | NVGSDK_HIGHLIGHTS_TYPE_STATE_CHANGE;</div><div class="line"> highlights[1].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a3ecee6a0bd80c21b630559fb8ecfc0be">significance</a> = NVGSDK_HIGHLIGHT_SIGNIFICANCE_NEUTRAL;</div><div class="line"> highlights[1].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a3aa8849a5921b0189c2642840c257247">nameTable</a> = &amp;highlight2Translation[0];</div><div class="line"> highlights[1].<a class="code" href="struct_n_v_g_s_d_k___highlight.html#a5522ae0afe385ba7d17afd83d19ed729">nameTableSize</a> = 2;</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;</div><div class="line"> params.highlightDefinitionTable = &amp;highlights[0];</div><div class="line"> params.highlightTableSize = NUM_HIGHLIGHTS;</div><div class="line"> params.<a class="code" href="struct_n_v_g_s_d_k___highlight_config_params.html#a7f4f852d4fe97048f20dcdcc401ab82b">defaultLocale</a> = <span class="stringliteral">&quot;en-US&quot;</span>;</div><div class="line"></div><div class="line"> <a class="code" href="ihighlights_8h.html#a0407132e7fd44771370ecfa03fdfce8d">NVGSDK_Highlights_ConfigureAsync</a>(handle, &amp;params, NULL, NULL);</div></div><!-- fragment --> <h3><a class="anchor" id="section_Example_highlights"></a>
+<div class="fragment"></div><!-- fragment --> <h4>C API</h4>
+<div class="fragment"></div><!-- fragment --> <h3><a class="anchor" id="section_Example_highlights"></a>
Groups and Saving Highlights</h3>
<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 = <span class="stringliteral">&quot;group1&quot;</span>;</div><div class="line"> params.groupDescriptionLocaleTable = {</div><div class="line"> { <span class="stringliteral">&quot;en-US&quot;</span>, <span class="stringliteral">&quot;Group One&quot;</span> },</div><div class="line"> { <span class="stringliteral">&quot;es-MX&quot;</span>, <span class="stringliteral">&quot;Groupa Uno&quot;</span> }</div><div class="line"> };</div><div class="line"></div><div class="line"> highlights-&gt;OpenGroupAsync(&amp;params);</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.groupId = <span class="stringliteral">&quot;group1&quot;</span>;</div><div class="line"> params.highlightsId = <span class="stringliteral">&quot;highlight1&quot;</span>;</div><div class="line"> params.startDelta = -5000; <span class="comment">// Should be dynamic i.e. start of killstreak</span></div><div class="line"> params.endDetla = 2000;</div><div class="line"></div><div class="line"> highlights-&gt;SetVideoHighlightAsync(&amp;params);</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 = <span class="stringliteral">&quot;group1&quot;</span>;</div><div class="line"> params.destroyHighlights = <span class="keyword">false</span>;</div><div class="line"></div><div class="line"> highlights-&gt;CloseGroupAsync(&amp;params);</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;</div><div class="line"> params.<a class="code" href="struct_n_v_g_s_d_k___highlight_open_group_params.html#a3e9f6351540609fc3e853d5a16188da2">groupId</a> = <span class="stringliteral">&quot;group1&quot;</span>;</div><div class="line"> params.<a class="code" href="struct_n_v_g_s_d_k___highlight_open_group_params.html#a3d06bbfc6586ca5378eedc9a5984d662">groupDescriptionTable</a> = {</div><div class="line"> { <span class="stringliteral">&quot;en-US&quot;</span>, <span class="stringliteral">&quot;Group One&quot;</span> },</div><div class="line"> { <span class="stringliteral">&quot;es-MX&quot;</span>, <span class="stringliteral">&quot;Groupa Uno&quot;</span> }</div><div class="line"> };</div><div class="line"> params.<a class="code" href="struct_n_v_g_s_d_k___highlight_open_group_params.html#a7a3c123385683c40bd3a891e7af268bb">groupDescriptionTableSize</a> = 2;</div><div class="line"> NVGSDK_Highlights_OpenGroupAsynchandle, (&amp;params, NULL, 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> = <span class="stringliteral">&quot;group1&quot;</span>;</div><div class="line"> params.highlightsId = <span class="stringliteral">&quot;highlight1&quot;</span>;</div><div class="line"> params.<a class="code" href="struct_n_v_g_s_d_k___video_highlight_params.html#ac526b90af6638fec62174304aa175da1">startDelta</a> = -5000; <span class="comment">// Should be dynamic i.e. start of killstreak</span></div><div class="line"> params.endDetla = 2000;</div><div class="line"></div><div class="line"> <a class="code" href="ihighlights_8h.html#a4812495c6dedfc7cc6b2d3c421c161ed">NVGSDK_Highlights_SetVideoHighlightAsync</a>(handle, &amp;params, NULL, 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;</div><div class="line"> params.<a class="code" href="struct_n_v_g_s_d_k___highlight_close_group_params.html#a6f1e0e8a5399e868588a83e1c81ad9c3">groupId</a> = <span class="stringliteral">&quot;group1&quot;</span>;</div><div class="line"> params.<a class="code" href="struct_n_v_g_s_d_k___highlight_close_group_params.html#a3d7eae61163c4616a42569ca8d7785c6">destroyHighlights</a> = <span class="keyword">false</span>;</div><div class="line"></div><div class="line"> <a class="code" href="ihighlights_8h.html#aa3b6190835ada28f4cee015645814e75">NVGSDK_Highlights_CloseGroupAsync</a>(handle, &amp;params, NULL, NULL);</div></div><!-- fragment --> <h3><a class="anchor" id="section_example_summary"></a>
+<div class="fragment"></div><!-- fragment --><div class="fragment"></div><!-- fragment --><div class="fragment"></div><!-- fragment --> <h4>C API</h4>
+<div class="fragment"></div><!-- fragment --><div class="fragment"></div><!-- fragment --><div class="fragment"></div><!-- fragment --> <h3><a class="anchor" id="section_example_summary"></a>
Open Highlight Summary</h3>
<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"> params.groupViews = {</div><div class="line"> {</div><div class="line"> <span class="stringliteral">&quot;group1&quot;</span>, 0, 0</div><div class="line"> },</div><div class="line"> {</div><div class="line"> <span class="stringliteral">&quot;group2&quot;</span>, 0, NVGSDK_HIGHLIGHT_SIGNIFICANCE_EXTREMELY_GOOD</div><div class="line"> }</div><div class="line"> };</div><div class="line"></div><div class="line"> highlights-&gt;OpenSummaryAsync(&amp;params);</div></div><!-- fragment --> <h4>C API</h4>
-<div class="fragment"><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___group_view.html">NVGSDK_GroupView</a> views[2] = {</div><div class="line"> {</div><div class="line"> <span class="stringliteral">&quot;group1&quot;</span>, 0, 0</div><div class="line"> },</div><div class="line"> {</div><div class="line"> <span class="stringliteral">&quot;group2&quot;</span>, 0, NVGSDK_HIGHLIGHT_SIGNIFICANCE_EXTREMELY_GOOD</div><div class="line"> }</div><div class="line"> };</div><div class="line"></div><div class="line"> <a class="code" href="struct_n_v_g_s_d_k___summary_params.html">NVGSDK_SummaryParams</a> params;</div><div class="line"> params.<a class="code" href="struct_n_v_g_s_d_k___summary_params.html#a0a6f4e491c47e1468610f813c61ff4ff">groupSummaryTable</a> = &amp;views[0];</div><div class="line"> params.<a class="code" href="struct_n_v_g_s_d_k___summary_params.html#a8fbfd016dc92f631921e738f12ef399d">groupSummaryTableSize</a> = 2;</div><div class="line"></div><div class="line"> <a class="code" href="ihighlights_8h.html#ac6ee1cb402b4476571a79050f61bcd92">NVGSDK_Highlights_OpenSummaryAsync</a>(handle, &amp;params, NULL, NULL);</div></div><!-- fragment --> <h2><a class="anchor" id="section_concepts"></a>
+<div class="fragment"></div><!-- fragment --> <h4>C API</h4>
+<div class="fragment"></div><!-- fragment --> <h2><a class="anchor" id="section_concepts"></a>
Concepts</h2>
<p>The GfeSDK is composed of two parts, the client/app, and the backend/server. This distribution contains GfeSDK.dll which represents the client/app part. The end-user downloads GFE onto their machine. The GFE package includes the backend pieces necessary to support the calls coming from the client. See <a class="el" href="index.html#section_version">Versioning</a> for more information regarding this communication.</p>
<p>Calls made will be serialized. Therefore, if the app makes two consecutive calls to NVGSDK_Highlights_OpenGroup and then either NVGSDK_Highlights_SetVideoHighlight or NVGSDK_Highlights_SetScreenshotHighlight, before receiving the callback from open group, the set highlight call will function normally. If open group succeeded, then the set highlights calls will succeed as well. If it failed, the set highlights calls will fail, as there will be no valid group to assign them to.</p>
diff --git a/doc/html/navtreedata.js b/doc/html/navtreedata.js
index ae7502d..a401f38 100644
--- a/doc/html/navtreedata.js
+++ b/doc/html/navtreedata.js
@@ -55,7 +55,7 @@ var NAVTREE =
var NAVTREEINDEX =
[
".html",
-"struct_n_v_g_s_d_k___highlight_open_group_params.html"
+"struct_n_v_g_s_d_k___highlight_config_params.html#ad64bab4bc54c4e9a15b14590f293adb4"
];
var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/doc/html/navtreeindex0.js b/doc/html/navtreeindex0.js
index 6a7f123..1267a70 100644
--- a/doc/html/navtreeindex0.js
+++ b/doc/html/navtreeindex0.js
@@ -38,12 +38,12 @@ var NAVTREEINDEX0 =
"class_gfe_s_d_k_1_1_highlights_impl.html#adfee0bca7a525fd81406d719ad1aaed9":[2,0,0,13,0],
"classes.html":[2,1],
"config_8h_source.html":[3,0,0,0,0,0],
-"dir_10362ab7f5c0ce07ef57bf30752a9cd8.html":[3,0,0,0,0],
+"dir_1c824c8e748d5ae4b3cfd93e0df1dd54.html":[3,0,0,0,0],
"dir_2f4536f343cdc104d7b83de3fff7416d.html":[3,0,1,0,0,1],
-"dir_35d2c3225318c321406c9a6beb044d2f.html":[3,0,0,0],
+"dir_3218f9f0b6327c4561f5657fde3efe5c.html":[3,0,0],
"dir_37f49c9d6a230916a5077fbd270eac2a.html":[3,0,1,0],
"dir_4522e853adfb3285c34ceee6be627ffe.html":[3,0,1],
-"dir_93766c917ed92592c1894d5c5e65f172.html":[3,0,0],
+"dir_6b811c56f74854312f0f79bac710ab51.html":[3,0,0,0],
"dir_9e1fb0299a0600dff10179bfe2b8a156.html":[3,0,1,0,0,0,0,0],
"dir_ab8ba62fc8fdaf78364406bae0a66d43.html":[3,0,1,0,0,0,0],
"dir_eb56eea0ff74c30c2a48b22915222057.html":[3,0,1,0,0],
@@ -187,11 +187,12 @@ var NAVTREEINDEX0 =
"struct_gfe_s_d_k_1_1_highlight_config_params.html#a038125c4b077c14c5a70baa039eb615d":[2,0,0,9,0],
"struct_gfe_s_d_k_1_1_highlight_config_params.html#a80af4e463434dab5dc28d251f4f5cea5":[2,0,0,9,1],
"struct_gfe_s_d_k_1_1_highlight_definition.html":[2,0,0,10],
-"struct_gfe_s_d_k_1_1_highlight_definition.html#a2511ee17dafd2a096b15e6f62b1f77b2":[2,0,0,10,4],
-"struct_gfe_s_d_k_1_1_highlight_definition.html#a2fc01319783b3d556e27de2926b48465":[2,0,0,10,0],
-"struct_gfe_s_d_k_1_1_highlight_definition.html#a56bfb064a70bc8f3eb63c3d8e487facb":[2,0,0,10,2],
-"struct_gfe_s_d_k_1_1_highlight_definition.html#abe789864cb6f6650f8ceda43281d50c2":[2,0,0,10,1],
-"struct_gfe_s_d_k_1_1_highlight_definition.html#ad2e8628cc2000a7e1b76c002892cd2b5":[2,0,0,10,3],
+"struct_gfe_s_d_k_1_1_highlight_definition.html#a0e50337058adcff1c2e1a73e8c54d1a5":[2,0,0,10,0],
+"struct_gfe_s_d_k_1_1_highlight_definition.html#a2511ee17dafd2a096b15e6f62b1f77b2":[2,0,0,10,5],
+"struct_gfe_s_d_k_1_1_highlight_definition.html#a2fc01319783b3d556e27de2926b48465":[2,0,0,10,1],
+"struct_gfe_s_d_k_1_1_highlight_definition.html#a56bfb064a70bc8f3eb63c3d8e487facb":[2,0,0,10,3],
+"struct_gfe_s_d_k_1_1_highlight_definition.html#abe789864cb6f6650f8ceda43281d50c2":[2,0,0,10,2],
+"struct_gfe_s_d_k_1_1_highlight_definition.html#ad2e8628cc2000a7e1b76c002892cd2b5":[2,0,0,10,4],
"struct_gfe_s_d_k_1_1_highlight_open_group_params.html":[2,0,0,11],
"struct_gfe_s_d_k_1_1_highlight_open_group_params.html#a2da61f15e755ef0f4fa9f304a7c6465f":[2,0,0,11,1],
"struct_gfe_s_d_k_1_1_highlight_open_group_params.html#a422c6e5ec6da4db56a7ca0196562f1fb":[2,0,0,11,0],
@@ -248,6 +249,5 @@ var NAVTREEINDEX0 =
"struct_n_v_g_s_d_k___highlight_close_group_params.html#a6f1e0e8a5399e868588a83e1c81ad9c3":[2,0,5,0],
"struct_n_v_g_s_d_k___highlight_config_params.html":[2,0,6],
"struct_n_v_g_s_d_k___highlight_config_params.html#a64eb12cdd5f3b05af9686cfa4077a4e5":[2,0,6,0],
-"struct_n_v_g_s_d_k___highlight_config_params.html#a7f4f852d4fe97048f20dcdcc401ab82b":[2,0,6,2],
-"struct_n_v_g_s_d_k___highlight_config_params.html#ad64bab4bc54c4e9a15b14590f293adb4":[2,0,6,1]
+"struct_n_v_g_s_d_k___highlight_config_params.html#a7f4f852d4fe97048f20dcdcc401ab82b":[2,0,6,2]
};
diff --git a/doc/html/navtreeindex1.js b/doc/html/navtreeindex1.js
index 23d0b74..702da16 100644
--- a/doc/html/navtreeindex1.js
+++ b/doc/html/navtreeindex1.js
@@ -1,5 +1,6 @@
var NAVTREEINDEX1 =
{
+"struct_n_v_g_s_d_k___highlight_config_params.html#ad64bab4bc54c4e9a15b14590f293adb4":[2,0,6,1],
"struct_n_v_g_s_d_k___highlight_open_group_params.html":[2,0,7],
"struct_n_v_g_s_d_k___highlight_open_group_params.html#a3d06bbfc6586ca5378eedc9a5984d662":[2,0,7,1],
"struct_n_v_g_s_d_k___highlight_open_group_params.html#a3e9f6351540609fc3e853d5a16188da2":[2,0,7,0],
diff --git a/doc/html/sdk__types__ipc_8h_source.html b/doc/html/sdk__types__ipc_8h_source.html
index bacf95b..5e2c8f3 100644
--- a/doc/html/sdk__types__ipc_8h_source.html
+++ b/doc/html/sdk__types__ipc_8h_source.html
@@ -6,7 +6,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>NVIDIAGeForceExperienceSDK: C:/u/workspace/dev/sdkwinauto/_build/sys-msvc141-uwp_x64_RelWithDebInfo/sdk/include/gfesdk/sdk_types_ipc.h Source File</title>
+<title>NVIDIAGeForceExperienceSDK: C:/u/workspace/dev/sdkwinauto/_build/p4-msvc120_x86_RelWithDebInfo/sdk/include/gfesdk/sdk_types_ipc.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
@@ -85,13 +85,13 @@ $(document).ready(function(){initNavTree('sdk__types__ipc_8h_source.html','');})
<div class="title">sdk_types_ipc.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// NVIDIA CORPORATION and its licensors retain all intellectual property</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// and proprietary rights in and to this software, related documentation</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// and any modifications thereto. Any use, reproduction, disclosure or</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// license agreement from NVIDIA CORPORATION is strictly prohibited.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#ifndef NVSDKAPI_IPC_H</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#define NVSDKAPI_IPC_H</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keywordtype">int</span> <span class="keyword">const</span> NVGSDK_IPC_VERSION_MAJOR = 1;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keywordtype">int</span> <span class="keyword">const</span> NVGSDK_IPC_VERSION_MINOR = 0;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> _NVGSDK_RetCode</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; NVGSDK_SUCCESS = 0,</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; NVGSDK_SUCCESS_VERSION_OLD_SDK = 1001,</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; NVGSDK_SUCCESS_VERSION_OLD_GFE = 1002,</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; NVGSDK_SUCCESS_PENDING = 1003,</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; NVGSDK_SUCCESS_USER_NOT_INTERESTED = 1004,</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; NVGSDK_SUCCESS_PERMISSION_GRANTED = 1005,</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; NVGSDK_ERR_GENERIC = -1001,</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; NVGSDK_ERR_GFE_VERSION = -1002,</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; NVGSDK_ERR_SDK_VERSION = -1003,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; NVGSDK_ERR_NOT_IMPLEMENTED = -1004,</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; NVGSDK_ERR_INVALID_PARAMETER = -1005,</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; NVGSDK_ERR_NOT_SET = -1006,</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; NVGSDK_ERR_SHADOWPLAY_IR_DISABLED = -1007,</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; NVGSDK_ERR_SDK_IN_USE = -1008,</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; NVGSDK_ERR_GROUP_NOT_FOUND = -1009,</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; NVGSDK_ERR_FILE_NOT_FOUND = -1010,</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; NVGSDK_ERR_HIGHLIGHTS_SETUP_FAILED = -1011,</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; NVGSDK_ERR_HIGHLIGHTS_NOT_CONFIGURED = -1012,</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; NVGSDK_ERR_HIGHLIGHTS_SAVE_FAILED = -1013,</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; NVGSDK_ERR_UNEXPECTED_EXCEPTION = -1014,</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; NVGSDK_ERR_NO_HIGHLIGHTS = -1015,</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; NVGSDK_ERR_NO_CONNECTION = -1016,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; NVGSDK_ERR_PERMISSION_NOT_GRANTED = -1017,</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; NVGSDK_ERR_PERMISSION_DENIED = -1018,</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; NVGSDK_ERR_INVALID_HANDLE = -1019,</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; NVGSDK_ERR_UNHANDLED_EXCEPTION = -1020,</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; NVGSDK_ERR_OUT_OF_MEMORY = -1021,</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; NVGSDK_ERR_LOAD_LIBRARY = -1022,</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; NVGSDK_ERR_LIB_CALL_FAILED = -1023,</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; NVGSDK_ERR_IPC_FAILED = -1024,</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; NVGSDK_ERR_CONNECTION = -1025,</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; NVGSDK_ERR_MODULE_NOT_LOADED = -1026,</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; NVGSDK_ERR_LIB_CALL_TIMEOUT = -1027</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;} NVGSDK_RetCode;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment">// not using macros to avoid polluting namespace of SDK unnecessarily</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> NVGSDK_SUCCEEDED(NVGSDK_RetCode r)</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;{</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> r &gt;= 0;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;}</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> NVGSDK_FAILED(NVGSDK_RetCode r)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;{</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> r &lt; 0;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;}</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;{</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; NVGSDK_HIGHLIGHT_TYPE_MILESTONE = 0x00000001,</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; NVGSDK_HIGHLIGHT_TYPE_ACHIEVEMENT = 0x00000002,</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; NVGSDK_HIGHLIGHT_TYPE_INCIDENT = 0x00000004,</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; NVGSDK_HIGHLIGHT_TYPE_STATE_CHANGE = 0x00000008,</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; NVGSDK_HIGHLIGHT_TYPE_UNANNOUNCED = 0x00000010,</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; NVGSDK_HIGHLIGHT_TYPE_MAX = 0x00000020</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;} NVGSDK_HighlightType;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;{</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; NVGSDK_SCOPE_HIGHLIGHTS = 0, </div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; NVGSDK_SCOPE_HIGHLIGHTS_VIDEO = 1, </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; NVGSDK_SCOPE_HIGHLIGHTS_SCREENSHOT = 2, </div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; NVGSDK_SCOPE_MAX</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;} NVGSDK_Scope;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; NVGSDK_PERMISSION_GRANTED = 0, </div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; NVGSDK_PERMISSION_MUST_ASK = 1, </div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; NVGSDK_PERMISSION_DENIED = 2, </div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; NVGSDK_PERMISSION_UNKNOWN = 3, </div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; NVGSDK_PERMISSION_MAX</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;} NVGSDK_Permission;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;{</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; NVGSDK_OVERLAY_STATE_MAIN, </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; NVGSDK_OVERLAY_STATE_PERMISSION, </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; NVGSDK_OVERLAY_STATE_HIGHLIGHTS_SUMMARY,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; NVGSDK_OVERLAY_STATE_MAX</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;} NVGSDK_OverlayState;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* NVGSDK_RetCodeToString(NVGSDK_RetCode <span class="keyword">const</span> ret)</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;{</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">switch</span> (ret)</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; {</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">case</span> NVGSDK_SUCCESS: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_SUCCESS&quot;</span>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">case</span> NVGSDK_SUCCESS_VERSION_OLD_SDK: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_SUCCESS_VERSION_OLD_SDK&quot;</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">case</span> NVGSDK_SUCCESS_VERSION_OLD_GFE: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_SUCCESS_VERSION_OLD_GFE&quot;</span>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">case</span> NVGSDK_SUCCESS_PENDING: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_SUCCESS_PENDING&quot;</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">case</span> NVGSDK_SUCCESS_USER_NOT_INTERESTED: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_SUCCESS_USER_NOT_INTERESTED&quot;</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">case</span> NVGSDK_SUCCESS_PERMISSION_GRANTED: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_SUCCESS_PERMISSION_GRANTED&quot;</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_GENERIC: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_GENERIC&quot;</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_GFE_VERSION: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_GFE_VERSION&quot;</span>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_SDK_VERSION: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_SDK_VERSION&quot;</span>;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_NOT_IMPLEMENTED: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_NOT_IMPLEMENTED&quot;</span>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_INVALID_PARAMETER: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_INVALID_PARAMETER&quot;</span>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_NOT_SET: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_NOT_SET&quot;</span>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_SHADOWPLAY_IR_DISABLED: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_SHADOWPLAY_IR_DISABLED&quot;</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_SDK_IN_USE: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_SDK_IN_USE&quot;</span>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_GROUP_NOT_FOUND: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_GROUP_NOT_FOUND&quot;</span>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_FILE_NOT_FOUND: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_FILE_NOT_FOUND&quot;</span>;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_HIGHLIGHTS_SETUP_FAILED: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_HIGHLIGHTS_SETUP_FAILED&quot;</span>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_HIGHLIGHTS_SAVE_FAILED: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_HIGHLIGHTS_SAVE_FAILED&quot;</span>;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_UNEXPECTED_EXCEPTION: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_UNEXPECTED_EXCEPTION&quot;</span>;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_NO_HIGHLIGHTS: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_NO_HIGHLIGHTS&quot;</span>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_NO_CONNECTION: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_NO_CONNECTION&quot;</span>;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_PERMISSION_NOT_GRANTED: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_PERMISSION_NOT_GRANTED&quot;</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_PERMISSION_DENIED: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_PERMISSION_DENIED&quot;</span>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_INVALID_HANDLE: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_INVALID_HANDLE&quot;</span>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_UNHANDLED_EXCEPTION: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_UNHANDLED_EXCEPTION&quot;</span>;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_OUT_OF_MEMORY: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_OUT_OF_MEMORY&quot;</span>;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_LOAD_LIBRARY: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_LOAD_LIBRARY&quot;</span>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_LIB_CALL_FAILED: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_LIB_CALL_FAILED&quot;</span>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_IPC_FAILED: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_IPC_FAILED&quot;</span>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_CONNECTION: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_CONNECTION&quot;</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_MODULE_NOT_LOADED: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_MODULE_NOT_LOADED&quot;</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_LIB_CALL_TIMEOUT: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_LIB_CALL_TIMEOUT&quot;</span>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;Unknown code&quot;</span>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;}</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="comment">// All alphanumeric and the hyphen</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="keywordtype">char</span> <span class="keyword">const</span> VALID_GROUPID_CHARS[] = <span class="stringliteral">&quot;^[a-zA-Z0-9\\-_ ]+$&quot;</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="keywordtype">wchar_t</span> <span class="keyword">const</span> VALID_GROUPID_WCHARS[] = L<span class="stringliteral">&quot;^[a-zA-Z0-9\\-_ ]+$&quot;</span>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="keywordtype">char</span> <span class="keyword">const</span> VALID_HIGHLIGHT_DEF_ID_CHARS[] = <span class="stringliteral">&quot;^[a-zA-Z0-9\\-_ ]+$&quot;</span>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="keywordtype">wchar_t</span> <span class="keyword">const</span> VALID_HIGHLIGHT_DEF_ID_WCHARS[] = L<span class="stringliteral">&quot;^[a-zA-Z0-9\\-_ ]+$&quot;</span>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="keywordtype">char</span> <span class="keyword">const</span> VALID_GAMENAME_CHARS[] = <span class="stringliteral">&quot;^[a-zA-Z0-9\\-_ ]+$&quot;</span>;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="keywordtype">wchar_t</span> <span class="keyword">const</span> VALID_GAMENAME_WCHARS[] = L<span class="stringliteral">&quot;^[a-zA-Z0-9\\-_ ]+$&quot;</span>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="keywordtype">size_t</span> <span class="keyword">const</span> VALID_HIGHLIGHT_SIGNIFICANCE_WIDTH = 0x8FF;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="keywordtype">size_t</span> <span class="keyword">const</span> VALID_HIGHLIGHT_TAG_WIDTH = 0x1F;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;}</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="preprocessor">#endif // NVSDKAPI_IPC_H</span></div></div><!-- fragment --></div><!-- contents -->
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// NVIDIA CORPORATION and its licensors retain all intellectual property</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// and proprietary rights in and to this software, related documentation</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// and any modifications thereto. Any use, reproduction, disclosure or</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// distribution of this software and related documentation without an express</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// license agreement from NVIDIA CORPORATION is strictly prohibited.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#ifndef NVSDKAPI_IPC_H</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#define NVSDKAPI_IPC_H</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keywordtype">int</span> <span class="keyword">const</span> NVGSDK_IPC_VERSION_MAJOR = 1;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keywordtype">int</span> <span class="keyword">const</span> NVGSDK_IPC_VERSION_MINOR = 1;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> _NVGSDK_RetCode</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; NVGSDK_SUCCESS = 0,</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; NVGSDK_SUCCESS_VERSION_OLD_SDK = 1001,</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; NVGSDK_SUCCESS_VERSION_OLD_GFE = 1002,</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; NVGSDK_SUCCESS_PENDING = 1003,</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; NVGSDK_SUCCESS_USER_NOT_INTERESTED = 1004,</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; NVGSDK_SUCCESS_PERMISSION_GRANTED = 1005,</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; NVGSDK_ERR_GENERIC = -1001,</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; NVGSDK_ERR_GFE_VERSION = -1002,</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; NVGSDK_ERR_SDK_VERSION = -1003,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; NVGSDK_ERR_NOT_IMPLEMENTED = -1004,</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; NVGSDK_ERR_INVALID_PARAMETER = -1005,</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; NVGSDK_ERR_NOT_SET = -1006,</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; NVGSDK_ERR_SHADOWPLAY_IR_DISABLED = -1007,</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; NVGSDK_ERR_SDK_IN_USE = -1008,</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; NVGSDK_ERR_GROUP_NOT_FOUND = -1009,</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; NVGSDK_ERR_FILE_NOT_FOUND = -1010,</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; NVGSDK_ERR_HIGHLIGHTS_SETUP_FAILED = -1011,</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; NVGSDK_ERR_HIGHLIGHTS_NOT_CONFIGURED = -1012,</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; NVGSDK_ERR_HIGHLIGHTS_SAVE_FAILED = -1013,</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; NVGSDK_ERR_UNEXPECTED_EXCEPTION = -1014,</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; NVGSDK_ERR_NO_HIGHLIGHTS = -1015,</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; NVGSDK_ERR_NO_CONNECTION = -1016,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; NVGSDK_ERR_PERMISSION_NOT_GRANTED = -1017,</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; NVGSDK_ERR_PERMISSION_DENIED = -1018,</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; NVGSDK_ERR_INVALID_HANDLE = -1019,</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; NVGSDK_ERR_UNHANDLED_EXCEPTION = -1020,</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; NVGSDK_ERR_OUT_OF_MEMORY = -1021,</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; NVGSDK_ERR_LOAD_LIBRARY = -1022,</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; NVGSDK_ERR_LIB_CALL_FAILED = -1023,</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; NVGSDK_ERR_IPC_FAILED = -1024,</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; NVGSDK_ERR_CONNECTION = -1025,</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; NVGSDK_ERR_MODULE_NOT_LOADED = -1026,</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; NVGSDK_ERR_LIB_CALL_TIMEOUT = -1027</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;} NVGSDK_RetCode;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment">// not using macros to avoid polluting namespace of SDK unnecessarily</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> NVGSDK_SUCCEEDED(NVGSDK_RetCode r)</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;{</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> r &gt;= 0;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;}</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> NVGSDK_FAILED(NVGSDK_RetCode r)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;{</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> r &lt; 0;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;}</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;{</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; NVGSDK_HIGHLIGHT_TYPE_MILESTONE = 0x00000001,</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; NVGSDK_HIGHLIGHT_TYPE_ACHIEVEMENT = 0x00000002,</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; NVGSDK_HIGHLIGHT_TYPE_INCIDENT = 0x00000004,</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; NVGSDK_HIGHLIGHT_TYPE_STATE_CHANGE = 0x00000008,</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; NVGSDK_HIGHLIGHT_TYPE_UNANNOUNCED = 0x00000010,</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; NVGSDK_HIGHLIGHT_TYPE_MAX = 0x00000020</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;} NVGSDK_HighlightType;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;{</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; NVGSDK_SCOPE_HIGHLIGHTS = 0, </div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; NVGSDK_SCOPE_HIGHLIGHTS_VIDEO = 1, </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; NVGSDK_SCOPE_HIGHLIGHTS_SCREENSHOT = 2, </div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; NVGSDK_SCOPE_MAX</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;} NVGSDK_Scope;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; NVGSDK_PERMISSION_GRANTED = 0, </div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; NVGSDK_PERMISSION_MUST_ASK = 1, </div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; NVGSDK_PERMISSION_DENIED = 2, </div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; NVGSDK_PERMISSION_UNKNOWN = 3, </div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; NVGSDK_PERMISSION_MAX</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;} NVGSDK_Permission;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;{</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; NVGSDK_OVERLAY_STATE_MAIN, </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; NVGSDK_OVERLAY_STATE_PERMISSION, </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; NVGSDK_OVERLAY_STATE_HIGHLIGHTS_SUMMARY,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; NVGSDK_OVERLAY_STATE_MAX</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;} NVGSDK_OverlayState;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* NVGSDK_RetCodeToString(NVGSDK_RetCode <span class="keyword">const</span> ret)</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;{</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">switch</span> (ret)</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; {</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">case</span> NVGSDK_SUCCESS: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_SUCCESS&quot;</span>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">case</span> NVGSDK_SUCCESS_VERSION_OLD_SDK: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_SUCCESS_VERSION_OLD_SDK&quot;</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">case</span> NVGSDK_SUCCESS_VERSION_OLD_GFE: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_SUCCESS_VERSION_OLD_GFE&quot;</span>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">case</span> NVGSDK_SUCCESS_PENDING: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_SUCCESS_PENDING&quot;</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">case</span> NVGSDK_SUCCESS_USER_NOT_INTERESTED: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_SUCCESS_USER_NOT_INTERESTED&quot;</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">case</span> NVGSDK_SUCCESS_PERMISSION_GRANTED: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_SUCCESS_PERMISSION_GRANTED&quot;</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_GENERIC: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_GENERIC&quot;</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_GFE_VERSION: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_GFE_VERSION&quot;</span>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_SDK_VERSION: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_SDK_VERSION&quot;</span>;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_NOT_IMPLEMENTED: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_NOT_IMPLEMENTED&quot;</span>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_INVALID_PARAMETER: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_INVALID_PARAMETER&quot;</span>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_NOT_SET: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_NOT_SET&quot;</span>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_SHADOWPLAY_IR_DISABLED: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_SHADOWPLAY_IR_DISABLED&quot;</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_SDK_IN_USE: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_SDK_IN_USE&quot;</span>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_GROUP_NOT_FOUND: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_GROUP_NOT_FOUND&quot;</span>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_FILE_NOT_FOUND: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_FILE_NOT_FOUND&quot;</span>;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_HIGHLIGHTS_SETUP_FAILED: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_HIGHLIGHTS_SETUP_FAILED&quot;</span>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_HIGHLIGHTS_SAVE_FAILED: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_HIGHLIGHTS_SAVE_FAILED&quot;</span>;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_UNEXPECTED_EXCEPTION: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_UNEXPECTED_EXCEPTION&quot;</span>;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_NO_HIGHLIGHTS: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_NO_HIGHLIGHTS&quot;</span>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_NO_CONNECTION: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_NO_CONNECTION&quot;</span>;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_PERMISSION_NOT_GRANTED: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_PERMISSION_NOT_GRANTED&quot;</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_PERMISSION_DENIED: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_PERMISSION_DENIED&quot;</span>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_INVALID_HANDLE: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_INVALID_HANDLE&quot;</span>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_UNHANDLED_EXCEPTION: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_UNHANDLED_EXCEPTION&quot;</span>;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_OUT_OF_MEMORY: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_OUT_OF_MEMORY&quot;</span>;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_LOAD_LIBRARY: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_LOAD_LIBRARY&quot;</span>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_LIB_CALL_FAILED: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_LIB_CALL_FAILED&quot;</span>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_IPC_FAILED: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_IPC_FAILED&quot;</span>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_CONNECTION: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_CONNECTION&quot;</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_MODULE_NOT_LOADED: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_MODULE_NOT_LOADED&quot;</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">case</span> NVGSDK_ERR_LIB_CALL_TIMEOUT: <span class="keywordflow">return</span> <span class="stringliteral">&quot;NVGSDK_ERR_LIB_CALL_TIMEOUT&quot;</span>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;Unknown code&quot;</span>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;}</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="comment">// All alphanumeric and the hyphen</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="keywordtype">char</span> <span class="keyword">const</span> VALID_GROUPID_CHARS[] = <span class="stringliteral">&quot;^[a-zA-Z0-9\\-_ ]+$&quot;</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="keywordtype">wchar_t</span> <span class="keyword">const</span> VALID_GROUPID_WCHARS[] = L<span class="stringliteral">&quot;^[a-zA-Z0-9\\-_ ]+$&quot;</span>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="keywordtype">char</span> <span class="keyword">const</span> VALID_HIGHLIGHT_DEF_ID_CHARS[] = <span class="stringliteral">&quot;^[a-zA-Z0-9\\-_ ]+$&quot;</span>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="keywordtype">wchar_t</span> <span class="keyword">const</span> VALID_HIGHLIGHT_DEF_ID_WCHARS[] = L<span class="stringliteral">&quot;^[a-zA-Z0-9\\-_ ]+$&quot;</span>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="keywordtype">char</span> <span class="keyword">const</span> VALID_GAMENAME_CHARS[] = <span class="stringliteral">&quot;^[a-zA-Z0-9\\-_ ]+$&quot;</span>;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="keywordtype">wchar_t</span> <span class="keyword">const</span> VALID_GAMENAME_WCHARS[] = L<span class="stringliteral">&quot;^[a-zA-Z0-9\\-_ ]+$&quot;</span>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="keywordtype">size_t</span> <span class="keyword">const</span> VALID_HIGHLIGHT_SIGNIFICANCE_WIDTH = 0x8FF;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="keywordtype">size_t</span> <span class="keyword">const</span> VALID_HIGHLIGHT_TAG_WIDTH = 0x1F;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;}</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="preprocessor">#endif // NVSDKAPI_IPC_H</span></div></div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.12-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_93766c917ed92592c1894d5c5e65f172.html">sdk</a></li><li class="navelem"><a class="el" href="dir_35d2c3225318c321406c9a6beb044d2f.html">include</a></li><li class="navelem"><a class="el" href="dir_10362ab7f5c0ce07ef57bf30752a9cd8.html">gfesdk</a></li><li class="navelem"><b>sdk_types_ipc.h</b></li>
+ <li class="navelem"><a class="el" href="dir_3218f9f0b6327c4561f5657fde3efe5c.html">sdk</a></li><li class="navelem"><a class="el" href="dir_6b811c56f74854312f0f79bac710ab51.html">include</a></li><li class="navelem"><a class="el" href="dir_1c824c8e748d5ae4b3cfd93e0df1dd54.html">gfesdk</a></li><li class="navelem"><b>sdk_types_ipc.h</b></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
doxygen</a> 1.8.12 </li>
diff --git a/doc/html/section_changelog.html b/doc/html/section_changelog.html
index 4a31361..6dd80bd 100644
--- a/doc/html/section_changelog.html
+++ b/doc/html/section_changelog.html
@@ -85,7 +85,13 @@ $(document).ready(function(){initNavTree('section_changelog.html','');});
<div class="title">Changelog </div> </div>
</div><!--header-->
<div class="contents">
-<div class="textblock"><h2>NVIDIA GfeSDK 1.0 (2018-01-16)</h2>
+<div class="textblock"><h2>NVIDIA GfeSDK 1.1 (2018-01-22)</h2>
+<h3>API Changes</h3>
+<ul>
+<li><b>SDK version incremented to 1.1</b> Allows old SDK clients to work with upcoming 3.13 GFE</li>
+<li><b>Highlights Config parameters validation</b> Rejects Highlights of invalid type and significance</li>
+</ul>
+<h2>NVIDIA GfeSDK 1.0 (2018-01-16)</h2>
<h3>Features for GFE 3.13+</h3>
<ul>
<li><b>UWP Support</b> Add support to Universal Windows Platform games</li>
diff --git a/doc/html/struct_gfe_s_d_k_1_1_get_number_of_highlights_response.html b/doc/html/struct_gfe_s_d_k_1_1_get_number_of_highlights_response.html
index 6007b6c..c128a3b 100644
--- a/doc/html/struct_gfe_s_d_k_1_1_get_number_of_highlights_response.html
+++ b/doc/html/struct_gfe_s_d_k_1_1_get_number_of_highlights_response.html
@@ -103,7 +103,7 @@ uint16_t&#160;</td><td class="memItemRight" valign="bottom"><b>numHighlights</b>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>C++ binding for NVGSDK_GetNumberOfHighlightsResponse. </p>
-<p>Definition at line <a class="el" href="highlights__types__cpp_8h_source.html#l00096">96</a> of file <a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a>.</p>
+<p>Definition at line <a class="el" href="highlights__types__cpp_8h_source.html#l00097">97</a> of file <a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>C:/u/workspace/dev/sdkwinauto/sdkclient/include/gfesdk/bindings/cpp/highlights/<a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a></li>
</ul>
diff --git a/doc/html/struct_gfe_s_d_k_1_1_get_user_settings_response.html b/doc/html/struct_gfe_s_d_k_1_1_get_user_settings_response.html
index 8018592..d78a7d1 100644
--- a/doc/html/struct_gfe_s_d_k_1_1_get_user_settings_response.html
+++ b/doc/html/struct_gfe_s_d_k_1_1_get_user_settings_response.html
@@ -103,7 +103,7 @@ std::vector&lt; <a class="el" href="struct_gfe_s_d_k_1_1_highlight_user_setting.
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>C++ binding for NVGSDK_Highlights_GetUserSettingsResponse. </p>
-<p>Definition at line <a class="el" href="highlights__types__cpp_8h_source.html#l00103">103</a> of file <a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a>.</p>
+<p>Definition at line <a class="el" href="highlights__types__cpp_8h_source.html#l00104">104</a> of file <a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>C:/u/workspace/dev/sdkwinauto/sdkclient/include/gfesdk/bindings/cpp/highlights/<a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a></li>
</ul>
diff --git a/doc/html/struct_gfe_s_d_k_1_1_group_view.html b/doc/html/struct_gfe_s_d_k_1_1_group_view.html
index cb65cf0..f98d09c 100644
--- a/doc/html/struct_gfe_s_d_k_1_1_group_view.html
+++ b/doc/html/struct_gfe_s_d_k_1_1_group_view.html
@@ -109,7 +109,7 @@ NVGSDK_HighlightType&#160;</td><td class="memItemRight" valign="bottom"><b>tagsF
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>C++ binding for <a class="el" href="struct_n_v_g_s_d_k___group_view.html">NVGSDK_GroupView</a>. </p>
-<p>Definition at line <a class="el" href="highlights__types__cpp_8h_source.html#l00072">72</a> of file <a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a>.</p>
+<p>Definition at line <a class="el" href="highlights__types__cpp_8h_source.html#l00073">73</a> of file <a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>C:/u/workspace/dev/sdkwinauto/sdkclient/include/gfesdk/bindings/cpp/highlights/<a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a></li>
</ul>
diff --git a/doc/html/struct_gfe_s_d_k_1_1_highlight_close_group_params.html b/doc/html/struct_gfe_s_d_k_1_1_highlight_close_group_params.html
index 08268a0..aac1ed2 100644
--- a/doc/html/struct_gfe_s_d_k_1_1_highlight_close_group_params.html
+++ b/doc/html/struct_gfe_s_d_k_1_1_highlight_close_group_params.html
@@ -106,7 +106,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>destroyHighlights</b>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>C++ binding for <a class="el" href="struct_n_v_g_s_d_k___highlight_close_group_params.html">NVGSDK_HighlightCloseGroupParams</a>. </p>
-<p>Definition at line <a class="el" href="highlights__types__cpp_8h_source.html#l00049">49</a> of file <a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a>.</p>
+<p>Definition at line <a class="el" href="highlights__types__cpp_8h_source.html#l00050">50</a> of file <a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>C:/u/workspace/dev/sdkwinauto/sdkclient/include/gfesdk/bindings/cpp/highlights/<a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a></li>
</ul>
diff --git a/doc/html/struct_gfe_s_d_k_1_1_highlight_config_params.html b/doc/html/struct_gfe_s_d_k_1_1_highlight_config_params.html
index e886416..63682b1 100644
--- a/doc/html/struct_gfe_s_d_k_1_1_highlight_config_params.html
+++ b/doc/html/struct_gfe_s_d_k_1_1_highlight_config_params.html
@@ -106,7 +106,7 @@ std::string&#160;</td><td class="memItemRight" valign="bottom"><b>defaultLocale<
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>C++ binding for <a class="el" href="struct_n_v_g_s_d_k___highlight_config_params.html">NVGSDK_HighlightConfigParams</a>. </p>
-<p>Definition at line <a class="el" href="highlights__types__cpp_8h_source.html#l00035">35</a> of file <a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a>.</p>
+<p>Definition at line <a class="el" href="highlights__types__cpp_8h_source.html#l00036">36</a> of file <a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>C:/u/workspace/dev/sdkwinauto/sdkclient/include/gfesdk/bindings/cpp/highlights/<a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a></li>
</ul>
diff --git a/doc/html/struct_gfe_s_d_k_1_1_highlight_definition-members.html b/doc/html/struct_gfe_s_d_k_1_1_highlight_definition-members.html
index 3134788..7835c40 100644
--- a/doc/html/struct_gfe_s_d_k_1_1_highlight_definition-members.html
+++ b/doc/html/struct_gfe_s_d_k_1_1_highlight_definition-members.html
@@ -88,11 +88,12 @@ $(document).ready(function(){initNavTree('struct_gfe_s_d_k_1_1_highlight_definit
<p>This is the complete list of members for <a class="el" href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a>, including all inherited members.</p>
<table class="directory">
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>highlightTags</b> (defined in <a class="el" href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a>)</td><td class="entry"><a class="el" href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>id</b> (defined in <a class="el" href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a>)</td><td class="entry"><a class="el" href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="struct_gfe_s_d_k_1_1_highlight_definition.html#a2511ee17dafd2a096b15e6f62b1f77b2">nameLocaleTable</a></td><td class="entry"><a class="el" href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>significance</b> (defined in <a class="el" href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a>)</td><td class="entry"><a class="el" href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>userDefaultInterest</b> (defined in <a class="el" href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a>)</td><td class="entry"><a class="el" href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>HighlightDefinition</b>() (defined in <a class="el" href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a>)</td><td class="entry"><a class="el" href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>highlightTags</b> (defined in <a class="el" href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a>)</td><td class="entry"><a class="el" href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>id</b> (defined in <a class="el" href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a>)</td><td class="entry"><a class="el" href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="struct_gfe_s_d_k_1_1_highlight_definition.html#a2511ee17dafd2a096b15e6f62b1f77b2">nameLocaleTable</a></td><td class="entry"><a class="el" href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>significance</b> (defined in <a class="el" href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a>)</td><td class="entry"><a class="el" href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>userDefaultInterest</b> (defined in <a class="el" href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a>)</td><td class="entry"><a class="el" href="struct_gfe_s_d_k_1_1_highlight_definition.html">GfeSDK::HighlightDefinition</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.12-->
diff --git a/doc/html/struct_gfe_s_d_k_1_1_highlight_definition.js b/doc/html/struct_gfe_s_d_k_1_1_highlight_definition.js
index 6872358..5d452c1 100644
--- a/doc/html/struct_gfe_s_d_k_1_1_highlight_definition.js
+++ b/doc/html/struct_gfe_s_d_k_1_1_highlight_definition.js
@@ -1,5 +1,6 @@
var struct_gfe_s_d_k_1_1_highlight_definition =
[
+ [ "HighlightDefinition", "struct_gfe_s_d_k_1_1_highlight_definition.html#a0e50337058adcff1c2e1a73e8c54d1a5", null ],
[ "id", "struct_gfe_s_d_k_1_1_highlight_definition.html#a2fc01319783b3d556e27de2926b48465", null ],
[ "userDefaultInterest", "struct_gfe_s_d_k_1_1_highlight_definition.html#abe789864cb6f6650f8ceda43281d50c2", null ],
[ "highlightTags", "struct_gfe_s_d_k_1_1_highlight_definition.html#a56bfb064a70bc8f3eb63c3d8e487facb", null ],
diff --git a/doc/html/struct_gfe_s_d_k_1_1_highlight_open_group_params.html b/doc/html/struct_gfe_s_d_k_1_1_highlight_open_group_params.html
index a4e6daf..e8d3f52 100644
--- a/doc/html/struct_gfe_s_d_k_1_1_highlight_open_group_params.html
+++ b/doc/html/struct_gfe_s_d_k_1_1_highlight_open_group_params.html
@@ -106,7 +106,7 @@ TTranslationTable&#160;</td><td class="memItemRight" valign="bottom"><b>groupDes
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>C++ binding for <a class="el" href="struct_n_v_g_s_d_k___highlight_open_group_params.html">NVGSDK_HighlightOpenGroupParams</a>. </p>
-<p>Definition at line <a class="el" href="highlights__types__cpp_8h_source.html#l00042">42</a> of file <a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a>.</p>
+<p>Definition at line <a class="el" href="highlights__types__cpp_8h_source.html#l00043">43</a> of file <a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>C:/u/workspace/dev/sdkwinauto/sdkclient/include/gfesdk/bindings/cpp/highlights/<a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a></li>
</ul>
diff --git a/doc/html/struct_gfe_s_d_k_1_1_highlight_user_setting.html b/doc/html/struct_gfe_s_d_k_1_1_highlight_user_setting.html
index a9438c1..28e69c2 100644
--- a/doc/html/struct_gfe_s_d_k_1_1_highlight_user_setting.html
+++ b/doc/html/struct_gfe_s_d_k_1_1_highlight_user_setting.html
@@ -108,7 +108,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stru
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>C++ binding for <a class="el" href="struct_n_v_g_s_d_k___highlight_user_setting.html">NVGSDK_HighlightUserSetting</a>. </p>
-<p>Definition at line <a class="el" href="highlights__types__cpp_8h_source.html#l00087">87</a> of file <a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a>.</p>
+<p>Definition at line <a class="el" href="highlights__types__cpp_8h_source.html#l00088">88</a> of file <a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>C:/u/workspace/dev/sdkwinauto/sdkclient/include/gfesdk/bindings/cpp/highlights/<a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a></li>
</ul>
diff --git a/doc/html/struct_gfe_s_d_k_1_1_screenshot_highlight_params.html b/doc/html/struct_gfe_s_d_k_1_1_screenshot_highlight_params.html
index 5bfa88d..8cfe28d 100644
--- a/doc/html/struct_gfe_s_d_k_1_1_screenshot_highlight_params.html
+++ b/doc/html/struct_gfe_s_d_k_1_1_screenshot_highlight_params.html
@@ -106,7 +106,7 @@ std::string&#160;</td><td class="memItemRight" valign="bottom"><b>highlightId</b
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>C++ binding for <a class="el" href="struct_n_v_g_s_d_k___screenshot_highlight_params.html">NVGSDK_ScreenshotHighlightParams</a>. </p>
-<p>Definition at line <a class="el" href="highlights__types__cpp_8h_source.html#l00056">56</a> of file <a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a>.</p>
+<p>Definition at line <a class="el" href="highlights__types__cpp_8h_source.html#l00057">57</a> of file <a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>C:/u/workspace/dev/sdkwinauto/sdkclient/include/gfesdk/bindings/cpp/highlights/<a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a></li>
</ul>
diff --git a/doc/html/struct_gfe_s_d_k_1_1_summary_params.html b/doc/html/struct_gfe_s_d_k_1_1_summary_params.html
index a4f15ce..6b00de1 100644
--- a/doc/html/struct_gfe_s_d_k_1_1_summary_params.html
+++ b/doc/html/struct_gfe_s_d_k_1_1_summary_params.html
@@ -103,7 +103,7 @@ std::vector&lt; <a class="el" href="struct_gfe_s_d_k_1_1_group_view.html">GroupV
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>C++ binding for <a class="el" href="struct_n_v_g_s_d_k___summary_params.html">NVGSDK_SummaryParams</a>. </p>
-<p>Definition at line <a class="el" href="highlights__types__cpp_8h_source.html#l00081">81</a> of file <a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a>.</p>
+<p>Definition at line <a class="el" href="highlights__types__cpp_8h_source.html#l00082">82</a> of file <a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>C:/u/workspace/dev/sdkwinauto/sdkclient/include/gfesdk/bindings/cpp/highlights/<a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a></li>
</ul>
diff --git a/doc/html/struct_gfe_s_d_k_1_1_video_highlight_params.html b/doc/html/struct_gfe_s_d_k_1_1_video_highlight_params.html
index d384d65..b222d58 100644
--- a/doc/html/struct_gfe_s_d_k_1_1_video_highlight_params.html
+++ b/doc/html/struct_gfe_s_d_k_1_1_video_highlight_params.html
@@ -112,7 +112,7 @@ int32_t&#160;</td><td class="memItemRight" valign="bottom"><b>endDelta</b></td><
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>C++ binding for <a class="el" href="struct_n_v_g_s_d_k___video_highlight_params.html">NVGSDK_VideoHighlightParams</a>. </p>
-<p>Definition at line <a class="el" href="highlights__types__cpp_8h_source.html#l00063">63</a> of file <a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a>.</p>
+<p>Definition at line <a class="el" href="highlights__types__cpp_8h_source.html#l00064">64</a> of file <a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>C:/u/workspace/dev/sdkwinauto/sdkclient/include/gfesdk/bindings/cpp/highlights/<a class="el" href="highlights__types__cpp_8h_source.html">highlights_types_cpp.h</a></li>
</ul>
diff --git a/include/gfesdk/bindings/cpp/highlights/highlights_types_cpp.h b/include/gfesdk/bindings/cpp/highlights/highlights_types_cpp.h
index b18cfc2..69dbb88 100644
--- a/include/gfesdk/bindings/cpp/highlights/highlights_types_cpp.h
+++ b/include/gfesdk/bindings/cpp/highlights/highlights_types_cpp.h
@@ -29,6 +29,7 @@ struct HighlightDefinition
NVGSDK_HighlightType highlightTags;
NVGSDK_HighlightSignificance significance;
TTranslationTable nameLocaleTable; //!< Locale/translation pairs
+ HighlightDefinition() : highlightTags(static_cast<NVGSDK_HighlightType>(0)), significance(static_cast<NVGSDK_HighlightSignificance>(0)), userDefaultInterest(true) {}
};
//! C++ binding for @ref NVGSDK_HighlightConfigParams
diff --git a/include/gfesdk/config.h b/include/gfesdk/config.h
index 44791c8..3ae765a 100644
--- a/include/gfesdk/config.h
+++ b/include/gfesdk/config.h
@@ -17,9 +17,9 @@
#define NVGSDK_PROJECT_NAME "GfeSDK"
#define NVGSDK_VERSION_MAJOR 1
-#define NVGSDK_VERSION_MINOR 0
-#define NVGSDK_BUILD_NUMBER 168
-#define NVGSDK_BUILD_HASH 8a267a87
-#define NVGSDK_BUILD_HASH_STR "8a267a87"
+#define NVGSDK_VERSION_MINOR 1
+#define NVGSDK_BUILD_NUMBER 173
+#define NVGSDK_BUILD_HASH 5d889305
+#define NVGSDK_BUILD_HASH_STR "5d889305"
#endif // _NVGSDK_CONFIG_H_
diff --git a/include/gfesdk/gfe3_product_version.h b/include/gfesdk/gfe3_product_version.h
index 13d9b09..64a2a63 100644
--- a/include/gfesdk/gfe3_product_version.h
+++ b/include/gfesdk/gfe3_product_version.h
@@ -13,7 +13,7 @@
#define NVIDIA_GFE3_VERSION_MINOR 13
#define NVIDIA_GFE3_VERSION_DEV_REBASE 0
#define NVIDIA_GFE3_VERSION_RNEXT_REBASE 0
-#define NVIDIA_GFE3_VERSION_BUILD 41
+#define NVIDIA_GFE3_VERSION_BUILD 47
//
// Composite version values. We don't concatenate them here automatically because
@@ -22,11 +22,11 @@
//
// Format: A,B,XY,N
-#define NVIDIA_GFE3_VERSION 3,13,0,41
+#define NVIDIA_GFE3_VERSION 3,13,0,47
// Format: A.B.XY.N
-#define NVIDIA_GFE3_VERSION_DOT 3.13.0.41
+#define NVIDIA_GFE3_VERSION_DOT 3.13.0.47
// Format: "A.B.XY.N"
-#define NVIDIA_GFE3_VERSION_STRING "3.13.0.41"
+#define NVIDIA_GFE3_VERSION_STRING "3.13.0.47"
//
// Some common strings
diff --git a/include/gfesdk/sdk_types_ipc.h b/include/gfesdk/sdk_types_ipc.h
index 09353ad..03416c2 100644
--- a/include/gfesdk/sdk_types_ipc.h
+++ b/include/gfesdk/sdk_types_ipc.h
@@ -45,7 +45,7 @@ extern "C" {
*/
int const NVGSDK_IPC_VERSION_MAJOR = 1;
-int const NVGSDK_IPC_VERSION_MINOR = 0;
+int const NVGSDK_IPC_VERSION_MINOR = 1;
/*!
* \brief Possible return values of all external APIs
diff --git a/lib/win32/GfeSDK.lib b/lib/win32/GfeSDK.lib
index 638d22f..ed020a1 100644
--- a/lib/win32/GfeSDK.lib
+++ b/lib/win32/GfeSDK.lib
Binary files differ
diff --git a/lib/win64/GfeSDK.lib b/lib/win64/GfeSDK.lib
index 75d7f78..037a08b 100644
--- a/lib/win64/GfeSDK.lib
+++ b/lib/win64/GfeSDK.lib
Binary files differ
diff --git a/redist/win32/GfeSDK.dll b/redist/win32/GfeSDK.dll
index 98fadbf..75d9b1f 100644
--- a/redist/win32/GfeSDK.dll
+++ b/redist/win32/GfeSDK.dll
Binary files differ
diff --git a/redist/win32_uwp/GfeSDK.dll b/redist/win32_uwp/GfeSDK.dll
index ddcc0de..9cb804d 100644
--- a/redist/win32_uwp/GfeSDK.dll
+++ b/redist/win32_uwp/GfeSDK.dll
Binary files differ
diff --git a/redist/win64/GfeSDK.dll b/redist/win64/GfeSDK.dll
index 442f666..ff73301 100644
--- a/redist/win64/GfeSDK.dll
+++ b/redist/win64/GfeSDK.dll
Binary files differ
diff --git a/redist/win64_uwp/GfeSDK.dll b/redist/win64_uwp/GfeSDK.dll
index 3b4eb4d..62a2815 100644
--- a/redist/win64_uwp/GfeSDK.dll
+++ b/redist/win64_uwp/GfeSDK.dll
Binary files differ