if !HAVE_WIN32
-if !HAVE_WINCE
bin_PROGRAMS += vlc-wrapper
vlc_SOURCES = vlc.c override.c
endif
-endif
EXTRA_vlc_SOURCES = vlc.c winvlc.c
if HAVE_WIN32
vlc_SOURCES = winvlc.c
noinst_DATA += vlc_win32_rc.rc
endif
-if HAVE_WINCE
-vlc_SOURCES = winvlc.c
-endif
vlc_wrapper_SOURCES = rootwrap.c
vlc_wrapper_LDADD = $(SOCKET_LIBS)
#include <windows.h>
#include <shellapi.h>
-#if !defined(UNDER_CE)
-# ifndef _WIN32_IE
-# define _WIN32_IE 0x501
-# endif
-# include <fcntl.h>
-# include <io.h>
-# include <shlobj.h>
-# include <wininet.h>
-# define PSAPI_VERSION 1
-# include <psapi.h>
-# define HeapEnableTerminationOnCorruption (HEAP_INFORMATION_CLASS)1
+#ifndef _WIN32_IE
+# define _WIN32_IE 0x501
+#endif
+#include <fcntl.h>
+#include <io.h>
+#include <shlobj.h>
+#include <wininet.h>
+#define PSAPI_VERSION 1
+#include <psapi.h>
+#define HeapEnableTerminationOnCorruption (HEAP_INFORMATION_CLASS)1
static void check_crashdump(void);
LONG WINAPI vlc_exception_filter(struct _EXCEPTION_POINTERS *lpExceptionInfo);
static const wchar_t *crashdump_path;
-#endif
-#ifndef UNDER_CE
static char *FromWide (const wchar_t *wide)
{
size_t len;
WideCharToMultiByte (CP_UTF8, 0, wide, -1, out, len, NULL, NULL);
return out;
}
-#else
-static int parse_cmdline (char *line, char ***argvp)
-{
- char **argv = malloc (sizeof (char *));
- int argc = 0;
-
- while (*line != '\0')
- {
- char quote = 0;
-
- /* Skips white spaces */
- while (strchr ("\t ", *line))
- line++;
- if (!*line)
- break;
-
- /* Starts a new parameter */
- argv = realloc (argv, (argc + 2) * sizeof (char *));
- if (*line == '"')
- {
- quote = '"';
- line++;
- }
- argv[argc++] = line;
-
- more:
- while (*line && !strchr ("\t ", *line))
- line++;
-
- if (line > argv[argc - 1] && line[-1] == quote)
- /* End of quoted parameter */
- line[-1] = 0;
- else
- if (*line && quote)
- {
- /* Space within a quote */
- line++;
- goto more;
- }
- else
- /* End of unquoted parameter */
- if (*line)
- *line++ = 0;
- }
- argv[argc] = NULL;
- *argvp = argv;
- return argc;
-}
-#endif
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
-#ifndef UNDER_CE
LPSTR lpCmdLine,
-#else
- LPWSTR lpCmdLine,
-#endif
int nCmdShow )
{
int argc;
-#ifndef UNDER_CE
/* VLC does not change the thread locale, so gettext/libintil will use the
* user default locale as reference. */
/* gettext versions 0.18-0.18.1 will use the Windows Vista locale name
_setmode( STDIN_FILENO, _O_BINARY ); /* Needed for pipes */
-#else /* UNDER_CE */
- char **argv, psz_cmdline[wcslen(lpCmdLine) * 4];
-
- WideCharToMultiByte( CP_UTF8, 0, lpCmdLine, -1,
- psz_cmdline, sizeof (psz_cmdline), NULL, NULL );
-
- argc = parse_cmdline (psz_cmdline, &argv);
-#endif
-
/* Initialize libvlc */
libvlc_instance_t *vlc;
vlc = libvlc_new (argc, (const char **)argv);
return 0;
}
-#if !defined( UNDER_CE )
/* Crashdumps handling */
static void check_crashdump(void)
{
exit( 1 );
}
}
-#endif
int fsync (int fd)
{
-#if defined(WIN32) && !defined(UNDER_CE)
+#if defined(WIN32)
/* WinCE can use FlushFileBuffers() but it operates on file handles */
return _commit (fd);
#else
AC_DEFINE([_WIN32_IE], 0x0600, [Define to '0x0600' for IE 6.0 (and shell) APIs.])
case "${host_os}" in
- *wince* | *mingwce* | *mingw32ce*)
- SYS=mingwce
- dnl Sadly CeGCC still needs non-wince macros
- ;;
*mingw32*)
SYS=mingw32
;;
AC_SUBST(PROGRAMFILES)
fi
- if test "${SYS}" = "mingwce"; then
- VLC_ADD_LIBS([libvlccore],[-lmmtimer])
- AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
- ac_default_prefix="`pwd`/_wince"
- DESTDIR="`pwd`/_wince/"
- fi
;;
*nto*)
SYS=nto
AM_CONDITIONAL(HAVE_OS2, test "${SYS}" = "os2")
AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
AM_CONDITIONAL(HAVE_WIN64, test "${HAVE_WIN64}" = "1")
-AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
AM_CONDITIONAL(HAVE_SYMBIAN, test "${SYS}" = "symbian")
dnl
AM_ICONV
dnl Check for broken versions of mingw-runtime compatability library
-AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
+AS_IF([test "${SYS}" = "mingw32"], [
AC_MSG_CHECKING(for broken mingw-runtime)
AC_PREPROC_IFELSE([AC_LANG_SOURCE([
#include <_mingw.h>
AS_IF([test "${SYS}" = "mingw32"], [
SOCKET_LIBS="-lws2_32"
])
- AS_IF([test "${SYS}" = "mingwce"], [
- SOCKET_LIBS="-lws2"
- ])
])
AC_SEARCH_LIBS([getaddrinfo], [nsl], [
AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
[AC_TRY_COMPILE(
[#include <sys/types.h>
- #if defined( UNDER_CE )
- # include <winsock2.h>
- #elif defined( WIN32 )
+ #if defined( WIN32 )
# include <winsock2.h>
#else
# include <sys/socket.h>
VLC_RESTORE_FLAGS
# Windows
-AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
+AS_IF([test "${SYS}" = "mingw32"], [
LIBDL=""
have_dynamic_objects="yes" #assume we can use shared objects
])
VLC_ADD_LIBS([lua],[$LIBDL])
dnl Check for thread library
-if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
+if test "${SYS}" != "mingw32"; then
VLC_SAVE_FLAGS
LIBS=""
dnl HP/UX port
AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
])
-fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
+fi # end "${SYS}" != "mingw32"
dnl Check for headers
AC_CHECK_HEADERS([search.h])
#include <sys/param.h>
])
-if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
+if test "${SYS}" != "mingw32"; then
AC_CHECK_HEADERS(machine/param.h sys/shm.h)
AC_CHECK_HEADERS([linux/version.h linux/dccp.h scsi/scsi.h linux/magic.h])
AC_CHECK_HEADERS(syslog.h mntent.h)
-fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
+fi # end "${SYS}" != "mingw32"
dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
])
dnl Check for threads library
-if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
+if test "${SYS}" != "mingw32"; then
AC_CHECK_HEADERS(pthread.h)
-fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
+fi # end "${SYS}" != "mingw32"
dnl It seems that autoconf detects pkg-config only during the first
dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
dnl On some OS we need static linking
AS_IF([test -n "${PKG_CONFIG}" ],[
- AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
+ AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
PKG_CONFIG="${PKG_CONFIG} --static"
])
])
[compile D-Bus message bus support (default enabled)])])
case "${SYS}" in
linux*|*bsd*)
-if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
+if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32"
then
dnl api stable dbus
PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.0.0],
LDFLAGS="-lgcov ${LDFLAGS}"
])
-AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
+AS_IF([test "${SYS}" != "mingw32"], [
VLC_SAVE_FLAGS
CFLAGS="${CFLAGS} -fvisibility=hidden"
CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
dnl
if test "${SYS}" = "os2"; then
VLC_ADD_PLUGIN([dynamicoverlay])
-elif test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
+elif test "${SYS}" != "mingw32"; then
VLC_ADD_PLUGIN([dynamicoverlay access_shm])
-elif test "${SYS}" != "mingwce"; then
- VLC_ADD_PLUGIN([access_smb dmo globalhotkeys])
- VLC_ADD_LIBS([dmo],[-lole32 -luuid])
-fi
-if test "${SYS}" = "darwin"; then
+elif test "${SYS}" = "darwin"; then
VLC_ADD_LIBS([quartztext],[-Wl,-framework,ApplicationServices])
fi
AS_IF([test "${SYS}" = "mingw32"], [
# add ws2_32 for closesocket, select, recv
other_libs="$other_libs -lws2_32"
- ], [test "${SYS}" = "mingwce"], [
- # add ws2 for closesocket, select, recv
- other_libs="$other_libs -lws2"
])
dnl We need to check for pic because live555 don't provide shared libs
dnl
AC_ARG_ENABLE(xcb,
[ --enable-xcb X11 support with XCB (default enabled)],, [
- AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin" -a "${SYS}" != "symbian"], [
+ AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" -a "${SYS}" != "symbian"], [
enable_xcb="yes"
], [
enable_xcb="no"
dnl Windows DirectX module
dnl
-if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"
+if test "${SYS}" = "mingw32"
then
VLC_ADD_PLUGIN([panoramix])
fi
AC_ARG_ENABLE(directx,
[AS_HELP_STRING([--enable-directx],
[Microsoft DirectX support (default enabled on Windows)])],, [
- AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
+ AS_IF([test "${SYS}" = "mingw32"], [
enable_directx="yes"
], [
enable_directx="no"
dnl
AC_ARG_ENABLE(direct2d,
[ --enable-direct2d Win7/VistaPU Direct2D support (default auto on Win32)],, [
- AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
+ AS_IF([test "${SYS}" != "mingw32"], [
enable_direct2d="no"
])
])
VLC_ADD_PLUGIN([wingdi])
VLC_ADD_LIBS([wingdi],[-lgdi32 -lole32 -luuid])
fi
- if test "${SYS}" = "mingwce"; then
- VLC_ADD_PLUGIN([wingdi wingapi])
- VLC_ADD_LIBS([wingdi],[-laygshell])
- VLC_ADD_LIBS([wingapi],[-laygshell])
- fi
fi
AC_ARG_ENABLE(oss,
[AS_HELP_STRING([--enable-oss],
[support the Open Sound System OSS (default enabled on FreeBSD/NetBSD/DragonFlyBSD)])],, [
- AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "mingwce" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
+ AS_IF([test "$SYS" = "mingw32" -o "$SYS" = "linux" -o "$SYS" = "openbsd"], [
enable_oss="no"
])
])
VLC_ADD_PLUGIN([waveout])
VLC_ADD_LIBS([waveout],[-lwinmm])
fi
- if test "${SYS}" = "mingwce"; then
- VLC_ADD_PLUGIN([waveout])
- fi
fi
dnl
VLC_RESTORE_FLAGS
AC_LANG_POP([C++])
- AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
+ AS_IF([test "${SYS}" = "mingw32"], [
VLC_ADD_LIBS([qt4],[-lole32])
])
AS_IF([test "${SYS}" = "darwin" ],[
AS_HELP_STRING([--with-kde-solid=PATH],
[KDE Solid actions directory (auto)]),, [
-if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "darwin" ; then
+if test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" ; then
with_kde_solid="yes"
fi
])
7Z_OPTS=-t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on
-if HAVE_WINCE
-build-npapi:
- touch $@
-else
if HAVE_WIN32
include extras/package/npapi.am
endif
-endif
if HAVE_WIN64
WINVERSION=vlc-$(VERSION)-win64
done
endif
-if !HAVE_WINCE
cp "$(top_builddir)/npapi-vlc/activex/axvlc.dll.manifest" "$(win32_destdir)/"
cp "$(top_builddir)/npapi-vlc/installed/lib/axvlc.dll" "$(win32_destdir)/"
cp "$(top_builddir)/npapi-vlc/npapi/npvlc.dll.manifest" "$(win32_destdir)/"
cp "$(top_builddir)/npapi-vlc/installed/lib/npvlc.dll" "$(win32_destdir)/"
-endif
# Compiler shared DLLs, when using compilers built with --enable-shared
# If gcc_s_sjlj/stdc++-6 DLLs exist, our C++ modules were linked to them
cp -r $(prefix)/include "$(win32_destdir)/sdk"
cp -r $(prefix)/lib/pkgconfig "$(win32_destdir)/sdk/lib"
cd $(prefix)/lib && cp -rv libvlc.dll.a libvlc.la libvlccore.dll.a libvlccore.la "$(win32_destdir)/sdk/lib/"
-if !HAVE_WINCE
$(DLLTOOL) -D libvlc.dll -l "$(win32_destdir)/sdk/lib/libvlc.lib" -d "$(top_builddir)/lib/.libs/libvlc.dll.def" "$(prefix)/bin/libvlc.dll"
$(DLLTOOL) -D libvlccore.dll -l "$(win32_destdir)/sdk/lib/libvlccore.lib" -d "$(top_builddir)/src/.libs/libvlccore.dll.def" "$(prefix)/bin/libvlccore.dll"
mkdir -p "$(win32_destdir)/sdk/activex/"
cd $(top_builddir)/npapi-vlc && cp activex/README.TXT share/test.html $(win32_destdir)/sdk/activex/
-endif
# Convert to DOS line endings
find $(win32_destdir) -type f \( -name "*xml" -or -name "*html" -or -name '*js' -or -name '*css' -or -name '*hosts' -or -iname '*txt' -or -name '*.cfg' -or -name '*.lua' \) -exec $(U2D) {} \;
/**
* Simple dynamic array handling. Array is realloced at each insert/removal
*/
-#if defined( _MSC_VER ) && _MSC_VER < 1300 && !defined( UNDER_CE )
+#if defined( _MSC_VER ) && _MSC_VER < 1300
# define VLCCVP (void**) /* Work-around for broken compiler */
#else
# define VLCCVP
# define rewinddir vlc_rewinddir
# include <sys/stat.h>
-# ifndef UNDER_CE
-# ifndef stat
-# define stat _stati64
-# endif
-# ifndef fstat
-# define fstat _fstati64
-# endif
-# define lseek _lseeki64
+# ifndef stat
+# define stat _stati64
# endif
+# ifndef fstat
+# define fstat _fstati64
+# endif
+#define lseek _lseeki64
#endif
#ifdef __ANDROID__
/*@}*/
-#if defined( WIN32 ) && !defined( UNDER_CE )
+#if defined( WIN32 )
# define CONSOLE_INTRO_MSG \
if( !getenv( "PWD" ) ) /* detect Cygwin shell or Wine */ \
{ \
*/
#if defined( WIN32 )
-# if !defined(UNDER_CE)
-# define _NO_OLDNAMES 1
-# include <io.h>
-# endif
+# define _NO_OLDNAMES 1
+# include <io.h>
# include <winsock2.h>
# include <ws2tcpip.h>
# define net_errno (WSAGetLastError())
*
*/
-#if defined( UNDER_CE )
-#elif defined( WIN32 )
+#if defined( WIN32 )
# include <process.h> /* Win32 API */
#elif defined( __OS2__ ) /* OS/2 API */
pthread_spin_destroy (spin);
}
-#elif defined (WIN32) && !defined (UNDER_CE)
+#elif defined (WIN32)
typedef CRITICAL_SECTION vlc_spinlock_t;
#ifdef HAVE_UNISTD_H
# include <unistd.h>
# include <fcntl.h>
-#elif defined( WIN32 ) && !defined( UNDER_CE )
+#elif defined( WIN32 )
# include <io.h>
#endif
#include <sys/types.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
-#elif defined( WIN32 ) && !defined( UNDER_CE )
+#elif defined( WIN32 )
# include <io.h>
#endif
#else /* WIN32 || __OS2__ */
static bool IsRemote (const char *path)
{
-# if !defined(UNDER_CE) && !defined(__OS2__)
+# if !defined(__OS2__)
wchar_t *wpath = ToWide (path);
bool is_remote = (wpath != NULL && PathIsNetworkPathW (wpath));
free (wpath);
static int NetFillBuffer( access_t *p_access )
{
-#ifdef UNDER_CE
- return -1;
-
-#else
access_sys_t *p_sys = p_access->p_sys;
int i_ret;
struct pollfd ufd[2];
if( i_udp_read > 0 ) p_sys->i_buffer_udp += i_udp_read;
return i_tcp_read + i_udp_read;
-#endif
}
static int mms_ParseCommand( access_t *p_access,
#include <fcntl.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
-#elif defined( WIN32 ) && !defined( UNDER_CE )
+#elif defined( WIN32 )
# include <io.h>
#endif
return VLC_EGENERIC;
}
}
-#ifndef UNDER_CE
else
if( !strcmp( p_access->psz_path, "-" ) )
{
}
msg_Dbg( p_access, "using stdout" );
}
-#endif
else
{
char *psz_tmp = str_format_time( p_access->psz_path );
aout_PacketInit( p_aout, &p_aout->sys->packet, FRAME_SIZE );
-#ifndef UNDER_CE
/* Check for hardware volume support */
if( waveOutGetDevCaps( (UINT_PTR)p_aout->sys->h_waveout,
&wocaps, sizeof(wocaps) ) == MMSYSERR_NOERROR
p_aout->sys->mute = false;
}
else
-#endif
aout_SoftVolumeInit( p_aout );
}
return NULL;
}
-#ifndef UNDER_CE
static int VolumeSet( audio_output_t *aout, float volume )
{
aout_sys_t *sys = aout->sys;
waveOutSetVolume( hwo, vol | (vol << 16) );
return 0;
}
-#endif
/*
reload the configuration drop down list, of the Audio Devices
} WAVEFORMATEXTENSIBLE, *PWAVEFORMATEXTENSIBLE;
#endif
-#ifndef UNDER_CE
-# include <dsound.h>
-#endif
+#include <dsound.h>
#ifndef SPEAKER_FRONT_LEFT
# define SPEAKER_FRONT_LEFT 0x1
set_description( N_("MPEG audio layer I/II/III decoder") )
set_category( CAT_INPUT )
set_subcategory( SUBCAT_INPUT_ACODEC )
-#if defined(UNDER_CE)
- set_capability( "decoder", 5 )
-#else
set_capability( "decoder", 100 )
-#endif
set_callbacks( OpenDecoder, CloseDecoder )
add_submodule ()
libdummy_plugin.la \
libgestures_plugin.la \
libnetsync_plugin.la \
- libhotkeys_plugin.la
-if !HAVE_WINCE
-libvlc_LTLIBRARIES += \
+ libhotkeys_plugin.la \
liboldrc_plugin.la
if !HAVE_WIN32
libvlc_LTLIBRARIES += \
else
libvlc_LTLIBRARIES += \
libntservice_plugin.la
-endif
endif
#include <vlc_common.h>
#include <vlc_fs.h>
-#if defined( WIN32 ) && !defined( UNDER_CE )
+#if defined( WIN32 )
# include <mmsystem.h>
#elif defined(__linux__)
# include <sys/types.h>
#include "../commands/cmd_dialogs.hpp"
#ifdef HAVE_UNISTD_H
# include <unistd.h>
-#elif defined( WIN32 ) && !defined( UNDER_CE )
+#elif defined( WIN32 )
# include <direct.h>
#endif
if HAVE_WIN32
SOURCES_lua += libs/win.c
-else
-if HAVE_WINCE
-SOURCES_lua += libs/win.c
-endif
endif
libvlc_LTLIBRARIES += liblua_plugin.la
endif
if !HAVE_WIN32
-if !HAVE_WINCE
libvlc_LTLIBRARIES += libdecomp_plugin.la
endif
-endif
/* RTP/RTCP mux: duplicate the socket */
#ifndef WIN32
fd = vlc_dup (rtp_fd);
-#elif defined(UNDER_CE)
- #warning Muxed RTP/RTCP unimplemented!
- fd = -1;
#else
WSAPROTOCOL_INFO info;
WSADuplicateSocket (rtp_fd, GetCurrentProcessId (), &info);
static int dup_socket(int oldfd)
{
int newfd;
-#if !defined(WIN32) || defined(UNDER_CE)
+#ifndef WIN32
newfd = vlc_dup(oldfd);
#else
WSAPROTOCOL_INFO info;
SOURCES_win32text = win32text.c
libvlc_LTLIBRARIES += libtdummy_plugin.la
-if HAVE_WINCE
-libvlc_LTLIBRARIES += libwin32text_plugin.la
-endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
-#elif defined( WIN32 ) && !defined( UNDER_CE )
+#elif defined( WIN32 )
# include <io.h>
#endif
# endif
#endif
-#if defined(WIN32) && !defined(UNDER_CE)
+#if defined(WIN32)
CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
SMALL_RECT rect;
COORD coord;
free(sys);
}
-#if defined(WIN32) && !defined(UNDER_CE)
+#if defined(WIN32)
FreeConsole();
#endif
return VLC_EGENERIC;
caca_free_display(sys->dp);
cucul_free_canvas(sys->cv);
-#if defined(WIN32) && !defined(UNDER_CE)
+#if defined(WIN32)
FreeConsole();
#endif
#include "common.h"
-#ifndef UNDER_CE
#include <vlc_windows_interfaces.h>
-#endif
-
-#ifdef UNDER_CE
-#include <aygshell.h>
- //WINSHELLAPI BOOL WINAPI SHFullScreen(HWND hwndRequester, DWORD dwState);
-#endif
static void CommonChangeThumbnailClip(vout_display_t *, bool show);
static int CommonControlSetFullscreen(vout_display_t *, bool is_fullscreen);
-#if !defined(UNDER_CE)
static void DisableScreensaver(vout_display_t *);
static void RestoreScreensaver(vout_display_t *);
-#endif
/* */
int CommonInit(vout_display_t *vd)
}
/* Why not with glwin32 */
-#if !defined(UNDER_CE)
var_Create(vd, "disable-screensaver", VLC_VAR_BOOL | VLC_VAR_DOINHERIT);
DisableScreensaver (vd);
-#endif
return VLC_SUCCESS;
}
EventThreadDestroy(sys->event);
}
-#if !defined(UNDER_CE)
RestoreScreensaver(vd);
-#endif
}
void CommonManage(vout_display_t *vd)
/* */
static void CommonChangeThumbnailClip(vout_display_t *vd, bool show)
{
-#ifndef UNDER_CE
vout_display_sys_t *sys = vd->sys;
/* Windows 7 taskbar thumbnail code */
taskbl->lpVtbl->Release(taskbl);
}
CoUninitialize();
-#endif
}
/*****************************************************************************
SetWindowLong(hwnd, GWL_STYLE, WS_CLIPCHILDREN | WS_VISIBLE);
if (sys->hparent) {
-#ifdef UNDER_CE
- POINT point = {0,0};
- RECT rect;
- ClientToScreen(sys->hwnd, &point);
- GetClientRect(sys->hwnd, &rect);
- SetWindowPos(hwnd, 0, point.x, point.y,
- rect.right, rect.bottom,
- SWP_NOZORDER|SWP_FRAMECHANGED);
-#else
/* Retrieve current window position so fullscreen will happen
*on the right screen */
HMONITOR hmon = MonitorFromWindow(sys->hparent,
mi.rcMonitor.right - mi.rcMonitor.left,
mi.rcMonitor.bottom - mi.rcMonitor.top,
SWP_NOZORDER|SWP_FRAMECHANGED);
-#endif
} else {
/* Maximize non embedded window */
ShowWindow(hwnd, SW_SHOWMAXIMIZED);
rect.right, rect.bottom,
SWP_NOZORDER|SWP_FRAMECHANGED);
-#ifdef UNDER_CE
- HWND topLevelParent = GetParent(sys->hparent);
-#else
HWND topLevelParent = GetAncestor(sys->hparent, GA_ROOT);
-#endif
ShowWindow(topLevelParent, SW_HIDE);
}
SetForegroundWindow(hwnd);
rect.right, rect.bottom,
SWP_NOZORDER|SWP_FRAMECHANGED);
-#ifdef UNDER_CE
- HWND topLevelParent = GetParent(sys->hparent);
-#else
HWND topLevelParent = GetAncestor(sys->hparent, GA_ROOT);
-#endif
ShowWindow(topLevelParent, SW_SHOW);
SetForegroundWindow(sys->hparent);
ShowWindow(hwnd, SW_HIDE);
}
}
-#if !defined(UNDER_CE)
static void DisableScreensaver(vout_display_t *vd)
{
vout_display_sys_t *sys = vd->sys;
sys->i_spi_screensaveactive, NULL, 0);
}
}
-#endif
-
bool is_first_display;
bool is_on_top;
-#ifndef UNDER_CE
-
/* screensaver system settings to be restored when vout is closed */
UINT i_spi_screensaveactive;
-#endif
-
/* Coordinates of src and dest images (used when blitting to display) */
RECT rect_src;
RECT rect_src_clipped;
#define DX_POSITION_CHANGE 0x1000
#define DX_WALLPAPER_CHANGE 0x2000
#define DX_DESKTOP_CHANGE 0x4000
-
-/*****************************************************************************
- * WinCE helpers
- *****************************************************************************/
-#ifdef UNDER_CE
-
-#define AdjustWindowRect(a,b,c) AdjustWindowRectEx(a,b,c,0)
-
-#ifndef GCL_HBRBACKGROUND
-# define GCL_HBRBACKGROUND (-10)
-#endif
-
-//#define FindWindowEx(a,b,c,d) 0
-
-#define GetWindowPlacement(a,b)
-#define SetWindowPlacement(a,b)
-/*typedef struct _WINDOWPLACEMENT {
- UINT length;
- UINT flags;
- UINT showCmd;
- POINT ptMinPosition;
- POINT ptMaxPosition;
- RECT rcNormalPosition;
-} WINDOWPLACEMENT;*/
-
-#ifndef WM_NCMOUSEMOVE
-# define WM_NCMOUSEMOVE 160
-#endif
-#ifndef CS_OWNDC
-# define CS_OWNDC 32
-#endif
-#ifndef SC_SCREENSAVE
-# define SC_SCREENSAVE 0xF140
-#endif
-#ifndef SC_MONITORPOWER
-# define SC_MONITORPOWER 0xF170
-#endif
-#ifndef WM_NCPAINT
-# define WM_NCPAINT 133
-#endif
-#ifndef WS_OVERLAPPEDWINDOW
-# define WS_OVERLAPPEDWINDOW 0xcf0000
-#endif
-#ifndef WS_EX_NOPARENTNOTIFY
-# define WS_EX_NOPARENTNOTIFY 4
-#endif
-#ifndef WS_EX_APPWINDOW
-#define WS_EX_APPWINDOW 0x40000
-#endif
-
-//#define SetWindowLongPtr SetWindowLong
-//#define GetWindowLongPtr GetWindowLong
-//#define GWLP_USERDATA GWL_USERDATA
-
-#endif //UNDER_CE
#include <vlc_keys.h>
#include "common.h"
-#ifdef UNDER_CE
-#include <aygshell.h>
- //WINSHELLAPI BOOL WINAPI SHFullScreen(HWND hwndRequester, DWORD dwState);
-
-UINT GetMenuState(HMENU hMenu, UINT id, UINT flags)
-{
- MENUITEMINFO info;
- memset(&info, 0, sizeof(info));
- info.cbSize = sizeof(info);
- info.fMask = MIIM_STATE;
- if (!GetMenuItemInfo(hMenu, id, (flags & MF_BYPOSITION) != 0, &info))
- return -1;
- /* XXX Submenu handling is missing... */
- return info.fState;
-}
-#endif
-
-/*#if defined(UNDER_CE) && !defined(__PLUGIN__) --FIXME*/
-/*# define SHFS_SHOWSIPBUTTON 0x0004
-# define SHFS_HIDESIPBUTTON 0x0008
-# define MENU_HEIGHT 26
- BOOL SHFullScreen(HWND hwndRequester, DWORD dwState);
-#endif*/
-
/*****************************************************************************
* Local prototypes.
*****************************************************************************/
}
}
-#ifndef UNDER_CE
static HCURSOR EmptyCursor( HINSTANCE instance )
{
const int cw = GetSystemMetrics(SM_CXCURSOR);
return cursor;
}
-#endif
static void MousePressed( event_thread_t *p_event, HWND hwnd, unsigned button )
{
return NULL;
}
-#ifndef UNDER_CE
/* Prevent monitor from powering off */
SetThreadExecutionState( ES_DISPLAY_REQUIRED | ES_SYSTEM_REQUIRED | ES_CONTINUOUS );
-#endif
/* Main loop */
/* GetMessage will sleep if there's no message in the queue */
}
#endif
p_event->cursor_arrow = LoadCursor(NULL, IDC_ARROW);
-#ifndef UNDER_CE
p_event->cursor_empty = EmptyCursor(hInstance);
-#endif
/* Get the Icon from the main app */
p_event->vlc_icon = NULL;
-#ifndef UNDER_CE
if( GetModuleFileName( NULL, vlc_path, MAX_PATH ) )
{
p_event->vlc_icon = ExtractIcon( hInstance, vlc_path, 0 );
}
-#endif
/* Fill in the window class structure */
wc.style = CS_OWNDC|CS_DBLCLKS; /* style: dbl click */
if( p_event->vlc_icon )
DestroyIcon( p_event->vlc_icon );
-#ifndef UNDER_CE
DestroyCursor( p_event->cursor_empty );
-#endif
}
/*****************************************************************************
}
vout_display_t *vd = p_event->vd;
-#ifndef UNDER_CE
/* Catch the screensaver and the monitor turn-off */
if( message == WM_SYSCOMMAND &&
( (wParam & 0xFFF0) == SC_SCREENSAVE || (wParam & 0xFFF0) == SC_MONITORPOWER ) )
//if( vd ) msg_Dbg( vd, "WinProc WM_SYSCOMMAND screensaver" );
return 0; /* this stops them from happening */
}
-#endif
#if 0
if( message == WM_SETCURSOR )
{
case WM_KILLFOCUS:
#ifdef MODULE_NAME_IS_wingapi
GXSuspend();
-#endif
-#ifdef UNDER_CE
- if( hwnd == p_event->hfswnd )
- {
- HWND htbar = FindWindow( _T("HHTaskbar"), NULL );
- ShowWindow( htbar, SW_SHOW );
- }
-
- if( !p_event->hparent ||
- hwnd == p_event->hfswnd )
- {
- SHFullScreen( hwnd, SHFS_SHOWSIPBUTTON );
- }
#endif
return 0;
case WM_SETFOCUS:
#ifdef MODULE_NAME_IS_wingapi
GXResume();
-#endif
-#ifdef UNDER_CE
- /* FIXME vd->cfg is not lock[ed/able] */
-#warning "FIXME: race condition"
- if( p_event->hparent &&
- hwnd != p_event->hfswnd && vd->cfg->is_fullscreen )
- vout_display_SendEventFullscreen(vd, false);
-
- if( hwnd == p_event->hfswnd )
- {
- HWND htbar = FindWindow( _T("HHTaskbar"), NULL );
- ShowWindow( htbar, SW_HIDE );
- }
-
- if( !p_event->hparent ||
- hwnd == p_event->hfswnd )
- {
- SHFullScreen( hwnd, SHFS_HIDESIPBUTTON );
- }
#endif
return 0;
appdatadir = $(datadir)/applications
if !HAVE_WIN32
-if !HAVE_WINCE
appdata_DATA = vlc.desktop
endif
-endif
EXTRA_DIST += vlc.desktop.in
CLEANFILES += $(appdata_DATA)
icons256dir = $(iconsdatadir)/256x256/apps
if !HAVE_WIN32
-if !HAVE_WINCE
dist_vlcdata_DATA = icons/vlc.ico
dist_icons16_DATA = icons/16x16/vlc.png icons/16x16/vlc.xpm
dist_icons32_DATA = icons/32x32/vlc.png icons/32x32/vlc.xpm \
utils/video-vlc-default.sh \
$(NULL)
endif
-endif
EXTRA_DIST += \
$(skins2_default_vlt_FILES) \
#ifndef __NEWRES_H__
#define __NEWRES_H__
-#if !defined(UNDER_CE)
- #define UNDER_CE _WIN32_WCE
-#endif
-
#if defined(_WIN32_WCE)
#if !defined(WCEOLE_ENABLE_DIALOGEX)
#define DIALOGEX DIALOG DISCARDABLE
if HAVE_WIN32
libvlccore_la_SOURCES += $(SOURCES_libvlc_win32)
else
-if HAVE_WINCE
-libvlccore_la_SOURCES += $(SOURCES_libvlc_win32)
-else
if HAVE_SYMBIAN
#libvlccore_la_SOURCES += $(SOURCES_libvlc_symbian)
else
endif
endif
endif
-endif
if BUILD_HTTPD
libvlccore_la_SOURCES += $(SOURCES_libvlc_httpd)
endif
#include "config/configuration.h"
#include "libvlc.h"
-#if defined( WIN32 ) && !defined( UNDER_CE )
+#if defined( WIN32 )
static void ShowConsole (void);
static void PauseConsole (void);
#else
PauseConsole();
}
-#if defined (WIN32) && !defined (UNDER_CE)
+#if defined (WIN32)
/*****************************************************************************
* ShowConsole: On Win32, create an output console for debug messages
*****************************************************************************
i_width = 80;
pclose( file );
}
-#elif !defined (UNDER_CE)
+#else
CONSOLE_SCREEN_BUFFER_INFO buf;
if (GetConsoleScreenBufferInfo (GetStdHandle (STD_OUTPUT_HANDLE), &buf))
#include <stdlib.h>
#include <stdio.h>
#include <assert.h>
-#if defined (WIN32) && !defined (UNDER_CE)
+#if defined (WIN32)
# include <direct.h>
#endif
#include <sys/stat.h>
free( psz_path );
/* Create a suitable path */
-#if defined (WIN32) && !defined (UNDER_CE)
+#if defined (WIN32)
const DWORD dwCount = GetTempPathW( 0, NULL );
wchar_t *psw_path = calloc( dwCount + 1, sizeof(wchar_t) );
if( psw_path )
# include <sys/time.h> /* gettimeofday() */
#endif
-#ifdef UNDER_CE
-#include <sys/time.h> /* gettimeofday() */
-#endif
-
#include <time.h> /* ctime() */
-#if defined (WIN32) && !defined (UNDER_CE)
+#if defined (WIN32)
#include <sys/timeb.h> /* ftime() */
#endif
#include <limits.h>
int64_t vlm_Date(void)
{
-#if defined (WIN32) && !defined (UNDER_CE)
+#if defined (WIN32)
struct timeb tm;
ftime( &tm );
return ((int64_t)tm.time) * 1000000 + ((int64_t)tm.millitm) * 1000;
#ifdef WIN32
# include <io.h>
-# ifdef UNDER_CE
-# define _get_osfhandle(a) ((long) (a))
-# endif
static
ssize_t pread (int fd, void *buf, size_t count, off_t offset)
* Remaining text is a required description of the update
*/
-#if defined( UNDER_CE )
-# define UPDATE_OS_SUFFIX "-ce"
-#elif defined( WIN64 )
+#if defined( WIN64 )
# define UPDATE_OS_SUFFIX "-win-x64"
#elif defined( WIN32 )
# define UPDATE_OS_SUFFIX "-win-x86"
# include <poll.h>
#endif
-#if defined( UNDER_CE )
-# include <winsock.h>
-#elif defined( WIN32 )
+#if defined( WIN32 )
# include <winsock2.h>
#else
# include <sys/socket.h>
#include <vlc_network.h>
#ifdef WIN32
-# if defined(UNDER_CE)
-# undef IP_MULTICAST_TTL
-# define IP_MULTICAST_TTL 3
-# undef IP_ADD_MEMBERSHIP
-# define IP_ADD_MEMBERSHIP 5
-# endif
# define EAFNOSUPPORT WSAEAFNOSUPPORT
#else
# include <unistd.h>
#include <stdarg.h>
#include <stdlib.h>
#include <sys/types.h>
-#ifdef UNDER_CE
-# include <tchar.h>
-#elif defined(WIN32)
+#if defined(WIN32)
# include <io.h>
#endif
#include <errno.h>
if (unlikely(res == -1))
return -1;
-# ifndef UNDER_CE
/* Writing to the console is a lot of fun on Microsoft Windows.
* If you use the standard I/O functions, you must use the OEM code page,
* which is different from the usual ANSI code page. Or maybe not, if the
goto out;
}
}
-# endif
+
char *ansi = ToANSI (str);
if (ansi != NULL)
{
if (schemelen == 4 && !strncasecmp (url, "file", 4))
{
-#if (!defined (WIN32) && !defined (__OS2__)) || defined (UNDER_CE)
+#if !defined (WIN32) && !defined (__OS2__)
/* Leading slash => local path */
if (*path == '/')
return path;
#include <vlc_common.h>
#include <w32api.h>
-#ifndef UNDER_CE
-# include <direct.h>
-#endif
+#include <direct.h>
#include <shlobj.h>
#include "../libvlc.h"
if (*appdir)
return appdir;
-#if defined (UNDER_CE)
- /*There are some errors in cegcc headers*/
-#undef SHGetSpecialFolderPath
- BOOL WINAPI SHGetSpecialFolderPath(HWND,LPWSTR,int,BOOL);
- if( SHGetSpecialFolderPath( NULL, wdir, CSIDL_APPDATA, 1 ) )
-#else
/* Get the "Application Data" folder for all users */
if( S_OK == SHGetFolderPathW( NULL, CSIDL_COMMON_APPDATA
| CSIDL_FLAG_CREATE, NULL, SHGFP_TYPE_CURRENT, wdir ) )
-#endif
{
WideCharToMultiByte (CP_UTF8, 0, wdir, -1,
appdir, PATH_MAX, NULL, NULL);
{
wchar_t wdir[MAX_PATH];
-#if defined (UNDER_CE)
- /*There are some errors in cegcc headers*/
-#undef SHGetSpecialFolderPath
- BOOL WINAPI SHGetSpecialFolderPath(HWND,LPWSTR,int,BOOL);
- if (SHGetSpecialFolderPath (NULL, wdir, CSIDL_APPDATA, 1))
-#else
if (SHGetFolderPathW (NULL, csidl | CSIDL_FLAG_CREATE,
NULL, SHGFP_TYPE_CURRENT, wdir ) == S_OK)
-#endif
return FromWide (wdir);
return NULL;
}
#include <sys/stat.h>
#include <fcntl.h>
#include <winsock2.h>
-#ifndef UNDER_CE
-# include <direct.h>
-#else
-# include <tchar.h>
-#endif
+#include <direct.h>
#include <vlc_common.h>
#include <vlc_charset.h>
if ((flags & O_TEXT) == 0)
flags |= O_BINARY;
-#ifdef UNDER_CE
- /*_open translates to wchar internally on WinCE*/
- return _open (filename, flags, mode);
-#else
/*
* open() cannot open files with non-“ANSI” characters on Windows.
* We use _wopen() instead. Same thing for mkdir() and stat().
int fd = _wopen (wpath, flags, mode);
free (wpath);
return fd;
-#endif
}
int vlc_openat (int dir, const char *filename, int flags, ...)
int vlc_mkdir( const char *dirname, mode_t mode )
{
-#if defined (UNDER_CE)
- (void) mode;
- /* mkdir converts internally to wchar */
- return _mkdir(dirname);
-#else
wchar_t *wpath = widen_path (dirname);
if (wpath == NULL)
return -1;
free (wpath);
(void) mode;
return ret;
-#endif
}
char *vlc_getcwd (void)
{
-#ifndef UNDER_CE
wchar_t *wdir = _wgetcwd (NULL, 0);
if (wdir == NULL)
return NULL;
char *dir = FromWide (wdir);
free (wdir);
return dir;
-#else
- return NULL;
-#endif
}
/* Under Windows, these wrappers return the list of drive letters
free (wpath);
/* Special mode to list drive letters */
p_dir->wdir = NULL;
-#ifdef UNDER_CE
- p_dir->u.drives = 1;
-#else
p_dir->u.drives = GetLogicalDrives ();
-#endif
return (void *)p_dir;
}
DWORD drives = p_dir->u.drives;
if (drives == 0)
return NULL; /* end */
-#ifdef UNDER_CE
- p_dir->u.drives = 0;
- return strdup ("\\");
-#else
+
unsigned int i;
for (i = 0; !(drives & 1); i++)
drives >>= 1;
if (asprintf (&ret, "%c:\\", 'A' + i) == -1)
return NULL;
return ret;
-#endif
}
if (p_dir->u.insert_dot_dot)
int vlc_stat (const char *filename, struct stat *buf)
{
-#ifdef UNDER_CE
- /* _stat translates to wchar internally on WinCE */
- return _stat (filename, buf);
-#else
wchar_t *wpath = widen_path (filename);
if (wpath == NULL)
return -1;
int ret = _wstati64 (wpath, buf);
free (wpath);
return ret;
-#endif
}
int vlc_lstat (const char *filename, struct stat *buf)
int vlc_unlink (const char *filename)
{
-#ifdef UNDER_CE
- /*_open translates to wchar internally on WinCE*/
- return _unlink( filename );
-#else
wchar_t *wpath = widen_path (filename);
if (wpath == NULL)
return -1;
int ret = _wunlink (wpath);
free (wpath);
return ret;
-#endif
}
int vlc_rename (const char *oldpath, const char *newpath)
if (wold == NULL || wnew == NULL)
goto out;
-# ifdef UNDER_CE
- /* FIXME: errno support */
- if (MoveFileW (wold, wnew))
- ret = 0;
-#else
if (_wrename (wold, wnew) && (errno == EACCES || errno == EEXIST))
{ /* Windows does not allow atomic file replacement */
if (_wremove (wnew))
goto out;
}
ret = 0;
-#endif
out:
free (wnew);
free (wold);
int vlc_dup (int oldfd)
{
-#ifdef UNDER_CE
- (void) oldfd;
- errno = ENOSYS;
- return -1;
-#else
return dup (oldfd);
-#endif
}
int vlc_pipe (int fds[2])
{
-#ifdef UNDER_CE
- (void) fds;
- errno = ENOSYS;
- return -1;
-#else
return _pipe (fds, 32768, O_BINARY);
-#endif
}
#include <vlc_network.h>
return -1;
module_handle_t handle;
-#ifndef UNDER_CE
/* FIXME: this is not thread-safe -- Courmisch */
UINT mode = SetErrorMode (SEM_FAILCRITICALERRORS);
SetErrorMode (mode|SEM_FAILCRITICALERRORS);
-#endif
handle = LoadLibraryW (wfile);
-#ifndef UNDER_CE
SetErrorMode (mode);
-#endif
free (wfile);
if( handle == NULL )
void *module_Lookup( module_handle_t handle, const char *psz_function )
{
-#ifdef UNDER_CE
- wchar_t wide[strlen( psz_function ) + 1];
- size_t i = 0;
- do
- wide[i] = psz_function[i]; /* UTF-16 <- ASCII */
- while( psz_function[i++] );
-
- return (void *)GetProcAddress( handle, wide );
-
-#else
return (void *)GetProcAddress( handle, (char *)psz_function );
-
-#endif
}
#include "../config/vlc_getopt.h"
-#if !defined( UNDER_CE )
-# include <mmsystem.h>
-#endif
-
+#include <mmsystem.h>
#include <winsock.h>
*/
void system_Init(void)
{
-#if !defined( UNDER_CE )
timeBeginPeriod(5);
-#endif
if (system_InitWSA(2, 2) && system_InitWSA(1, 1))
fputs("Error: cannot initialize Winsocks\n", stderr);
void system_Configure( libvlc_int_t *p_this, int i_argc, const char *const ppsz_argv[] )
{
-#if !defined( UNDER_CE )
/* Raise default priority of the current process */
#ifndef ABOVE_NORMAL_PRIORITY_CLASS
# define ABOVE_NORMAL_PRIORITY_CLASS 0x00008000
exit( 0 );
}
}
-
-#endif
}
static unsigned __stdcall IPCHelperThread( void *data )
p_helper = NULL;
}
-#if !defined( UNDER_CE )
timeEndPeriod(5);
-#endif
/* XXX: In theory, we should not call this if WSAStartup() failed. */
WSACleanup();
#include <assert.h>
#include <limits.h>
#include <errno.h>
-#ifdef UNDER_CE
-# include <mmsystem.h>
-#endif
static vlc_threadvar_t thread_key;
struct vlc_thread
{
HANDLE id;
-#ifdef UNDER_CE
- HANDLE cancel_event;
-#endif
bool detached;
bool killable;
DWORD delay)
{
DWORD ret;
-#ifdef UNDER_CE
- HANDLE buf[count + 1];
-
- struct vlc_thread *th = vlc_threadvar_get (thread_key);
- if (th != NULL)
- {
- memcpy (buf, handles, count * sizeof(HANDLE));
- buf[count++] = th->cancel_event;
- handles = buf;
- }
-
- if (count == 0)
- {
- Sleep (delay);
- ret = WAIT_TIMEOUT;
- }
- else
- ret = WaitForMultipleObjects (count, handles, FALSE, delay);
-
- if ((th != NULL) && (ret == WAIT_OBJECT_0 + count - 1))
- {
- vlc_cancel_self ((uintptr_t)th);
- ret = WAIT_IO_COMPLETION;
- }
-#else
if (count == 0)
{
ret = SleepEx (delay, TRUE);
}
else
ret = WaitForMultipleObjectsEx (count, handles, FALSE, delay, TRUE);
-#endif
+
/* We do not abandon objects... this would be a bug */
assert (ret < WAIT_ABANDONED_0 || WAIT_ABANDONED_0 + count - 1 < ret);
if (th->detached)
{
CloseHandle (th->id);
-#ifdef UNDER_CE
- CloseHandle (th->cancel_event);
-#endif
free (th);
}
}
th->cleaners = NULL;
HANDLE hThread;
-#ifndef UNDER_CE
/* When using the MSVCRT C library you have to use the _beginthreadex
* function instead of CreateThread, otherwise you'll end up with
* memory leaks and the signal functions not working (see Microsoft
}
hThread = (HANDLE)h;
-#else
- th->cancel_event = CreateEvent (NULL, FALSE, FALSE, NULL);
- if (th->cancel_event == NULL)
- {
- free (th);
- return ENOMEM;
- }
-
- /* Not sure if CREATE_SUSPENDED + ResumeThread() is any useful on WinCE.
- * Thread handles act up, too. */
- hThread = CreateThread (NULL, 128*1024, vlc_entry, th,
- CREATE_SUSPENDED, NULL);
- if (hThread == NULL)
- {
- CloseHandle (th->cancel_event);
- free (th);
- return ENOMEM;
- }
-
-#endif
/* Thread is suspended, so we can safely set th->id */
th->id = hThread;
if (p_handle != NULL)
if (result != NULL)
*result = th->data;
CloseHandle (th->id);
-#ifdef UNDER_CE
- CloseHandle (th->cancel_event);
-#endif
free (th);
}
void vlc_cancel (vlc_thread_t th)
{
-#ifndef UNDER_CE
QueueUserAPC (vlc_cancel_self, th->id, (uintptr_t)th);
-#else
- SetEvent (th->cancel_event);
-#endif
}
int vlc_savecancel (void)
th->data = NULL; /* TODO: special value? */
vlc_thread_cleanup (th);
-#ifndef UNDER_CE
_endthreadex(0);
-#else
- ExitThread(0);
-#endif
}
}
/*** Timers ***/
struct vlc_timer
{
-#ifndef UNDER_CE
HANDLE handle;
-#else
- unsigned id;
- unsigned interval;
-#endif
void (*func) (void *);
void *data;
};
-#ifndef UNDER_CE
static void CALLBACK vlc_timer_do (void *val, BOOLEAN timeout)
{
struct vlc_timer *timer = val;
assert (timeout);
timer->func (timer->data);
}
-#else
-static void CALLBACK vlc_timer_do (unsigned timer_id, unsigned msg,
- DWORD_PTR user, DWORD_PTR unused1,
- DWORD_PTR unused2)
-{
- struct vlc_timer *timer = (struct vlc_timer *) user;
- assert (timer_id == timer->id);
- (void) msg;
- (void) unused1;
- (void) unused2;
-
- timer->func (timer->data);
-
- if (timer->interval)
- {
- mtime_t interval = timer->interval * 1000;
- vlc_timer_schedule (timer, false, interval, interval);
- }
-}
-#endif
int vlc_timer_create (vlc_timer_t *id, void (*func) (void *), void *data)
{
return ENOMEM;
timer->func = func;
timer->data = data;
-#ifndef UNDER_CE
timer->handle = INVALID_HANDLE_VALUE;
-#else
- timer->id = 0;
- timer->interval = 0;
-#endif
*id = timer;
return 0;
}
void vlc_timer_destroy (vlc_timer_t timer)
{
-#ifndef UNDER_CE
if (timer->handle != INVALID_HANDLE_VALUE)
DeleteTimerQueueTimer (NULL, timer->handle, INVALID_HANDLE_VALUE);
-#else
- if (timer->id)
- timeKillEvent (timer->id);
- /* FIXME: timers that have not yet completed will trigger use-after-free */
-#endif
free (timer);
}
void vlc_timer_schedule (vlc_timer_t timer, bool absolute,
mtime_t value, mtime_t interval)
{
-#ifndef UNDER_CE
if (timer->handle != INVALID_HANDLE_VALUE)
{
DeleteTimerQueueTimer (NULL, timer->handle, NULL);
timer->handle = INVALID_HANDLE_VALUE;
}
-#else
- if (timer->id)
- {
- timeKillEvent (timer->id);
- timer->id = 0;
- timer->interval = 0;
- }
-#endif
if (value == 0)
return; /* Disarm */
value = (value + 999) / 1000;
interval = (interval + 999) / 1000;
-#ifndef UNDER_CE
if (!CreateTimerQueueTimer (&timer->handle, NULL, vlc_timer_do, timer,
value, interval, WT_EXECUTEDEFAULT))
-#else
- TIMECAPS caps;
- timeGetDevCaps (&caps, sizeof(caps));
-
- unsigned delay = value;
- delay = __MAX(delay, caps.wPeriodMin);
- delay = __MIN(delay, caps.wPeriodMax);
-
- unsigned event = TIME_ONESHOT;
-
- if (interval == delay)
- event = TIME_PERIODIC;
- else if (interval)
- timer->interval = interval;
-
- timer->id = timeSetEvent (delay, delay / 20, vlc_timer_do, (DWORD) timer,
- event);
- if (!timer->id)
-#endif
abort ();
}
/*** CPU ***/
unsigned vlc_GetCPUCount (void)
{
-#ifndef UNDER_CE
DWORD_PTR process;
DWORD_PTR system;
if (GetProcessAffinityMask (GetCurrentProcess(), &process, &system))
return popcount (system);
-#endif
return 1;
}