view include/animone/types.h @ 32:93224b26a0ee default tip

player: efforts towards C-ization
author Paper <paper@tflc.us>
date Mon, 10 Feb 2025 19:17:29 -0500
parents fac2b2d242d3
children
line wrap: on
line source

#ifndef ANIMONE_ANIMONE_TYPES_H_
#define ANIMONE_ANIMONE_TYPES_H_

#include <cstdint>

/* windows is so annoying */
#ifdef _WIN32
# ifdef DLL_EXPORT
#  define ANIMONE_API __declspec(dllexport)
# else
#  define ANIMONE_API __declspec(dllimport)
# endif
#else
# define ANIMONE_API
#endif

/* FIXME configure this in autoconf */
#ifndef _WIN32
#include <sys/types.h>
#endif

namespace animone::internal {

#ifdef _WIN32
using pid_t = std::uint32_t;
#else
using pid_t = ::pid_t;
#endif

/* different window systems have different sized IDs */
union ANIMONE_API wid_t {
	std::uintptr_t win32; // XXX this ought to be a `void *`
	std::int64_t quartz; // FIXME is this correct?
	std::uint32_t x11;
};

}

#endif // ANIMONE_ANIMONE_TYPES_H_