/*** Condition variables ***/
enum
{
- CLOCK_STATIC=0, /* must be zero for VLC_STATIC_COND */
- CLOCK_MONOTONIC,
- CLOCK_REALTIME,
+ VLC_CLOCK_STATIC=0, /* must be zero for VLC_STATIC_COND */
+ VLC_CLOCK_MONOTONIC,
+ VLC_CLOCK_REALTIME,
};
static void vlc_cond_init_common (vlc_cond_t *p_condvar, unsigned clock)
void vlc_cond_init (vlc_cond_t *p_condvar)
{
- vlc_cond_init_common (p_condvar, CLOCK_MONOTONIC);
+ vlc_cond_init_common (p_condvar, VLC_CLOCK_MONOTONIC);
}
void vlc_cond_init_daytime (vlc_cond_t *p_condvar)
{
- vlc_cond_init_common (p_condvar, CLOCK_REALTIME);
+ vlc_cond_init_common (p_condvar, VLC_CLOCK_REALTIME);
}
void vlc_cond_destroy (vlc_cond_t *p_condvar)
mtime_t total;
switch (p_condvar->clock)
{
- case CLOCK_MONOTONIC:
+ case VLC_CLOCK_MONOTONIC:
total = mdate();
break;
- case CLOCK_REALTIME: /* FIXME? sub-second precision */
+ case VLC_CLOCK_REALTIME: /* FIXME? sub-second precision */
total = CLOCK_FREQ * time (NULL);
break;
default:
static_assert ((CLOCK_FREQ % 1000) == 0, "Broken frequencies ratio");
return ts * (CLOCK_FREQ / 1000);
}
+#if !VLC_WINSTORE_APP
#include <mmsystem.h>
static mtime_t mdate_multimedia (void)
{
static_assert ((CLOCK_FREQ % 1000) == 0, "Broken frequencies ratio");
return ts * (CLOCK_FREQ / 1000);
}
+#endif
static mtime_t mdate_perf (void)
{
FILETIME ts;
ULARGE_INTEGER s;
-#if (_WIN32_WINNT >= 0x0602)
+#if (_WIN32_WINNT >= 0x0602) && !VLC_WINSTORE_APP
GetSystemTimePreciseAsFileTime (&ts);
#else
GetSystemTimeAsFileTime (&ts);
return;
}
+#if VLC_WINSTORE_APP
+ const char *name = "perf";
+#else
const char *name = "multimedia";
+#endif
char *str = var_InheritString (obj, "clock-source");
if (str != NULL)
name = str;
if (!strcmp (name, "tick"))
{
msg_Dbg (obj, "using Windows time as clock source");
-#if (_WIN32_WINNT < 0x0601)
+#if (_WIN32_WINNT < 0x0600)
HANDLE h = GetModuleHandle (_T("kernel32.dll"));
if (unlikely(h == NULL))
abort ();
#endif
mdate_selected = mdate_tick;
}
+#if !VLC_WINSTORE_APP
else
if (!strcmp (name, "multimedia"))
{
caps.wPeriodMin, caps.wPeriodMax);
mdate_selected = mdate_multimedia;
}
+#endif
else
if (!strcmp (name, "perf"))
{
names[n] = xstrdup ("Windows time");
n++;
}
+#if !VLC_WINSTORE_APP
values[n] = xstrdup ("multimedia");
names[n] = xstrdup ("Multimedia timers");
n++;
+#endif
values[n] = xstrdup ("perf");
names[n] = xstrdup ("Performance counters");
n++;
SelectClockSource (VLC_OBJECT(p_libvlc));
}
-extern vlc_rwlock_t config_lock, msg_lock;
+extern vlc_rwlock_t config_lock;
BOOL WINAPI DllMain (HINSTANCE, DWORD, LPVOID);
BOOL WINAPI DllMain (HINSTANCE hinstDll, DWORD fdwReason, LPVOID lpvReserved)
vlc_cond_init (&super_variable);
vlc_threadvar_create (&thread_key, NULL);
vlc_rwlock_init (&config_lock);
- vlc_rwlock_init (&msg_lock);
vlc_CPU_init ();
break;
case DLL_PROCESS_DETACH:
- vlc_rwlock_destroy (&msg_lock);
vlc_rwlock_destroy (&config_lock);
vlc_threadvar_delete (&thread_key);
vlc_cond_destroy (&super_variable);