aboutsummaryrefslogtreecommitdiff
path: root/Src/Plugins/Library/ml_wire/Cloud.h
diff options
context:
space:
mode:
authorJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
committerJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
commit20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch)
tree12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Plugins/Library/ml_wire/Cloud.h
parent537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff)
downloadwinamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz
Initial community commit
Diffstat (limited to 'Src/Plugins/Library/ml_wire/Cloud.h')
-rw-r--r--Src/Plugins/Library/ml_wire/Cloud.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/Src/Plugins/Library/ml_wire/Cloud.h b/Src/Plugins/Library/ml_wire/Cloud.h
new file mode 100644
index 00000000..505d936e
--- /dev/null
+++ b/Src/Plugins/Library/ml_wire/Cloud.h
@@ -0,0 +1,35 @@
+#ifndef NULLSOFT_CLOUDH
+#define NULLSOFT_CLOUDH
+
+#include <windows.h>
+
+#include "Feeds.h"
+#include "../nu/threadpool/api_threadpool.h"
+#include "../nu/threadpool/timerhandle.hpp"
+#include "../nu/AutoLock.h"
+
+class Cloud
+{
+public:
+ Cloud();
+ ~Cloud();
+ void Init();
+ void Quit();
+ void Refresh( Channel &channel );
+ void GetStatus( wchar_t *status, size_t len );
+ void RefreshAll();
+ void Pulse() { SetEvent( cloudEvent ); }
+
+private:
+ static DWORD WINAPI CloudThread( void *param );
+ void SetStatus( const wchar_t *newStatus );
+ void Callback();
+ ThreadID *cloudThread;
+ wchar_t *statusText;
+ Nullsoft::Utility::LockGuard statusGuard;
+ HANDLE cloudEvent, cloudDone;
+ TimerHandle cloudTimerEvent;
+ static int CloudThreadPoolFunc( HANDLE handle, void *user_data, intptr_t param );
+};
+
+#endif