@@ -12,7 +12,7 @@ class CMyPlugin : public TVTest::CTVTestPlugin
12
12
bool pluginState;
13
13
void discordInit ();
14
14
void UpdateState ();
15
- time_t SystemTime2Timet (const SYSTEMTIME& st );
15
+ time_t SystemTime2Timet (const SYSTEMTIME&);
16
16
bool GetPluginInfo (TVTest::PluginInfo *pInfo) override
17
17
{
18
18
pInfo->Type = TVTest::PLUGIN_TYPE_NORMAL;
@@ -56,25 +56,38 @@ void CMyPlugin::UpdateState()
56
56
Info.MaxEventText = sizeof (eventText) / sizeof (eventText[0 ]);
57
57
Info.pszEventExtText = eventExtText;
58
58
Info.MaxEventExtText = sizeof (eventExtText) / sizeof (eventExtText[0 ]);
59
- if (m_pApp->GetCurrentChannelInfo (&ChannelInfo) && m_pApp->GetCurrentProgramInfo (&Info)) {
60
- DiscordRichPresence discordPresence;
61
- memset (&discordPresence, 0 , sizeof (discordPresence));
62
- discordPresence.details = wide_to_utf8 (ChannelInfo.szChannelName ).c_str ();
63
- discordPresence.state = wide_to_utf8 (Info.pszEventName ).c_str ();
64
- discordPresence.startTimestamp = SystemTime2Timet (Info.StartTime );
65
- discordPresence.endTimestamp = SystemTime2Timet (Info.StartTime ) + Info.Duration ;
66
- discordPresence.largeImageKey = " tvtest" ;
67
- discordPresence.partyId = " " ;
68
- discordPresence.partySize = 0 ;
69
- discordPresence.partyMax = 0 ;
70
- discordPresence.matchSecret = " " ;
71
- discordPresence.joinSecret = " " ;
72
- discordPresence.spectateSecret = " " ;
73
- discordPresence.instance = 0 ;
74
- Discord_UpdatePresence (&discordPresence);
59
+ std::string channelName;
60
+ std::string eventNamed;
61
+ time_t start;
62
+ time_t end;
63
+
64
+ if (m_pApp->GetCurrentProgramInfo (&Info)) {
65
+ eventNamed = wide_to_utf8 (Info.pszEventName );
66
+ end = SystemTime2Timet (Info.StartTime ) + Info.Duration ;
67
+ start = SystemTime2Timet (Info.StartTime );
75
68
}
69
+ if (m_pApp->GetCurrentChannelInfo (&ChannelInfo) ) {
70
+ m_pApp->AddLog (ChannelInfo.szChannelName );
71
+ channelName = wide_to_utf8 (ChannelInfo.szChannelName );
72
+ }
73
+ DiscordRichPresence discordPresence;
74
+ memset (&discordPresence, 0 , sizeof (discordPresence));
75
+ discordPresence.details = channelName.c_str ();
76
+ discordPresence.state = eventNamed.c_str ();
77
+ discordPresence.startTimestamp = start;
78
+ discordPresence.endTimestamp = end;
79
+ discordPresence.largeImageKey = " tvtest" ;
80
+ discordPresence.partyId = " " ;
81
+ discordPresence.partySize = 0 ;
82
+ discordPresence.partyMax = 0 ;
83
+ discordPresence.matchSecret = " " ;
84
+ discordPresence.joinSecret = " " ;
85
+ discordPresence.spectateSecret = " " ;
86
+ discordPresence.instance = 0 ;
87
+ Discord_UpdatePresence (&discordPresence);
76
88
}
77
89
90
+
78
91
time_t CMyPlugin::SystemTime2Timet (const SYSTEMTIME& st)
79
92
{
80
93
struct tm gm = { st.wSecond , st.wMinute , st.wHour , st.wDay , st.wMonth - 1 , st.wYear - 1900 , st.wDayOfWeek , 0 , 0 };
@@ -104,6 +117,9 @@ LRESULT CALLBACK CMyPlugin::EventCallback(UINT Event, LPARAM lParam1, LPARAM lPa
104
117
case TVTest::EVENT_CHANNELCHANGE:
105
118
pThis->UpdateState ();
106
119
return TRUE ;
120
+ case TVTest::EVENT_SERVICECHANGE:
121
+ pThis->UpdateState ();
122
+ return TRUE ;
107
123
}
108
124
return 0 ;
109
125
}
0 commit comments