symbian: Remove!

This commit is contained in:
Florent Castelli 2016-10-11 18:48:49 +02:00
parent ad71d27809
commit 4145b60a0e
55 changed files with 44 additions and 818 deletions

View file

@ -207,9 +207,6 @@ void CPUInfo::Detect()
#endif
strcpy(brand_string, "Apple A");
num_cores = 2;
#elif defined(__SYMBIAN32__)
strcpy(brand_string, "Samsung ARMv6");
num_cores = 1;
#else
strcpy(brand_string, "Unknown");
num_cores = 1;

View file

@ -24,11 +24,6 @@
#include <stdlib.h>
#include <string.h>
// For cache flushing on Symbian/iOS
#ifdef __SYMBIAN32__
#include <e32std.h>
#endif
#ifdef IOS
#include <libkern/OSCacheControl.h>
#include <sys/mman.h>
@ -628,9 +623,7 @@ void ARMXEmitter::FlushIcache()
void ARMXEmitter::FlushIcacheSection(u8 *start, u8 *end)
{
#ifdef __SYMBIAN32__
User::IMB_Range(start, end);
#elif defined(IOS)
#if defined(IOS)
// Header file says this is equivalent to: sys_icache_invalidate(start, end - start);
sys_cache_control(kCacheFunctionPrepareForExecution, start, end - start);
#elif !defined(_WIN32)

View file

@ -25,8 +25,6 @@
#include "CodeBlock.h"
#include "MsgHandler.h"
// TODO: Check if Pandora still needs signal.h/kill here. Symbian doesn't.
// VCVT flags
#define TO_FLOAT 0
#define TO_INT 1 << 0

View file

@ -97,11 +97,7 @@ public:
// Call this when shutting down. Don't rely on the destructor, even though it'll do the job.
void FreeCodeSpace() {
#ifdef __SYMBIAN32__
ResetExecutableMemory(region);
#else
FreeMemoryPages(region, region_size);
#endif
region = nullptr;
region_size = 0;
}

View file

@ -26,8 +26,6 @@
#include "Common.h"
#include "MsgHandler.h"
// TODO: Check if Pandora still needs signal.h/kill here. Symbian doesn't.
// VCVT flags
#define TO_FLOAT 0
#define TO_INT 1 << 0

View file

@ -76,24 +76,6 @@
#define DIR_SEP_CHRS "/"
#endif
// Hack
#if defined(__SYMBIAN32__)
static inline int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result) {
struct dirent *readdir_entry;
readdir_entry = readdir(dirp);
if (readdir_entry == NULL) {
*result = NULL;
return errno;
}
*entry = *readdir_entry;
*result = entry;
return 0;
}
#endif
// This namespace has various generic functions related to files and paths.
// The code still needs a ton of cleanup.
// REMEMBER: strdup considered harmful!

View file

@ -121,16 +121,12 @@ bool GenericLogEnabled(LogTypes::LOG_LEVELS level, LogTypes::LOG_TYPE type);
__LINE__, __FILE__); \
if (!PanicYesNo("*** Assertion (see log)***\n")) {Crash();} \
}
#ifdef __SYMBIAN32__
#define _dbg_assert_msg_(_t_, _a_, ...) if (!(_a_)) ERROR_LOG(_t_, __VA_ARGS__);
#else
#define _dbg_assert_msg_(_t_, _a_, ...)\
if (!(_a_)) {\
printf(__VA_ARGS__); \
ERROR_LOG(_t_, __VA_ARGS__); \
if (!PanicYesNo(__VA_ARGS__)) {Crash();} \
}
#endif
#define _dbg_update_() ; //Host_UpdateLogDisplay();
#else // not debug

View file

@ -23,9 +23,6 @@
#include "Timer.h"
#include "FileUtil.h"
#include "../Core/Config.h"
#ifdef __SYMBIAN32__
#include <e32debug.h>
#endif
// Don't need to savestate this.
const char *hleCurrentThreadName = NULL;
@ -278,16 +275,12 @@ void LogChannel::RemoveListener(LogListener *listener) {
}
void LogChannel::Trigger(LogTypes::LOG_LEVELS level, const char *msg) {
#ifdef __SYMBIAN32__
RDebug::Printf("%s",msg);
#else
lock_guard lk(m_listeners_lock);
std::set<LogListener*>::const_iterator i;
for (i = m_listeners.begin(); i != m_listeners.end(); ++i) {
(*i)->Log(level, msg);
}
#endif
}
FileLogListener::FileLogListener(const char *filename) {

View file

@ -48,20 +48,6 @@ static SYSTEM_INFO sys_info;
#define MEM_PAGE_MASK ((MEM_PAGE_SIZE)-1)
#define round_page(x) ((((uintptr_t)(x)) + MEM_PAGE_MASK) & ~(MEM_PAGE_MASK))
#ifdef __SYMBIAN32__
#include <e32std.h>
#define CODECHUNK_SIZE 1024*1024*20
static RChunk* g_code_chunk = NULL;
static RHeap* g_code_heap = NULL;
static u8* g_next_ptr = NULL;
static u8* g_orig_ptr = NULL;
void ResetExecutableMemory(void* ptr) {
// Just reset the ptr to the base
g_next_ptr = g_orig_ptr;
}
#endif
#ifdef _WIN32
// Win32 flags are odd...
uint32_t ConvertProtFlagsWin32(uint32_t flags) {
@ -153,19 +139,6 @@ void *AllocateExecutableMemory(size_t size) {
else
#endif
ptr = VirtualAlloc(0, size, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE);
#elif defined(__SYMBIAN32__)
//This function may be called more than once, and we want to create only one big
//memory chunk for all the executable code for the JIT
if( g_code_chunk == NULL && g_code_heap == NULL)
{
g_code_chunk = new RChunk();
g_code_chunk->CreateLocalCode(CODECHUNK_SIZE, CODECHUNK_SIZE + 3*GetMemoryProtectPageSize());
g_code_heap = UserHeap::ChunkHeap(*g_code_chunk, CODECHUNK_SIZE, 1, CODECHUNK_SIZE + 3*GetMemoryProtectPageSize());
g_next_ptr = reinterpret_cast<u8*>(g_code_heap->AllocZ(CODECHUNK_SIZE));
g_orig_ptr = g_next_ptr;
}
void* ptr = (void*)g_next_ptr;
g_next_ptr += size;
#else
static char *map_hint = 0;
#if defined(_M_X64)
@ -191,7 +164,7 @@ void *AllocateExecutableMemory(size_t size) {
#endif /* defined(_WIN32) */
#if !defined(_WIN32) && !defined(__SYMBIAN32__)
#if !defined(_WIN32)
static const void *failed_result = MAP_FAILED;
#else
static const void *failed_result = nullptr;
@ -222,8 +195,6 @@ void *AllocateMemoryPages(size_t size, uint32_t memProtFlags) {
#ifdef _WIN32
uint32_t protect = ConvertProtFlagsWin32(memProtFlags);
void* ptr = VirtualAlloc(0, size, MEM_COMMIT, protect);
#elif defined(__SYMBIAN32__)
void* ptr = malloc(size);
#else
uint32_t protect = ConvertProtFlagsUnix(memProtFlags);
void* ptr = mmap(0, size, protect, MAP_ANON | MAP_PRIVATE, -1, 0);
@ -243,9 +214,6 @@ void *AllocateAlignedMemory(size_t size, size_t alignment) {
void* ptr = NULL;
#ifdef ANDROID
ptr = memalign(alignment, size);
#elif defined(__SYMBIAN32__)
// On Symbian, alignment won't matter as NEON isn't supported.
ptr = malloc(size);
#else
if (posix_memalign(&ptr, alignment, size) != 0)
ptr = NULL;
@ -268,8 +236,6 @@ void FreeMemoryPages(void *ptr, size_t size) {
#ifdef _WIN32
if (!VirtualFree(ptr, 0, MEM_RELEASE))
PanicAlert("FreeMemoryPages failed!\n%s", GetLastErrorMsg());
#elif defined(__SYMBIAN32__)
free(ptr);
#else
munmap(ptr, size);
#endif
@ -310,8 +276,6 @@ void ProtectMemoryPages(const void* ptr, size_t size, uint32_t memProtFlags) {
DWORD oldValue;
if (!VirtualProtect((void *)ptr, size, protect, &oldValue))
PanicAlert("WriteProtectMemory failed!\n%s", GetLastErrorMsg());
#elif defined(__SYMBIAN32__)
// Do nothing
#else
uint32_t protect = ConvertProtFlagsUnix(memProtFlags);
uint32_t page_size = GetMemoryProtectPageSize();

View file

@ -46,10 +46,6 @@ void FreeMemoryPages(void* ptr, size_t size);
void* AllocateAlignedMemory(size_t size, size_t alignment);
void FreeAlignedMemory(void* ptr);
#ifdef __SYMBIAN32__
void ResetExecutableMemory(void* ptr);
#endif
int GetMemoryProtectPageSize();
template <typename T>

View file

@ -15,11 +15,6 @@
// Official git repository and contact information can be found at
// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
// Symbian can't build this due to an old gcc/lib combination, and doesn't need to.
// Kind programmer, if you want to translate this to a proper feature-detection
// define, please feel free to.
#ifndef __SYMBIAN32__
#include "base/logging.h"
#include <assert.h>
@ -497,5 +492,3 @@ void MIPSCodeBlock::FreeCodeSpace() {
}
}
#endif

View file

@ -16,10 +16,6 @@
// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
#pragma once
// Symbian can't build this due to an old gcc/lib combination, and doesn't need to.
// Kind programmer, if you want to translate this to a proper feature-detection
// define, please feel free to.
#ifndef __SYMBIAN32__
#include <functional>
#include <vector>
@ -321,5 +317,3 @@ protected:
};
};
#endif

View file

@ -20,7 +20,7 @@
#include <string.h>
#if defined(__APPLE__) || defined(__SYMBIAN32__)
#if defined(__APPLE__)
#define __thread
#endif

View file

@ -407,12 +407,7 @@ static int DefaultZoomType() {
}
static bool DefaultTimerHack() {
// Has been in use on Symbian since v0.7. Preferred option.
#ifdef __SYMBIAN32__
return true;
#else
return false;
#endif
}
static int DefaultAndroidHwScale() {
@ -569,7 +564,7 @@ static ConfigSetting controlSettings[] = {
ConfigSetting("ComboKey3Mapping", &g_Config.iCombokey3, 0, true, true),
ConfigSetting("ComboKey4Mapping", &g_Config.iCombokey4, 0, true, true),
#if !defined(__SYMBIAN32__) && !defined(IOS) && !defined(MAEMO)
#if !defined(IOS) && !defined(MAEMO)
#if defined(_WIN32)
// A win32 user seeing touch controls is likely using PPSSPP on a tablet. There it makes
// sense to default this to on.
@ -672,7 +667,7 @@ static ConfigSetting networkSettings[] = {
static int DefaultPSPModel() {
// TODO: Can probably default this on, but not sure about its memory differences.
#if !defined(_M_X64) && !defined(_WIN32) && !defined(__SYMBIAN32__)
#if !defined(_M_X64) && !defined(_WIN32)
return PSP_MODEL_FAT;
#else
return PSP_MODEL_SLIM;

View file

@ -342,7 +342,7 @@ public:
int iCombokey3;
int iCombokey4;
#if !defined(__SYMBIAN32__) && !defined(IOS) && !defined(MAEMO)
#if !defined(IOS) && !defined(MAEMO)
bool bShowTouchPause;
#endif

View file

@ -133,9 +133,6 @@ bool Core_GetPowerSaving() {
bool UpdateScreenScale(int width, int height, bool smallWindow) {
g_dpi = 72;
g_dpi_scale = 1.0f;
#if defined(__SYMBIAN32__)
g_dpi_scale = 1.4f;
#endif
if (smallWindow) {
g_dpi_scale = 2.0f;
}

View file

@ -61,12 +61,7 @@ void HTTPFileLoader::Prepare() {
size_pos = header.find_first_not_of(' ', size_pos);
}
if (size_pos != header.npos) {
// TODO: Find a way to get this to work right on Symbian?
#ifndef __SYMBIAN32__
filesize_ = atoll(&header[size_pos]);
#else
filesize_ = atoi(&header[size_pos]);
#endif
}
}
if (startsWithNoCase(header, "Accept-Ranges:")) {

View file

@ -40,9 +40,6 @@
#include <sys/types.h>
#include <sys/vfs.h>
#define statvfs statfs
#elif defined(__SYMBIAN32__)
#include <mw/QSystemStorageInfo>
QTM_USE_NAMESPACE
#else
#include <sys/statvfs.h>
#endif

View file

@ -39,7 +39,7 @@ typedef void * HANDLE;
#define HOST_IS_CASE_SENSITIVE 1
#endif
#elif defined(_WIN32) || defined(__SYMBIAN32__)
#elif defined(_WIN32)
#define HOST_IS_CASE_SENSITIVE 0
#else // Android, Linux, BSD (and the rest?)

View file

@ -97,7 +97,7 @@ time_t rtc_timegm(struct tm *tm)
return _mkgmtime(tm);
}
#elif (defined(__GLIBC__) && !defined(ANDROID)) || defined(__SYMBIAN32__)
#elif (defined(__GLIBC__) && !defined(ANDROID))
#define rtc_timegm timegm
#else

View file

@ -6,16 +6,6 @@
#include "Common/CommonTypes.h"
#include "Core/MIPS/MIPS.h"
#ifdef __SYMBIAN32__
// Seems std::move() doesn't exist, so assuming it can't do moves at all.
namespace std {
template <typename T>
const T &move(const T &x) {
return x;
}
};
#endif
// Basic IR
//
// This IR refers implicitly to the MIPS register set and is simple to interpret.

View file

@ -51,31 +51,6 @@ public:
b.const_ = nullptr;
}
#ifdef __SYMBIAN32__
IRBlock(const IRBlock &b) {
*this = b;
}
IRBlock &operator=(const IRBlock &b) {
// No std::move on Symbian... But let's try not to use elsewhere.
numInstructions_ = b.numInstructions_;
numConstants_ = b.numConstants_;
instr_ = new IRInst[numInstructions_];
if (numInstructions_) {
memcpy(instr_, b.instr_, sizeof(IRInst) * numInstructions_);
}
const_ = new u32[numConstants_];
if (numConstants_) {
memcpy(const_, b.const_, sizeof(u32) * numConstants_);
}
origAddr_ = b.origAddr_;
origSize_ = b.origSize_;
origFirstOpcode_ = b.origFirstOpcode_;
return *this;
}
#endif
~IRBlock() {
delete[] instr_;
delete[] const_;

View file

@ -44,12 +44,7 @@ recursive_mutex functions_lock;
// One function can appear in multiple copies in memory, and they will all have
// the same hash and should all be replaced if possible.
#ifdef __SYMBIAN32__
// Symbian does not have a functional unordered_multimap.
static std::multimap<u64, MIPSAnalyst::AnalyzedFunction *> hashToFunction;
#else
static std::unordered_multimap<u64, MIPSAnalyst::AnalyzedFunction *> hashToFunction;
#endif
struct HashMapFunc {
char name[64];
@ -755,7 +750,7 @@ namespace MIPSAnalyst {
lock_guard guard(functions_lock);
hashToFunction.clear();
// Really need to detect C++11 features with better defines.
#if !defined(__SYMBIAN32__) && !defined(IOS)
#if !defined(IOS)
hashToFunction.reserve(functions.size());
#endif
for (auto iter = functions.begin(); iter != functions.end(); iter++) {

View file

@ -20,9 +20,7 @@
#include "base/mutex.h"
#include "Common/Common.h"
#include "Common/MemoryUtil.h"
#ifndef __SYMBIAN32__
#include "Common/MemArena.h"
#endif
#include "Common/ChunkFile.h"
#include "Core/MemMap.h"
@ -42,12 +40,8 @@ namespace Memory {
// The base pointer to the auto-mirrored arena.
u8* base = NULL;
#ifdef __SYMBIAN32__
RChunk* memmap;
#else
// The MemArena class
MemArena g_arena;
#endif
// ==============
// 64-bit: Pointers to low-mem (sub-0x10000000) mirror
@ -145,7 +139,7 @@ static bool Memory_TryBase(u32 flags) {
#if defined(_XBOX)
void *ptr;
#elif !defined(__SYMBIAN32__)
#else
size_t position = 0;
size_t last_position = 0;
#endif
@ -167,12 +161,7 @@ static bool Memory_TryBase(u32 flags) {
continue;
SKIP(flags, view.flags);
#ifdef __SYMBIAN32__
if (!CanIgnoreView(view)) {
memmap->Commit(view.virtual_address & MEMVIEW32_MASK, view.size);
}
*(view.out_ptr) = (u8*)base + (view.virtual_address & MEMVIEW32_MASK);
#elif defined(_XBOX)
#if defined(_XBOX)
if (!CanIgnoreView(view)) {
*(view.out_ptr_low) = (u8*)(base + view.virtual_address);
ptr = VirtualAlloc(base + (view.virtual_address & MEMVIEW32_MASK), view.size, MEM_COMMIT, PAGE_READWRITE);
@ -207,7 +196,6 @@ static bool Memory_TryBase(u32 flags) {
return true;
#if !defined(__SYMBIAN32__)
bail:
// Argh! ERROR! Free what we grabbed so far so we can try again.
for (int j = 0; j <= i; j++)
@ -229,7 +217,6 @@ bail:
}
}
return false;
#endif
}
void MemoryMap_Setup(u32 flags)
@ -237,10 +224,6 @@ void MemoryMap_Setup(u32 flags)
// Find a base to reserve 256MB
#if defined(_XBOX)
base = (u8*)VirtualAlloc(0, 0x10000000, MEM_RESERVE|MEM_LARGE_PAGES, PAGE_READWRITE);
#elif defined(__SYMBIAN32__)
memmap = new RChunk();
memmap->CreateDisconnectedLocal(0 , 0, 0x10000000);
base = memmap->Base();
#else
size_t total_mem = 0;
@ -296,11 +279,6 @@ void MemoryMap_Setup(u32 flags)
void MemoryMap_Shutdown(u32 flags)
{
#ifdef __SYMBIAN32__
memmap->Decommit(0, memmap->MaxSize());
memmap->Close();
delete memmap;
#else
for (int i = 0; i < num_views; i++)
{
if (views[i].size == 0)
@ -315,7 +293,6 @@ void MemoryMap_Shutdown(u32 flags)
*views[i].out_ptr_low = NULL;
}
g_arena.ReleaseSpace();
#endif
}
void Init()

View file

@ -18,9 +18,6 @@
#pragma once
#include <cstring>
#ifdef __SYMBIAN32__
#include <e32std.h>
#endif
#ifndef offsetof
#include <stddef.h>
#endif

View file

@ -15,10 +15,6 @@
// Official git repository and contact information can be found at
// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
#ifdef __SYMBIAN32__
#include <sys/param.h>
#endif
#include "file/file_util.h"
#include "Common/StringUtils.h"

View file

@ -260,8 +260,6 @@ namespace Reporting
return "iOS";
#elif defined(__APPLE__)
return "Mac";
#elif defined(__SYMBIAN32__)
return "Symbian";
#elif defined(LOONGSON)
return "Loongson";
#elif defined(MAEMO)

View file

@ -103,7 +103,6 @@ struct ReplacementAliasKey {
}
};
#ifndef __SYMBIAN32__
namespace std {
template <>
struct hash<ReplacementCacheKey> {
@ -119,7 +118,6 @@ namespace std {
}
};
}
#endif
struct ReplacedTexture {
inline bool Valid() {
@ -202,20 +200,10 @@ protected:
std::string basePath_;
ReplacedTextureHash hash_;
typedef std::pair<int, int> WidthHeightPair;
#ifdef __SYMBIAN32__
std::map<u64, WidthHeightPair> hashranges_;
std::map<ReplacementAliasKey, std::string> aliases_;
#else
std::unordered_map<u64, WidthHeightPair> hashranges_;
std::unordered_map<ReplacementAliasKey, std::string> aliases_;
#endif
ReplacedTexture none_;
#ifdef __SYMBIAN32__
std::map<ReplacementCacheKey, ReplacedTexture> cache_;
std::map<ReplacementCacheKey, ReplacedTextureLevel> savedCache_;
#else
std::unordered_map<ReplacementCacheKey, ReplacedTexture> cache_;
std::unordered_map<ReplacementCacheKey, ReplacedTextureLevel> savedCache_;
#endif
};

View file

@ -139,9 +139,6 @@ bool GameManager::InstallGame(std::string zipfile, bool deleteAfter) {
int error;
#ifdef _WIN32
struct zip *z = zip_open(ConvertUTF8ToWString(zipfile).c_str(), 0, &error);
#elif defined(__SYMBIAN32__)
// If zipfile is non-ascii, this may not function correctly. Other options?
struct zip *z = zip_open(std::wstring(zipfile.begin(), zipfile.end()).c_str(), 0, &error);
#else
struct zip *z = zip_open(zipfile.c_str(), 0, &error);
#endif

View file

@ -37,11 +37,6 @@ win32 {
HEADERS += $$P/Common/stdafx.h
}
!symbian {
SOURCES += $$P/Common/MemArena.cpp
HEADERS += $$P/Common/MemArena.h
}
armv7: SOURCES += $$P/Common/ColorConvNEON.cpp
SOURCES += $$P/Common/ChunkFile.cpp \
@ -50,6 +45,7 @@ SOURCES += $$P/Common/ChunkFile.cpp \
$$P/Common/FileUtil.cpp \
$$P/Common/LogManager.cpp \
$$P/Common/KeyMap.cpp \
$$P/Common/MemArena.cpp \
$$P/Common/MemoryUtil.cpp \
$$P/Common/Misc.cpp \
$$P/Common/MsgHandler.cpp \
@ -62,6 +58,7 @@ HEADERS += $$P/Common/ChunkFile.h \
$$P/Common/FileUtil.h \
$$P/Common/LogManager.h \
$$P/Common/KeyMap.h \
$$P/Common/MemArena.h \
$$P/Common/MemoryUtil.h \
$$P/Common/MsgHandler.h \
$$P/Common/StringUtils.h \

View file

@ -4,8 +4,7 @@ TARGET = ppsspp
QT += core gui opengl
# PPSSPP Modules
symbian: LIBS += -lCore.lib -lGPU.lib -lCommon.lib -lNative.lib
else: LIBS += -lCore -lGPU -lCommon -lNative
LIBS += -lCore -lGPU -lCommon -lNative
include(Settings.pri)
@ -29,7 +28,6 @@ greaterThan(QT_MAJOR_VERSION,4) {
} else:!maemo5:mobile_platform {
CONFIG += mobility
MOBILITY += sensors
symbian: MOBILITY += systeminfo feedback
}
# External (platform-dependant) libs
@ -45,7 +43,7 @@ macx|equals(PLATFORM_NAME, "linux") {
}
}
!symbian:exists( /usr/include/GL/glew.h ) {
exists( /usr/include/GL/glew.h ) {
LIBS += -lGLEW
}
@ -74,10 +72,6 @@ unix:contains(QT_CONFIG, system-zlib) {
# Main
SOURCES += $$P/ext/native/base/QtMain.cpp
HEADERS += $$P/ext/native/base/QtMain.h
symbian {
SOURCES += $$P/ext/native/base/SymbianMediaKeys.cpp
HEADERS += $$P/ext/native/base/SymbianMediaKeys.h
}
# UI
SOURCES += $$P/UI/*.cpp \

View file

@ -1,8 +1,5 @@
PLATFORM_ARCH="generic"
# Override some bad defaults
symbian: QMAKE_TARGET.arch=armv6
contains(QT_ARCH, ".*86.*")|contains(QMAKE_TARGET.arch, ".*86.*") {
!win32-msvc*: QMAKE_ALLFLAGS += -msse2
else: QMAKE_ALLFLAGS += /arch:SSE2
@ -21,15 +18,12 @@ contains(QT_ARCH, ".*86.*")|contains(QMAKE_TARGET.arch, ".*86.*") {
CONFIG += arm
# Will need to see how QT_ARCH and QMAKE_TARGET.arch are populated for various ARM platforms.
symbian: PLATFORM_ARCH="armv6"
else {
PLATFORM_ARCH="armv7"
CONFIG += armv7
QMAKE_CFLAGS_RELEASE ~= s/-mfpu.*/
QMAKE_CFLAGS_DEBUG ~= s/-mfpu.*/
QMAKE_ALLFLAGS_DEBUG += -march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize
QMAKE_ALLFLAGS_RELEASE += -march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize
}
PLATFORM_ARCH="armv7"
CONFIG += armv7
QMAKE_CFLAGS_RELEASE ~= s/-mfpu.*/
QMAKE_CFLAGS_DEBUG ~= s/-mfpu.*/
QMAKE_ALLFLAGS_DEBUG += -march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize
QMAKE_ALLFLAGS_RELEASE += -march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize
# TODO: aarch32/64?
} else:contains(QT_ARCH, ".*mips.*") {
DEFINES += MIPS

View file

@ -11,7 +11,6 @@ unix: PLATFORM_NAME="linux"
mac: PLATFORM_NAME="macosx"
ios: PLATFORM_NAME="ios"
maemo: PLATFORM_NAME="maemo"
symbian: PLATFORM_NAME="symbian"
android: PLATFORM_NAME="android"
!equals(PLATFORM_NAME, "generic"): include($$PLATFORM_NAME".pri")

View file

@ -1,20 +0,0 @@
DEFINES += "BOOST_COMPILER_CONFIG=\"boost/mpl/aux_/config/gcc.hpp\""
QMAKE_CXXFLAGS += -marm -Wno-parentheses -Wno-comment -Wno-unused-local-typedefs
!contains(CONFIG, staticlib) {
# Executable
LIBS += -lremconcoreapi -lremconinterfacebase
# Packaging
TARGET.UID3 = 0xE0095B1D
DEPLOYMENT.display_name = PPSSPP
vendor_deploy.pkg_prerules = "%{\"Qtness\"}" ":\"Qtness\""
ICON = $$P/assets/icon.svg
DEPLOYMENT += vendor_deploy
MMP_RULES += "DEBUGGABLE"
# 268 MB maximum
TARGET.EPOCHEAPSIZE = 0x40000 0x10000000
TARGET.EPOCSTACKSIZE = 0x10000
}

View file

@ -42,14 +42,9 @@ include(Platform/OSDetection.pri)
}
# Work out the git version in a way that works on every QMake
symbian {
exists($$P/.git): GIT_VERSION = $$system(git describe --always)
isEmpty(GIT_VERSION): GIT_VERSION = $$VERSION
} else {
# QMake seems to change how it handles quotes with every version. This works for most systems:
exists($$P/.git): GIT_VERSION = '\\"$$system(git describe --always)\\"'
isEmpty(GIT_VERSION): GIT_VERSION = '\\"$$VERSION\\"'
}
# QMake seems to change how it handles quotes with every version. This works for most systems:
exists($$P/.git): GIT_VERSION = '\\"$$system(git describe --always)\\"'
isEmpty(GIT_VERSION): GIT_VERSION = '\\"$$VERSION\\"'
DEFINES += PPSSPP_GIT_VERSION=\"$$GIT_VERSION\"
# Optimisations
@ -67,11 +62,6 @@ win32-msvc* {
QMAKE_ALLFLAGS_RELEASE += -O3 -ffast-math
}
symbian {
# Silence a common warning in system headers.
QMAKE_CXXFLAGS += -Wno-address
}
contains(QT_CONFIG, opengles.) {
DEFINES += USING_GLES2
# How else do we know if the environment prefers windows?

View file

@ -41,10 +41,6 @@
#include "Core/Config.h"
#include "UI/GameInfoCache.h"
#ifdef __SYMBIAN32__
#define unique_ptr auto_ptr
#endif
GameInfoCache *g_gameInfoCache;
GameInfo::~GameInfo() {

View file

@ -52,7 +52,7 @@ enum GameInfoWantFlags {
GAMEINFO_WANTSND = 0x04,
};
// TODO: Need to fix c++11 still on Symbian and use std::atomic<bool> instead.
// TODO: Need to use std::atomic<bool> instead.
class CompletionFlag {
public:
CompletionFlag() : pending(1) {

View file

@ -455,9 +455,9 @@ void GameSettingsScreen::CreateViews() {
comboKey->OnClick.Handle(this, &GameSettingsScreen::OnCombo_key);
comboKey->SetEnabledPtr(&g_Config.bShowTouchControls);
// On systems that aren't Symbian, iOS, and Maemo, offer to let the user see this button.
// On systems that aren't iOS and Maemo, offer to let the user see this button.
// Some Windows touch devices don't have a back button or other button to call up the menu.
#if !defined(__SYMBIAN32__) && !defined(IOS) && !defined(MAEMO)
#if !defined(IOS) && !defined(MAEMO)
CheckBox *enablePauseBtn = controlsSettings->Add(new CheckBox(&g_Config.bShowTouchPause, co->T("Show Touch Pause Menu Button")));
// Don't allow the user to disable it once in-game, so they can't lock themselves out of the menu.

View file

@ -616,7 +616,7 @@ UI::ViewGroup *CreatePadLayout(float xres, float yres, bool *pause) {
const int roundImage = g_Config.iTouchButtonStyle ? I_ROUND_LINE : I_ROUND;
// These platforms always need the pause menu button to be shown.
#if defined(__SYMBIAN32__) || defined(IOS) || defined(MAEMO)
#if defined(IOS) || defined(MAEMO)
root->Add(new BoolButton(pause, roundImage, I_ARROW, 1.0f, new AnchorLayoutParams(halfW, 20, NONE, NONE, true)))->SetAngle(90);
#endif
@ -628,7 +628,7 @@ UI::ViewGroup *CreatePadLayout(float xres, float yres, bool *pause) {
const int stickBg = g_Config.iTouchButtonStyle ? I_STICK_BG_LINE : I_STICK_BG;
static const int comboKeyImages[5] = { I_1, I_2, I_3, I_4, I_5 };
#if !defined(__SYMBIAN32__) && !defined(IOS) && !defined(MAEMO)
#if !defined(IOS) && !defined(MAEMO)
if (g_Config.bShowTouchPause)
root->Add(new BoolButton(pause, roundImage, I_ARROW, 1.0f, new AnchorLayoutParams(halfW, 20, NONE, NONE, true)))->SetAngle(90);
#endif

View file

@ -95,10 +95,6 @@
#include "Common/KeyMap.h"
#endif
#ifdef __SYMBIAN32__
#define unique_ptr auto_ptr
#endif
// The new UI framework, for initialization
static UI::Theme ui_theme;
@ -340,7 +336,7 @@ void NativeInit(int argc, const char *argv[], const char *savegame_dir, const ch
// most sense.
g_Config.memStickDirectory = std::string(external_dir) + "/";
g_Config.flash0Directory = std::string(external_dir) + "/flash0/";
#elif defined(__SYMBIAN32__) || defined(MAEMO) || defined(IOS)
#elif defined(MAEMO) || defined(IOS)
g_Config.memStickDirectory = user_data_path;
g_Config.flash0Directory = std::string(external_dir) + "/flash0/";
#elif !defined(_WIN32)
@ -450,7 +446,7 @@ void NativeInit(int argc, const char *argv[], const char *savegame_dir, const ch
if (g_Config.currentDirectory == "") {
#if defined(ANDROID)
g_Config.currentDirectory = external_dir;
#elif defined(__SYMBIAN32__) || defined(MAEMO) || defined(IOS) || defined(_WIN32)
#elif defined(MAEMO) || defined(IOS) || defined(_WIN32)
g_Config.currentDirectory = savegame_dir;
#else
if (getenv("HOME") != NULL)

View file

@ -42,7 +42,7 @@ inline float clamp(float f) {
Tilt TiltEventProcessor::NormalizeTilt(const Tilt &tilt){
// Normalise the accelerometer manually per-platform, to 'g'
#if defined(ANDROID) || defined(__SYMBIAN32__)
#if defined(ANDROID)
// Values are in metres per second. Divide by 9.8 to get 'g' value
float maxX = 9.8f, maxY = 9.8f;
#else

17
b.sh
View file

@ -1,15 +1,6 @@
#!/bin/bash
CMAKE=1
# Check Symbian NDK
if [ ! -z "$EPOCROOT" ]; then
QMAKE_ARGS="-spec symbian-sbsv2 ${QMAKE_ARGS}"
CMAKE=0
PACKAGE=1
MAKE_OPT="release-gcce ${MAKE_OPT}"
TARGET_OS=Symbian
fi
# Check arguments
while test $# -gt 0
do
@ -61,10 +52,6 @@ done
if [ ! -z "$TARGET_OS" ]; then
echo "Building for $TARGET_OS"
BUILD_DIR="$(tr [A-Z] [a-z] <<< build-"$TARGET_OS")"
# HACK (doesn't like shadowed dir)
if [ "$TARGET_OS" == "Symbian" ]; then
BUILD_DIR="Qt"
fi
else
echo "Building for native host."
if [ "$CMAKE" == "0" ]; then
@ -89,9 +76,7 @@ fi
make -j4 $MAKE_OPT
if [ "$PACKAGE" == "1" ]; then
if [ "$TARGET_OS" == "Symbian" ]; then
make sis
elif [ "$TARGET_OS" == "iOS" ]; then
if [ "$TARGET_OS" == "iOS" ]; then
xcodebuild -configuration Release
fi
fi

View file

@ -3,7 +3,7 @@
*
*/
// Qt 4.7+ / 5.0+ implementation of the framework.
// Currently supports: Android, Symbian, Maemo/Meego, Linux, Windows, Mac OSX
// Currently supports: Android, Maemo/Meego, Linux, Windows, Mac OSX
#include <QApplication>
#include <QUrl>
@ -20,11 +20,6 @@
#endif
#endif
#ifdef __SYMBIAN32__
#include <QSystemScreenSaver>
#include <QFeedbackHapticsEffect>
#include "SymbianMediaKeys.h"
#endif
#ifdef SDL
#include "SDL/SDLJoystick.h"
#include "SDL_audio.h"
@ -47,9 +42,7 @@ extern void mixaudio(void *userdata, Uint8 *stream, int len) {
std::string System_GetProperty(SystemProperty prop) {
switch (prop) {
case SYSPROP_NAME:
#ifdef __SYMBIAN32__
return "Qt:Symbian";
#elif defined(MAEMO)
#if defined(MAEMO)
return "Qt:Maemo";
#elif defined(ANDROID)
return "Qt:Android";
@ -76,9 +69,7 @@ int System_GetPropertyInt(SystemProperty prop) {
case SYSPROP_DISPLAY_REFRESH_RATE:
return 60000;
case SYSPROP_DEVICE_TYPE:
#ifdef __SYMBIAN32__
return DEVICE_TYPE_MOBILE;
#elif defined(MAEMO)
#if defined(MAEMO)
return DEVICE_TYPE_MOBILE;
#elif defined(ANDROID)
return DEVICE_TYPE_MOBILE;
@ -119,13 +110,6 @@ void Vibrate(int length_ms) {
length_ms = 50;
else if (length_ms == -2)
length_ms = 25;
// Symbian only for now
#if defined(__SYMBIAN32__)
QFeedbackHapticsEffect effect;
effect.setIntensity(0.8);
effect.setDuration(length_ms);
effect.start();
#endif
}
void LaunchBrowser(const char *url)
@ -136,9 +120,7 @@ void LaunchBrowser(const char *url)
float CalculateDPIScale()
{
// Sane default rather than check DPI
#ifdef __SYMBIAN32__
return 1.4f;
#elif defined(USING_GLES2)
#if defined(USING_GLES2)
return 1.2f;
#else
return 1.0f;
@ -154,11 +136,7 @@ static int mainInternal(QApplication &a)
#endif
EnableFZ();
// Disable screensaver
#ifdef __SYMBIAN32__
QSystemScreenSaver ssObject(emugl);
ssObject.setScreenSaverInhibit();
QScopedPointer<SymbianMediaKeys> mediakeys(new SymbianMediaKeys());
#elif defined(QT_HAS_SYSTEMINFO)
#if defined(QT_HAS_SYSTEMINFO)
QScreenSaver ssObject(emugl);
ssObject.setScreenSaverEnabled(false);
#endif
@ -473,9 +451,6 @@ int main(int argc, char *argv[])
#if QT_VERSION > QT_VERSION_CHECK(5, 0, 0)
savegame_dir = QStandardPaths::writableLocation(QStandardPaths::HomeLocation).toStdString();
assets_dir = QStandardPaths::writableLocation(QStandardPaths::DataLocation).toStdString();
#elif defined(__SYMBIAN32__)
savegame_dir = "E:/PPSSPP";
assets_dir = "E:/PPSSPP";
#elif defined(MAEMO)
savegame_dir = "/home/user/MyDocs/PPSSPP";
assets_dir = "/opt/PPSSPP";

View file

@ -1,333 +0,0 @@
/*
* Copyright (c) 2013 Antti Pohjola
*
*/
//Adds mediakey support for Symbian (volume up/down)
#include <QApplication>
#include "SymbianMediaKeys.h"
#include "input/keycodes.h"
#include "input/input_state.h"
#include "base/NativeApp.h"
#define KTimeOut 80
SymbianMediaKeys::SymbianMediaKeys()
: CActive ( EPriorityNormal ){
CActiveScheduler::Add( this );
iInterfaceSelector = CRemConInterfaceSelector::NewL();
iRemConCore = CRemConCoreApiTarget::NewL(*iInterfaceSelector, *this);
iInterfaceSelector->OpenTargetL();
playtimer = new QTimer(this);
connect(playtimer, SIGNAL(timeout()), this, SLOT(playtimerexpired()));
stoptimer = new QTimer(this);
connect(stoptimer, SIGNAL(timeout()), this, SLOT(stoptimerexpired()));
forwardtimer = new QTimer(this);
connect(forwardtimer, SIGNAL(timeout()), this, SLOT(forwardtimerexpired()));
backwardtimer = new QTimer(this);
connect(backwardtimer, SIGNAL(timeout()), this, SLOT(backwardtimerexpired()));
voluptimer = new QTimer(this);
connect(voluptimer, SIGNAL(timeout()), this, SLOT(voluptimerexpired()));
voldowntimer = new QTimer(this);
connect(voldowntimer, SIGNAL(timeout()), this, SLOT(voldowntimerexpired()));
}
SymbianMediaKeys::~SymbianMediaKeys(){
delete iInterfaceSelector;
iRemConCore = NULL; //owned by interfaceselector
Cancel();
iResponseQ.Reset();
iResponseQ.Close();
}
void SymbianMediaKeys::subscribeKeyEvent(QObject* aObject ){
receiver = aObject;
}
/*
* it seems that it takes about 600ms to get an update after buttonpress
* */
void SymbianMediaKeys::MrccatoCommand(TRemConCoreApiOperationId aOperationId,TRemConCoreApiButtonAction aButtonAct){
TRequestStatus status;
switch( aOperationId ){
case ERemConCoreApiPausePlayFunction:
{
switch (aButtonAct){
case ERemConCoreApiButtonPress:
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_MEDIA_PLAY_PAUSE, KEY_DOWN));
break;
case ERemConCoreApiButtonRelease:
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_MEDIA_PLAY_PAUSE, KEY_UP));
break;
case ERemConCoreApiButtonClick:
playtimer->start(KTimeOut);
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_MEDIA_PLAY_PAUSE, KEY_DOWN));
break;
default:
// Play/Pause unknown action
break;
}
break;
}
case ERemConCoreApiStop:
{
switch (aButtonAct){
case ERemConCoreApiButtonPress:
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_MEDIA_STOP, KEY_DOWN));
break;
case ERemConCoreApiButtonRelease:
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_MEDIA_STOP, KEY_UP));
break;
case ERemConCoreApiButtonClick:
stoptimer->start(KTimeOut);
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_MEDIA_STOP, KEY_DOWN));
break;
default:
break;
}
break;
}
case ERemConCoreApiRewind:
{
switch (aButtonAct){
case ERemConCoreApiButtonPress:
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_MEDIA_PREVIOUS, KEY_DOWN));
break;
case ERemConCoreApiButtonRelease:
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_MEDIA_PREVIOUS, KEY_UP));
break;
case ERemConCoreApiButtonClick:
backwardtimer->start(KTimeOut);
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_MEDIA_PREVIOUS, KEY_DOWN));
default:
break;
}
break;
}
case ERemConCoreApiFastForward:
{
switch (aButtonAct){
case ERemConCoreApiButtonPress:
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_MEDIA_NEXT, KEY_DOWN));
break;
case ERemConCoreApiButtonRelease:
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_MEDIA_NEXT, KEY_UP));
break;
case ERemConCoreApiButtonClick:
forwardtimer->start(KTimeOut);
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_MEDIA_NEXT, KEY_DOWN));
default:
break;
}
break;
}
case ERemConCoreApiVolumeUp:
{
switch (aButtonAct){
case ERemConCoreApiButtonPress:
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_VOLUME_UP, KEY_DOWN));
break;
case ERemConCoreApiButtonRelease:
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_VOLUME_UP, KEY_UP));
break;
case ERemConCoreApiButtonClick:
voluptimer->start(KTimeOut);
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_VOLUME_UP, KEY_DOWN));
default:
break;
}
break;
}
case ERemConCoreApiVolumeDown:
{
switch (aButtonAct){
case ERemConCoreApiButtonPress:
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_VOLUME_DOWN, KEY_DOWN));
break;
case ERemConCoreApiButtonRelease:
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_VOLUME_DOWN, KEY_UP));
break;
case ERemConCoreApiButtonClick:
voldowntimer->start(KTimeOut);
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_VOLUME_DOWN, KEY_DOWN));
default:
break;
}
break;
}
case ERemConCoreApiBackward:
{
switch (aButtonAct)
{
case ERemConCoreApiButtonPress:
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_MEDIA_PREVIOUS, KEY_DOWN));
break;
case ERemConCoreApiButtonRelease:
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_MEDIA_PREVIOUS, KEY_UP));
break;
case ERemConCoreApiButtonClick:
backwardtimer->start(KTimeOut);
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_MEDIA_PREVIOUS, KEY_DOWN));
default:
break;
}
break;
}
case ERemConCoreApiForward:
{
switch (aButtonAct)
{
case ERemConCoreApiButtonPress:
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_MEDIA_NEXT, KEY_DOWN));
break;
case ERemConCoreApiButtonRelease:
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_MEDIA_NEXT, KEY_UP));
break;
case ERemConCoreApiButtonClick:
forwardtimer->start(KTimeOut);
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_MEDIA_NEXT, KEY_DOWN));
default:
break;
}
break;
}
default:
break;
}
//complete key event
CompleteMediaKeyEvent( aOperationId );
}
void SymbianMediaKeys::MrccatoPlay(TRemConCoreApiPlaybackSpeed aSpeed,TRemConCoreApiButtonAction aButtonAct){
}
void SymbianMediaKeys::MrccatoTuneFunction(TBool aTwoPart, TUint aMajorChannel,TUint aMinorChannel,TRemConCoreApiButtonAction aButtonAct){
}
void SymbianMediaKeys::MrccatoSelectDiskFunction(TUint aDisk, TRemConCoreApiButtonAction aButtonAct){
}
void SymbianMediaKeys::MrccatoSelectAvInputFunction(TUint8 aAvInputSignalNumber,TRemConCoreApiButtonAction aButtonAct){
}
void SymbianMediaKeys::MrccatoSelectAudioInputFunction(TUint8 aAudioInputSignalNumber,TRemConCoreApiButtonAction aButtonAct){
}
void SymbianMediaKeys::CompleteMediaKeyEvent( TRemConCoreApiOperationId aOperationId ){
if( !IsActive() ){
switch ( aOperationId )
{
case ERemConCoreApiVolumeUp:
{
iRemConCore->VolumeUpResponse( iStatus, KErrNone );
SetActive();
break;
}
case ERemConCoreApiVolumeDown:
{
iRemConCore->VolumeDownResponse( iStatus, KErrNone );
SetActive();
break;
}
case ERemConCoreApiPlay:
{
iRemConCore-> PlayResponse(iStatus, KErrNone);
SetActive();
break;
}
case ERemConCoreApiStop:
{
iRemConCore->StopResponse(iStatus, KErrNone);
SetActive();
break;
}
case ERemConCoreApiPause:
{
iRemConCore->PauseResponse(iStatus, KErrNone);
SetActive();
break;
}
case ERemConCoreApiRewind:
{
iRemConCore->RewindResponse(iStatus, KErrNone);
SetActive();
break;
}
case ERemConCoreApiFastForward:
{
iRemConCore->FastForwardResponse(iStatus, KErrNone);
SetActive();
break;
}
case ERemConCoreApiForward:
{
iRemConCore->ForwardResponse( iStatus, KErrNone );
SetActive();
break;
}
case ERemConCoreApiBackward:
{
iRemConCore->BackwardResponse(iStatus, KErrNone );
SetActive();
break;
}
default:
break;
}
}
else{
//active, append to queue
iResponseQ.Append( aOperationId );
}
}
void SymbianMediaKeys::RunL(){
if ( iResponseQ.Count() ){
CompleteMediaKeyEvent( iResponseQ[0] );
//remove old response from que
iResponseQ.Remove(0);
iResponseQ.Compress();
}
}
void SymbianMediaKeys::DoCancel(){
}
void SymbianMediaKeys::playtimerexpired(){
playtimer->stop();
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_MEDIA_PLAY_PAUSE, KEY_UP));
}
void SymbianMediaKeys::stoptimerexpired(){
stoptimer->stop();
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_MEDIA_STOP, KEY_UP));
}
void SymbianMediaKeys::forwardtimerexpired(){
forwardtimer->stop();
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_MEDIA_NEXT, KEY_UP));
}
void SymbianMediaKeys::backwardtimerexpired(){
backwardtimer->stop();
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_MEDIA_PREVIOUS, KEY_UP));
}
void SymbianMediaKeys::voluptimerexpired(){
voluptimer->stop();
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_VOLUME_UP, KEY_UP));
}
void SymbianMediaKeys::voldowntimerexpired(){
voldowntimer->stop();
NativeKey(KeyInput(DEVICE_ID_KEYBOARD, NKCODE_VOLUME_DOWN, KEY_UP));
}

View file

@ -1,70 +0,0 @@
/*
* Copyright (c) 2013 Antti Pohjola
*
*/
//Adds mediakey support for Symbian (volume up/down)
#ifndef SYMBIANMEDIAKEYS_H_
#define SYMBIANMEDIAKEYS_H_
#include <QObject>
#include <QTimer>
#include <e32base.h>
#include <remconcoreapitargetobserver.h> // link against RemConCoreApi.lib
#include <remconcoreapitarget.h> // and
#include <remconinterfaceselector.h> // RemConInterfaceBase.lib
class SymbianMediaKeys: public QObject, public CActive, public MRemConCoreApiTargetObserver
{
Q_OBJECT
public:
SymbianMediaKeys();
virtual ~SymbianMediaKeys();
public:
void subscribeKeyEvent(QObject* aObject );
public: //From MRemConCoreApiTargetObserver
void MrccatoCommand(TRemConCoreApiOperationId aOperationId,TRemConCoreApiButtonAction aButtonAct);
void MrccatoPlay(TRemConCoreApiPlaybackSpeed aSpeed,TRemConCoreApiButtonAction aButtonAct);
void MrccatoTuneFunction(TBool aTwoPart,TUint aMajorChannel,TUint aMinorChannel,TRemConCoreApiButtonAction aButtonAct);
void MrccatoSelectDiskFunction(TUint aDisk,TRemConCoreApiButtonAction aButtonAct);
void MrccatoSelectAvInputFunction(TUint8 aAvInputSignalNumber,TRemConCoreApiButtonAction aButtonAct);
void MrccatoSelectAudioInputFunction(TUint8 aAudioInputSignalNumber,TRemConCoreApiButtonAction aButtonAct);
private:
void CompleteMediaKeyEvent( TRemConCoreApiOperationId aOperationId );
void RunL();
void DoCancel();
public slots:
void playtimerexpired();
void stoptimerexpired();
void forwardtimerexpired();
void backwardtimerexpired();
void voluptimerexpired();
void voldowntimerexpired();
private:
RArray<TRemConCoreApiOperationId> iResponseQ; //response queue
CRemConCoreApiTarget* iRemConCore; //the controller
CRemConInterfaceSelector* iInterfaceSelector;
QObject* receiver;
QTimer* playtimer;
QTimer* stoptimer;
QTimer* forwardtimer;
QTimer* backwardtimer;
QTimer* voluptimer;
QTimer* voldowntimer;
};
#endif /* SYMBIANMEDIAKEYS_H_ */

View file

@ -6,30 +6,16 @@
#pragma once
#include <functional>
#ifdef __SYMBIAN32__
#include <boost/function.hpp>
#include <boost/bind.hpp>
#include <boost/weak_ptr.hpp>
#else
#include <memory>
#endif
#include <vector>
#if defined(__SYMBIAN32__) || defined(MACGNUSTD)
#ifndef __SYMBIAN32__
#if defined(MACGNUSTD)
#include <tr1/functional>
#include <tr1/memory>
#endif
namespace std {
#ifdef __SYMBIAN32__
using boost::bind;
using boost::function;
using boost::shared_ptr;
#else
using tr1::bind;
using tr1::function;
using tr1::shared_ptr;
#endif
template <typename T>
inline shared_ptr<T> make_shared()
@ -45,9 +31,5 @@ namespace std {
}
#endif
#ifdef __SYMBIAN32__
#define placeholder
#else
namespace placeholder = std::placeholders;
#endif

View file

@ -68,18 +68,6 @@ void OutputDebugStringUTF8(const char *p);
#define MessageBox(a, b, c, d) __android_log_print(ANDROID_LOG_INFO, APP_NAME, "%s %s", (b), (c));
#elif defined(__SYMBIAN32__)
#include <QDebug>
#ifdef _DEBUG
#define DLOG(...) { qDebug(__VA_ARGS__);}
#else
#define DLOG(...)
#endif
#define ILOG(...) { qDebug(__VA_ARGS__);}
#define WLOG(...) { qDebug(__VA_ARGS__);}
#define ELOG(...) { qDebug(__VA_ARGS__);}
#define FLOG(...) { qDebug(__VA_ARGS__); Crash();}
#else
#ifdef _WIN32

View file

@ -59,14 +59,6 @@ extern "C" {
#include <stdio.h>
#include <time.h>
#ifdef __SYMBIAN32__
#define _stat stat
#define _wcsdup wcsdup
#define _wfopen wfopen
#define _wremove wremove
#define _wstat wstat
#endif
/* flags for zip_open */

View file

@ -29,23 +29,6 @@
#define stat64 stat
#endif
// Hack
#ifdef __SYMBIAN32__
static inline int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result) {
struct dirent *readdir_entry;
readdir_entry = readdir(dirp);
if (readdir_entry == NULL) {
*result = NULL;
return errno;
}
*entry = *readdir_entry;
*result = entry;
return 0;
}
#endif
FILE *openCFile(const std::string &filename, const char *mode)
{
#if defined(_WIN32) && defined(UNICODE)

View file

@ -10,9 +10,6 @@
#include <sys/types.h>
#include <sys/vfs.h>
#define statvfs statfs
#elif defined(__SYMBIAN32__)
#include <mw/QSystemStorageInfo>
QTM_USE_NAMESPACE
#else
#include <sys/statvfs.h>
#endif
@ -31,10 +28,6 @@ bool free_disk_space(const std::string &dir, uint64_t &space) {
space = free.QuadPart;
return true;
}
#elif defined(__SYMBIAN32__)
QSystemStorageInfo storageInfo;
space = (uint64_t)storageInfo.availableDiskSpace("E");
return true;
#else
struct statvfs diskstat;
int res = statvfs(dir.c_str(), &diskstat);
@ -53,4 +46,4 @@ bool free_disk_space(const std::string &dir, uint64_t &space) {
// We can't know how much is free.
return false;
}
}

View file

@ -75,7 +75,7 @@ GLSLProgram *glsl_create_source(const char *vshader_src, const char *fshader_src
}
// Not wanting to change ReadLocalFile semantics.
// Needs to use delete [], not delete like auto_ptr, and can't use unique_ptr because of Symbian.
// TODO: Use C++11 unique_ptr, remove delete[]
struct AutoCharArrayBuf {
AutoCharArrayBuf(char *buf = nullptr) : buf_(buf) {
}

View file

@ -1,11 +1,8 @@
#include "math/math_util.h"
#include <stdlib.h>
#ifdef __SYMBIAN32__
#include <e32std.h>
#endif
// QNX can only use RunFast mode and it is already the default.
#if defined(__ARM_ARCH_7A__) && !defined(__SYMBIAN32__)
#if defined(__ARM_ARCH_7A__)
// Enables 'RunFast' VFP mode.
void EnableFZ() {
int x;
@ -39,10 +36,6 @@ void FPU_SetFastMode() {
#else
void EnableFZ() {
#ifdef __SYMBIAN32__
// Set RunFast hardware mode for Symbian VFPv2.
User::SetFloatingPointMode(EFpModeRunFast);
#endif
// TODO
}

View file

@ -5,7 +5,7 @@
#define GCC_VER(x,y,z) ((x) * 10000 + (y) * 100 + (z))
#define GCC_VERSION GCC_VER(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__)
#if GCC_VERSION >= GCC_VER(4,4,0) && __GXX_EXPERIMENTAL_CXX0X__ && !defined(ANDROID) && !defined(__SYMBIAN32__)
#if GCC_VERSION >= GCC_VER(4,4,0) && __GXX_EXPERIMENTAL_CXX0X__ && !defined(ANDROID)
// GCC 4.4 provides <thread>
#ifndef _GLIBCXX_USE_SCHED_YIELD
#define _GLIBCXX_USE_SCHED_YIELD

View file

@ -25,10 +25,6 @@
#undef small
#ifdef __SYMBIAN32__
#define unique_ptr auto_ptr
#endif
struct KeyInput;
struct TouchInput;
struct AxisInput;

View file

@ -358,8 +358,7 @@ int main(int argc, const char* argv[])
InitSysDirectories();
#endif
#if defined(ANDROID) || defined(__SYMBIAN32__)
#elif !defined(_WIN32)
#if !defined(ANDROID) && !defined(_WIN32)
g_Config.memStickDirectory = std::string(getenv("HOME")) + "/.ppsspp/";
#endif