2012-12-13 06:38:33 +00:00
|
|
|
/*
|
|
|
|
* Copyright (c) 2012 Sacha Refshauge
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
// Qt implementation of the framework.
|
2012-12-23 07:47:52 +00:00
|
|
|
// Currently supports: Symbian, Blackberry, Linux
|
2012-12-13 06:38:33 +00:00
|
|
|
|
|
|
|
#include <QtGui/QApplication>
|
|
|
|
#include <QUrl>
|
|
|
|
#include <QDesktopWidget>
|
|
|
|
#include <QDesktopServices>
|
|
|
|
|
|
|
|
#ifdef __SYMBIAN32__
|
|
|
|
#include <AknAppUi.h>
|
|
|
|
#endif
|
|
|
|
#include "QtMain.h"
|
|
|
|
|
|
|
|
void LaunchBrowser(const char *url)
|
|
|
|
{
|
|
|
|
QDesktopServices::openUrl(QUrl(url));
|
|
|
|
}
|
|
|
|
|
2013-01-10 08:06:11 +00:00
|
|
|
void SimulateGamepad(InputState *input) {
|
|
|
|
input->pad_lstick_x = 0;
|
|
|
|
input->pad_lstick_y = 0;
|
|
|
|
input->pad_rstick_x = 0;
|
|
|
|
input->pad_rstick_y = 0;
|
|
|
|
|
2013-01-10 10:25:10 +00:00
|
|
|
if (input->pad_buttons & (1<<14))
|
2013-01-10 08:06:11 +00:00
|
|
|
input->pad_lstick_y=1;
|
2013-01-10 10:25:10 +00:00
|
|
|
else if (input->pad_buttons & (1<<15))
|
2013-01-10 08:06:11 +00:00
|
|
|
input->pad_lstick_y=-1;
|
2013-01-10 10:25:10 +00:00
|
|
|
if (input->pad_buttons & (1<<16))
|
2013-01-10 08:06:11 +00:00
|
|
|
input->pad_lstick_x=-1;
|
2013-01-10 10:25:10 +00:00
|
|
|
else if (input->pad_buttons & (1<<17))
|
2013-01-10 08:06:11 +00:00
|
|
|
input->pad_lstick_x=1;
|
|
|
|
}
|
|
|
|
|
2012-12-13 07:05:12 +00:00
|
|
|
float CalculateDPIScale()
|
|
|
|
{
|
|
|
|
// Calculate DPI from TWIPS on Symbian
|
|
|
|
#ifdef __SYMBIAN32__
|
2013-01-10 08:06:11 +00:00
|
|
|
TSize sTwips = CEikonEnv::Static()->ScreenDevice()->SizeInTwips();
|
2012-12-13 07:05:12 +00:00
|
|
|
float dpi = sqrt((float)(pixel_xres*pixel_xres + pixel_yres*pixel_yres))
|
2013-01-10 08:06:11 +00:00
|
|
|
/ (sqrt((float)(sTwips.iHeight*sTwips.iHeight + sTwips.iWidth*sTwips.iWidth)) / KTwipsPerInch);
|
2012-12-13 07:05:12 +00:00
|
|
|
return dpi / 170.0f;
|
2012-12-16 09:47:51 +00:00
|
|
|
#else
|
2013-01-10 08:06:11 +00:00
|
|
|
// Sane default for Blackberry and Meego
|
2012-12-16 09:47:51 +00:00
|
|
|
return 1.2f;
|
2012-12-13 07:05:12 +00:00
|
|
|
#endif
|
|
|
|
}
|
|
|
|
|
2012-12-13 06:38:33 +00:00
|
|
|
int main(int argc, char *argv[])
|
|
|
|
{
|
|
|
|
QApplication a(argc, argv);
|
|
|
|
// Lock orientation to landscape on Symbian
|
|
|
|
#ifdef __SYMBIAN32__
|
|
|
|
QT_TRAP_THROWING(dynamic_cast<CAknAppUi*>(CEikonEnv::Static()->AppUi())->SetOrientationL(CAknAppUi::EAppUiOrientationLandscape));
|
|
|
|
#endif
|
|
|
|
QSize res = QApplication::desktop()->screenGeometry().size();
|
2013-01-10 08:06:11 +00:00
|
|
|
#ifdef USING_GLES2
|
2012-12-13 06:38:33 +00:00
|
|
|
if (res.width() < res.height())
|
|
|
|
res.transpose();
|
|
|
|
pixel_xres = res.width();
|
|
|
|
pixel_yres = res.height();
|
2013-01-10 08:06:11 +00:00
|
|
|
#else
|
|
|
|
// Set resolution to half of the monitor on desktop systems
|
|
|
|
pixel_xres = res.width() / 2;
|
|
|
|
pixel_yres = res.height() / 2;
|
|
|
|
#endif
|
2012-12-13 07:05:12 +00:00
|
|
|
float dpi_scale = CalculateDPIScale();
|
2012-12-13 06:38:33 +00:00
|
|
|
dp_xres = (int)(pixel_xres * dpi_scale); dp_yres = (int)(pixel_yres * dpi_scale);
|
2012-12-13 07:05:12 +00:00
|
|
|
net::Init();
|
2012-12-13 06:38:33 +00:00
|
|
|
#ifdef __SYMBIAN32__
|
2012-12-23 07:47:52 +00:00
|
|
|
NativeInit(argc, (const char **)argv, "E:/PPSSPP/", "E:", "BADCOFFEE");
|
|
|
|
#elif defined(BLACKBERRY)
|
|
|
|
NativeInit(argc, (const char **)argv, "data/", "/tmp", "BADCOFFEE");
|
2012-12-13 06:38:33 +00:00
|
|
|
#else
|
2012-12-23 07:47:52 +00:00
|
|
|
NativeInit(argc, (const char **)argv, "./", "/tmp", "BADCOFFEE");
|
2012-12-13 06:38:33 +00:00
|
|
|
#endif
|
2013-01-10 08:06:11 +00:00
|
|
|
|
2012-12-13 07:05:12 +00:00
|
|
|
MainUI w(dpi_scale);
|
2012-12-13 06:38:33 +00:00
|
|
|
w.resize(pixel_xres, pixel_yres);
|
2013-01-10 08:06:11 +00:00
|
|
|
#ifdef USING_GLES2
|
2012-12-13 06:38:33 +00:00
|
|
|
w.showFullScreen();
|
2013-01-10 08:06:11 +00:00
|
|
|
#else
|
|
|
|
w.show();
|
|
|
|
#endif
|
2012-12-16 09:47:51 +00:00
|
|
|
|
|
|
|
MainAudio *audio = new MainAudio();
|
|
|
|
|
2012-12-13 06:38:33 +00:00
|
|
|
int ret = a.exec();
|
2012-12-16 09:47:51 +00:00
|
|
|
delete audio;
|
2012-12-13 06:38:33 +00:00
|
|
|
NativeShutdown();
|
|
|
|
net::Shutdown();
|
|
|
|
return ret;
|
|
|
|
}
|
|
|
|
|