summaryrefslogtreecommitdiffstats
path: root/macos.c
diff options
context:
space:
mode:
authorGravatar Tomaz Canabrava <tomaz.canabrava@intel.com>2015-09-02 20:52:34 -0300
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-10-30 10:36:48 -0700
commit4c0156e3d51b389db8eccc3fa3da4b8f248f9b13 (patch)
tree966868d29150fdba13a5a56fb4305bc432ec7a72 /macos.c
parenta0798214231c652ac6142228f5ddfc4b65c921f8 (diff)
downloadsubsurface-4c0156e3d51b389db8eccc3fa3da4b8f248f9b13.tar.gz
Move all core-functionality to subsurface-core
And adapt a new CMakeLists.txt file for it. On the way I've also found out that we where double-compilling a few files. I've also set the subsurface-core as a include_path but that was just to reduce the noise on this commit, since I plan to remove it from the include path to make it obligatory to specify something like include "subsurface-core/dive.h" for the header files. Since the app is growing quite a bit we ended up having a few different files with almost same name that did similar things, I want to kill that (for instance Dive.h, dive.h, PrintDive.h and such). Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'macos.c')
-rw-r--r--macos.c206
1 files changed, 0 insertions, 206 deletions
diff --git a/macos.c b/macos.c
deleted file mode 100644
index aa2be4b3b..000000000
--- a/macos.c
+++ /dev/null
@@ -1,206 +0,0 @@
-/* macos.c */
-/* implements Mac OS X specific functions */
-#include <stdlib.h>
-#include <dirent.h>
-#include <fnmatch.h>
-#include "dive.h"
-#include "display.h"
-#include <CoreFoundation/CoreFoundation.h>
-#include <CoreServices/CoreServices.h>
-#include <mach-o/dyld.h>
-#include <sys/syslimits.h>
-#include <stdio.h>
-#include <fcntl.h>
-#include <unistd.h>
-
-void subsurface_user_info(struct user_info *info)
-{ /* Nothing, let's use libgit2-20 on MacOS */ }
-
-/* macos defines CFSTR to create a CFString object from a constant,
- * but no similar macros if a C string variable is supposed to be
- * the argument. We add this here (hardcoding the default allocator
- * and MacRoman encoding */
-#define CFSTR_VAR(_var) CFStringCreateWithCStringNoCopy(kCFAllocatorDefault, \
- (_var), kCFStringEncodingMacRoman, \
- kCFAllocatorNull)
-
-#define SUBSURFACE_PREFERENCES CFSTR("org.hohndel.subsurface")
-#define ICON_NAME "Subsurface.icns"
-#define UI_FONT "Arial 12"
-
-const char mac_system_divelist_default_font[] = "Arial";
-const char *system_divelist_default_font = mac_system_divelist_default_font;
-double system_divelist_default_font_size = -1.0;
-
-void subsurface_OS_pref_setup(void)
-{
- // nothing
-}
-
-bool subsurface_ignore_font(const char *font)
-{
- // there are no old default fonts to ignore
- return false;
-}
-
-static const char *system_default_path_append(const char *append)
-{
- const char *home = getenv("HOME");
- const char *path = "/Library/Application Support/Subsurface";
-
- int len = strlen(home) + strlen(path) + 1;
- if (append)
- len += strlen(append) + 1;
-
- char *buffer = (char *)malloc(len);
- memset(buffer, 0, len);
- strcat(buffer, home);
- strcat(buffer, path);
- if (append) {
- strcat(buffer, "/");
- strcat(buffer, append);
- }
-
- return buffer;
-}
-
-const char *system_default_directory(void)
-{
- static const char *path = NULL;
- if (!path)
- path = system_default_path_append(NULL);
- return path;
-}
-
-const char *system_default_filename(void)
-{
- static char *filename = NULL;
- if (!filename) {
- const char *user = getenv("LOGNAME");
- if (same_string(user, ""))
- user = "username";
- filename = calloc(strlen(user) + 5, 1);
- strcat(filename, user);
- strcat(filename, ".xml");
- }
- static const char *path = NULL;
- if (!path)
- path = system_default_path_append(filename);
- return path;
-}
-
-int enumerate_devices(device_callback_t callback, void *userdata, int dc_type)
-{
- int index = -1, entries = 0;
- DIR *dp = NULL;
- struct dirent *ep = NULL;
- size_t i;
- if (dc_type != DC_TYPE_UEMIS) {
- const char *dirname = "/dev";
- const char *patterns[] = {
- "tty.*",
- "usbserial",
- NULL
- };
-
- dp = opendir(dirname);
- if (dp == NULL) {
- return -1;
- }
-
- while ((ep = readdir(dp)) != NULL) {
- for (i = 0; patterns[i] != NULL; ++i) {
- if (fnmatch(patterns[i], ep->d_name, 0) == 0) {
- char filename[1024];
- int n = snprintf(filename, sizeof(filename), "%s/%s", dirname, ep->d_name);
- if (n >= sizeof(filename)) {
- closedir(dp);
- return -1;
- }
- callback(filename, userdata);
- if (is_default_dive_computer_device(filename))
- index = entries;
- entries++;
- break;
- }
- }
- }
- closedir(dp);
- }
- if (dc_type != DC_TYPE_SERIAL) {
- const char *dirname = "/Volumes";
- int num_uemis = 0;
- dp = opendir(dirname);
- if (dp == NULL) {
- return -1;
- }
-
- while ((ep = readdir(dp)) != NULL) {
- if (fnmatch("UEMISSDA", ep->d_name, 0) == 0) {
- char filename[1024];
- int n = snprintf(filename, sizeof(filename), "%s/%s", dirname, ep->d_name);
- if (n >= sizeof(filename)) {
- closedir(dp);
- return -1;
- }
- callback(filename, userdata);
- if (is_default_dive_computer_device(filename))
- index = entries;
- entries++;
- num_uemis++;
- break;
- }
- }
- closedir(dp);
- if (num_uemis == 1 && entries == 1) /* if we find exactly one entry and that's a Uemis, select it */
- index = 0;
- }
- return index;
-}
-
-/* NOP wrappers to comform with windows.c */
-int subsurface_rename(const char *path, const char *newpath)
-{
- return rename(path, newpath);
-}
-
-int subsurface_open(const char *path, int oflags, mode_t mode)
-{
- return open(path, oflags, mode);
-}
-
-FILE *subsurface_fopen(const char *path, const char *mode)
-{
- return fopen(path, mode);
-}
-
-void *subsurface_opendir(const char *path)
-{
- return (void *)opendir(path);
-}
-
-int subsurface_access(const char *path, int mode)
-{
- return access(path, mode);
-}
-
-struct zip *subsurface_zip_open_readonly(const char *path, int flags, int *errorp)
-{
- return zip_open(path, flags, errorp);
-}
-
-int subsurface_zip_close(struct zip *zip)
-{
- return zip_close(zip);
-}
-
-/* win32 console */
-void subsurface_console_init(bool dedicated)
-{
- /* NOP */
-}
-
-void subsurface_console_exit(void)
-{
- /* NOP */
-}