Mercurial > wgsdk
comparison src/main.c @ 10:42ac054c0231
*: huge refactoring
dirtools now uses wchar (wayyy overdue)
the timer doesn't have a stupid design anymore
we don't use windows.h at all now
...
| author | Paper <paper@paper.us.eu.org> |
|---|---|
| date | Sun, 11 Feb 2024 19:43:31 -0500 |
| parents | be4835547dd0 |
| children |
comparison
equal
deleted
inserted
replaced
| 9:07f0e2f43204 | 10:42ac054c0231 |
|---|---|
| 1 /** | 1 /** |
| 2 * wgsdk - Winamp plugin for Discord's GameSDK | 2 * wgsdk - Winamp plugin for Discord's GameSDK |
| 3 **/ | 3 **/ |
| 4 #include <assert.h> | |
| 5 #include <stdio.h> | |
| 6 #include <stdlib.h> | |
| 7 #include <Winamp/wa_ipc.h> | |
| 8 #include "discord_game_sdk.h" | |
| 9 #include "timer.h" | 4 #include "timer.h" |
| 10 #include "config.h" | 5 #include "config.h" |
| 11 #include "resource.h" | 6 #include "resource.h" |
| 12 #include "utils.h" | 7 #include "utils.h" |
| 13 #ifndef WIN32_LEAN_AND_MEAN | 8 |
| 14 # define WIN32_LEAN_AND_MEAN | 9 #include <Winamp/wa_ipc.h> |
| 15 #endif | 10 #include "discord_game_sdk.h" |
| 16 #include <windows.h> | 11 |
| 17 #include <windowsx.h> | 12 #include <assert.h> |
| 13 #include <stdio.h> | |
| 14 #include <stdlib.h> | |
| 18 | 15 |
| 19 #define CLIENT_ID 969367220599803955 | 16 #define CLIENT_ID 969367220599803955 |
| 20 #define DISCORD_REQUIRE(x) \ | 17 #define DISCORD_REQUIRE(x) \ |
| 21 assert(x == DiscordResult_Ok) | 18 assert((x) == DiscordResult_Ok) |
| 22 | 19 |
| 23 #define GPPHDR_VER 0x10 | 20 #define GPPHDR_VER 0x10 |
| 24 | 21 |
| 25 int init(); | 22 int init(); |
| 26 void conf(); | 23 void conf(); |
| 55 .instance = 0 | 52 .instance = 0 |
| 56 }; | 53 }; |
| 57 | 54 |
| 58 struct IDiscordActivityEvents activities_events; | 55 struct IDiscordActivityEvents activities_events; |
| 59 | 56 |
| 60 struct application { | 57 struct { |
| 61 struct IDiscordCore* core; | 58 struct IDiscordCore* core; |
| 62 struct IDiscordUsers* users; | 59 struct IDiscordUsers* users; |
| 63 struct IDiscordActivityManager* activities; | 60 struct IDiscordActivityManager* activities; |
| 64 } app; | 61 } app; |
| 65 | 62 |
| 66 /* Now we get to our built-in stuff */ | 63 /* Now we get to our built-in stuff */ |
| 67 | 64 |
| 68 struct timer timer_callbacks = { .interval = 16 }; | 65 struct timer timer_callbacks = {0}; |
| 69 | 66 |
| 70 struct config config = { | 67 struct config config = { |
| 71 .display_title = 1, | 68 .display_title = 1, |
| 72 .show_elapsed_time = 1 | 69 .show_elapsed_time = 1 |
| 73 }; | 70 }; |
| 114 report_idle_status(); | 111 report_idle_status(); |
| 115 break; | 112 break; |
| 116 case 1: | 113 case 1: |
| 117 case 3: | 114 case 3: |
| 118 report_current_song_status(is_playing); | 115 report_current_song_status(is_playing); |
| 116 break; | |
| 119 default: | 117 default: |
| 120 break; | 118 break; |
| 121 } | 119 } |
| 122 } | 120 } |
| 123 | 121 |
| 153 | 151 |
| 154 DISCORD_REQUIRE(DiscordCreate(DISCORD_VERSION, ¶ms, &app.core)); | 152 DISCORD_REQUIRE(DiscordCreate(DISCORD_VERSION, ¶ms, &app.core)); |
| 155 | 153 |
| 156 app.activities = app.core->get_activity_manager(app.core); | 154 app.activities = app.core->get_activity_manager(app.core); |
| 157 | 155 |
| 158 timer_init(&timer_callbacks, g_plugin.hwndParent, TimerProc); | 156 timer_init(&timer_callbacks, 16, TimerProc); |
| 159 timer_set(&timer_callbacks, g_plugin.hwndParent); | 157 timer_set(&timer_callbacks); |
| 160 | 158 |
| 161 cfg_load(&config); | 159 cfg_load(&config); |
| 162 | 160 |
| 163 strcpy(activity.assets.large_image, "winamp-logo"); | 161 strcpy(activity.assets.large_image, "winamp-logo"); |
| 164 | 162 |
