16 #ifndef GFESDK_IHIGHLIGHTS_CPP_IMPL_H 17 #define GFESDK_IHIGHLIGHTS_CPP_IMPL_H 32 virtual void GetUserSettingsAsync(TGetUserSettingsCallback cb =
nullptr,
void* cbContext =
nullptr)
const;
54 NVGSDK_HANDLE* m_handle;
65 std::vector<NVGSDK_Highlight> cHighlights;
66 std::vector<std::vector<NVGSDK_LocalizedPair>> cLocaleMaps;
67 for (
auto it = params.highlightDefinitions.begin(); it != params.highlightDefinitions.end(); ++it)
69 cLocaleMaps.push_back(std::vector<NVGSDK_LocalizedPair>());
70 for (
auto localeIt = it->nameLocaleTable.begin(); localeIt != it->nameLocaleTable.end(); ++localeIt)
72 cLocaleMaps.back().push_back({
73 localeIt->first.c_str(),
74 localeIt->second.c_str()
77 cHighlights.push_back({
79 it->userDefaultInterest,
82 it->nameLocaleTable.empty() ?
nullptr : &cLocaleMaps.back()[0],
83 it->nameLocaleTable.size()
86 cParams.highlightDefinitionTable = &cHighlights[0];
87 cParams.highlightTableSize = cHighlights.size();
95 std::unique_ptr<CoreImpl::CallbackContext<TGetUserSettingsCallback>> callbackContext(
reinterpret_cast<CoreImpl::CallbackContext<TGetUserSettingsCallback>*
>(context));
96 if (!callbackContext->callback)
return;
98 if (NVGSDK_FAILED(rc))
100 return callbackContext->callback(rc,
nullptr, callbackContext->appContext);
104 for (
size_t i = 0; i < data->highlightSettingTableSize; ++i)
106 r.highlightSettings.push_back({
107 data->highlightSettingTable[i].
id,
108 data->highlightSettingTable[i].
enabled 111 callbackContext->callback(rc, &r, callbackContext->appContext);
112 },
new CoreImpl::CallbackContext<TGetUserSettingsCallback>({ callback, context }));
119 std::vector<NVGSDK_LocalizedPair> localePairs;
120 CoreImpl::translateLocaleTable(params.groupDescriptionLocaleTable, localePairs);
121 cParams.
groupId = params.groupId.c_str();
131 cParams.
groupId = params.groupId.c_str();
140 cParams.
groupId = params.groupId.c_str();
148 cParams.
groupId = params.groupId.c_str();
157 std::vector<NVGSDK_GroupView> cGroupViews;
158 for (
auto it = params.groupViews.begin(); it != params.groupViews.end(); ++it)
160 cGroupViews.push_back({
163 it->significanceFilter
176 cParams.
groupId = params.groupId.c_str();
180 std::unique_ptr<CoreImpl::CallbackContext<TGetNumberOfHighlightsCallback>> callbackContext(
reinterpret_cast<CoreImpl::CallbackContext<TGetNumberOfHighlightsCallback>*
>(context));
181 if (!callbackContext->callback)
return;
183 if (NVGSDK_FAILED(rc))
185 return callbackContext->callback(rc,
nullptr, callbackContext->appContext);
189 num.numHighlights = data->numberOfHighlights;
190 callbackContext->callback(rc, &num, callbackContext->appContext);
191 },
new CoreImpl::CallbackContext<TGetNumberOfHighlightsCallback>({ callback, context }));
196 #endif //GFESDK_IHIGHLIGHTS_CPP_IMPL_H char const * groupId
Required ID of the group this highlight is attached to.
int32_t endDelta
Milliseconds between the time of request, and end of desired video clip.
C++ binding for NVGSDK_SummaryParams.
NVGSDK_HighlightSignificance significanceFilter
If not zero, represents a bitfield of significance values to include.
virtual void GetNumberOfHighlightsAsync(GroupView const ¶ms, TGetNumberOfHighlightsCallback cb=nullptr, void *cbContext=nullptr)
C++ binding for NVGSDK_ScreenshotHighlightParams.
bool enabled
Boolean for whether the user wants to record this type of highlight.
C++ binding for NVGSDK_HighlightCloseGroupParams.
C++ binding for NVGSDK_HighlightOpenGroupParams.
virtual void SetVideoHighlightAsync(VideoHighlightParams const ¶ms, TCallback cb=nullptr, void *cbContext=nullptr)
C++ binding for NVGSDK_Highlights_GetUserSettingsResponse.
char const * highlightId
Refers to unique highlight id in highlight table.
virtual void CloseGroupAsync(HighlightCloseGroupParams const ¶ms, TCallback cb=nullptr, void *cbContext=nullptr)
char const * groupId
Required ID of the group this highlight is attached to.
char const * defaultLocale
Default locality, used for hinting GFE which translation to use. Defaults to en-us.
virtual void OpenGroupAsync(HighlightOpenGroupParams const ¶ms, TCallback cb=nullptr, void *cbContext=nullptr)
C++ binding for NVGSDK_HighlightConfigParams.
NVGSDK_EXPORT void NVGSDKApi NVGSDK_Highlights_OpenGroupAsync(NVGSDK_HANDLE *handle, NVGSDK_HighlightOpenGroupParams const *params, NVGSDK_EmptyCallback callback, void *context)
C++ binding for NVGSDK_VideoHighlightParams.
virtual void OpenSummaryAsync(SummaryParams const ¶ms, TCallback cb=nullptr, void *cbContext=nullptr)
NVGSDK_LocalizedPair * groupDescriptionTable
char const * highlightId
Refers to unique highlight id in highlight table.
NVGSDK_GroupView * groupSummaryTable
Pass in all the groups to display on screen.
NVGSDK_EXPORT void NVGSDKApi NVGSDK_Highlights_GetUserSettingsAsync(NVGSDK_HANDLE *handle, NVGSDK_Highlights_GetUserSettingsCallback cb, void *cbContext)
char const * id
Unique id for game event.
NVGSDK_EXPORT void NVGSDKApi NVGSDK_Highlights_SetScreenshotHighlightAsync(NVGSDK_HANDLE *handle, NVGSDK_ScreenshotHighlightParams const *params, NVGSDK_EmptyCallback callback, void *context)
size_t groupSummaryTableSize
Number of groups contained in the table pointer.
NVGSDK_EXPORT void NVGSDKApi NVGSDK_Highlights_ConfigureAsync(NVGSDK_HANDLE *handle, NVGSDK_HighlightConfigParams const *config, NVGSDK_EmptyCallback callback, void *context)
NVGSDK_EXPORT void NVGSDKApi NVGSDK_Highlights_GetNumberOfHighlightsAsync(NVGSDK_HANDLE *handle, NVGSDK_GroupView const *groupParams, NVGSDK_Highlights_GetNumberOfHighlightsCallback cb, void *context)
virtual void SetScreenshotHighlightAsync(ScreenshotHighlightParams const ¶ms, TCallback cb=nullptr, void *cbContext=nullptr)
C++ binding for NVGSDK_GroupView.
NVGSDK_EXPORT void NVGSDKApi NVGSDK_Highlights_CloseGroupAsync(NVGSDK_HANDLE *handle, NVGSDK_HighlightCloseGroupParams const *params, NVGSDK_EmptyCallback callback, void *context)
char const * groupId
Unique ID of the group to open.
virtual void GetUserSettingsAsync(TGetUserSettingsCallback cb=nullptr, void *cbContext=nullptr) const
NVGSDK_EXPORT void NVGSDKApi NVGSDK_Highlights_SetVideoHighlightAsync(NVGSDK_HANDLE *handle, NVGSDK_VideoHighlightParams const *, NVGSDK_EmptyCallback callback, void *context)
virtual void ConfigureAsync(HighlightConfigParams const ¶ms, TCallback cb=nullptr, void *cbContext=nullptr)
C++ binding for NVGSDK_GetNumberOfHighlightsResponse.
int32_t startDelta
Milliseconds between the time of request, and the start of desired video clip.
size_t groupDescriptionTableSize
Number of entries in the groupDescriptionTable */.
NVGSDK_HighlightType tagsFilter
If not zero, represents a bitfield of tags to include.
NVGSDK_EXPORT void NVGSDKApi NVGSDK_Highlights_OpenSummaryAsync(NVGSDK_HANDLE *handle, NVGSDK_SummaryParams const *params, NVGSDK_EmptyCallback callback, void *context)
char const * groupId
Unique group ID that was used to Open a group previously.