Merge pull request #185 from CatalystG/cascades

BB10 Cascades UI
This commit is contained in:
Squarepusher 2013-04-19 13:28:13 -07:00
commit 7c8ab66c30
28 changed files with 1053 additions and 24 deletions

View File

@ -0,0 +1,151 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?>
<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
<storageModule moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="com.qnx.qcc.toolChain.414809724">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.toolChain.414809724" moduleId="org.eclipse.cdt.core.settings" name="Device-Debug">
<externalSettings/>
<extensions>
<extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactName="${ProjName}" buildProperties="" description="" id="com.qnx.qcc.toolChain.414809724" name="Device-Debug" parent="org.eclipse.cdt.build.core.emptycfg">
<folderInfo id="com.qnx.qcc.toolChain.414809724.748301597" name="/" resourcePath="">
<toolChain id="com.qnx.qcc.toolChain.494081130" name="com.qnx.qcc.toolChain" superClass="com.qnx.qcc.toolChain">
<option id="com.qnx.qcc.option.os.317987501" name="Target OS:" superClass="com.qnx.qcc.option.os"/>
<option id="com.qnx.qcc.option.cpu.1681499148" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.armle-v7" valueType="enumerated"/>
<option id="com.qnx.qcc.option.compiler.669133629" name="Compiler:" superClass="com.qnx.qcc.option.compiler"/>
<option id="com.qnx.qcc.option.runtime.110549946" name="Runtime:" superClass="com.qnx.qcc.option.runtime"/>
<targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.2027315673" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
<builder autoBuildTarget="Device-Debug" enableAutoBuild="true" id="com.qnx.qcc.toolChain.414809724.1907527802" incrementalBuildTarget="Device-Debug" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" superClass="org.eclipse.cdt.build.core.settings.default.builder"/>
<tool id="com.qnx.qcc.tool.compiler.1147733376" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
<option id="com.qnx.qcc.option.compiler.optlevel.892006936" name="Optimization Level" superClass="com.qnx.qcc.option.compiler.optlevel" value="com.qnx.qcc.option.compiler.optlevel.0" valueType="enumerated"/>
<option id="com.qnx.qcc.option.compiler.includePath.648804544" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
<listOptionValue builtIn="false" value=""/>
</option>
<inputType id="com.qnx.qcc.inputType.compiler.1380205468" superClass="com.qnx.qcc.inputType.compiler"/>
</tool>
<tool id="com.qnx.qcc.tool.assembler.877192143" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
<inputType id="com.qnx.qcc.inputType.assembler.1283361903" superClass="com.qnx.qcc.inputType.assembler"/>
</tool>
<tool id="com.qnx.qcc.tool.linker.787059897" name="QCC Linker" superClass="com.qnx.qcc.tool.linker"/>
<tool id="com.qnx.qcc.tool.archiver.1074360033" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
</toolChain>
</folderInfo>
<sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
</sourceEntries>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
<cconfiguration id="com.qnx.qcc.toolChain.802312629">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.toolChain.802312629" moduleId="org.eclipse.cdt.core.settings" name="Device-Release">
<externalSettings/>
<extensions>
<extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactName="${ProjName}" buildProperties="" description="" id="com.qnx.qcc.toolChain.802312629" name="Device-Release" parent="org.eclipse.cdt.build.core.emptycfg">
<folderInfo id="com.qnx.qcc.toolChain.802312629.2121268128" name="/" resourcePath="">
<toolChain id="com.qnx.qcc.toolChain.1665491796" name="com.qnx.qcc.toolChain" superClass="com.qnx.qcc.toolChain">
<option id="com.qnx.qcc.option.os.690144348" name="Target OS:" superClass="com.qnx.qcc.option.os"/>
<option id="com.qnx.qcc.option.cpu.1530592596" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.armle-v7" valueType="enumerated"/>
<option id="com.qnx.qcc.option.compiler.2076959219" name="Compiler:" superClass="com.qnx.qcc.option.compiler"/>
<option id="com.qnx.qcc.option.runtime.99136040" name="Runtime:" superClass="com.qnx.qcc.option.runtime"/>
<targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.1355398824" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
<builder autoBuildTarget="Device-Release" enableAutoBuild="true" id="com.qnx.qcc.toolChain.802312629.1163625502" incrementalBuildTarget="Device-Release" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" superClass="org.eclipse.cdt.build.core.settings.default.builder"/>
<tool id="com.qnx.qcc.tool.compiler.328487697" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
<option id="com.qnx.qcc.option.compiler.optlevel.2044863902" name="Optimization Level" superClass="com.qnx.qcc.option.compiler.optlevel" value="com.qnx.qcc.option.compiler.optlevel.0" valueType="enumerated"/>
<option id="com.qnx.qcc.option.compiler.includePath.338882043" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
<listOptionValue builtIn="false" value=""/>
</option>
<inputType id="com.qnx.qcc.inputType.compiler.654111043" superClass="com.qnx.qcc.inputType.compiler"/>
</tool>
<tool id="com.qnx.qcc.tool.assembler.1149485049" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
<inputType id="com.qnx.qcc.inputType.assembler.1795878575" superClass="com.qnx.qcc.inputType.assembler"/>
</tool>
<tool id="com.qnx.qcc.tool.linker.642751169" name="QCC Linker" superClass="com.qnx.qcc.tool.linker"/>
<tool id="com.qnx.qcc.tool.archiver.1694580280" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
</toolChain>
</folderInfo>
<sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
</sourceEntries>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
<cconfiguration id="com.qnx.qcc.toolChain.1305277251">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.qnx.qcc.toolChain.1305277251" moduleId="org.eclipse.cdt.core.settings" name="Device-Profile">
<externalSettings/>
<extensions>
<extension id="com.qnx.tools.ide.qde.core.QDEBynaryParser" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactName="${ProjName}" buildProperties="" description="" id="com.qnx.qcc.toolChain.1305277251" name="Device-Profile" parent="org.eclipse.cdt.build.core.emptycfg">
<folderInfo id="com.qnx.qcc.toolChain.1305277251.410832586" name="/" resourcePath="">
<toolChain id="com.qnx.qcc.toolChain.1357024988" name="com.qnx.qcc.toolChain" superClass="com.qnx.qcc.toolChain">
<option id="com.qnx.qcc.option.os.638265752" name="Target OS:" superClass="com.qnx.qcc.option.os"/>
<option id="com.qnx.qcc.option.cpu.55068589" name="Target CPU:" superClass="com.qnx.qcc.option.cpu" value="com.qnx.qcc.option.gen.cpu.armle-v7" valueType="enumerated"/>
<option id="com.qnx.qcc.option.compiler.1829915230" name="Compiler:" superClass="com.qnx.qcc.option.compiler"/>
<option id="com.qnx.qcc.option.runtime.1415220474" name="Runtime:" superClass="com.qnx.qcc.option.runtime"/>
<targetPlatform archList="all" binaryParser="com.qnx.tools.ide.qde.core.QDEBynaryParser" id="com.qnx.qcc.targetPlatform.1664275345" osList="all" superClass="com.qnx.qcc.targetPlatform"/>
<builder autoBuildTarget="Device-Profile" enableAutoBuild="true" id="com.qnx.qcc.toolChain.1305277251.1788172497" incrementalBuildTarget="Device-Profile" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" superClass="org.eclipse.cdt.build.core.settings.default.builder"/>
<tool id="com.qnx.qcc.tool.compiler.1589772650" name="QCC Compiler" superClass="com.qnx.qcc.tool.compiler">
<option id="com.qnx.qcc.option.compiler.optlevel.657360321" name="Optimization Level" superClass="com.qnx.qcc.option.compiler.optlevel" value="com.qnx.qcc.option.compiler.optlevel.0" valueType="enumerated"/>
<option id="com.qnx.qcc.option.compiler.includePath.562881203" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
<listOptionValue builtIn="false" value=""/>
</option>
<inputType id="com.qnx.qcc.inputType.compiler.1900117338" superClass="com.qnx.qcc.inputType.compiler"/>
</tool>
<tool id="com.qnx.qcc.tool.assembler.1050656095" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler">
<inputType id="com.qnx.qcc.inputType.assembler.1704624842" superClass="com.qnx.qcc.inputType.assembler"/>
</tool>
<tool id="com.qnx.qcc.tool.linker.72689410" name="QCC Linker" superClass="com.qnx.qcc.tool.linker"/>
<tool id="com.qnx.qcc.tool.archiver.1815242815" name="QCC Archiver" superClass="com.qnx.qcc.tool.archiver"/>
</toolChain>
</folderInfo>
<sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
</sourceEntries>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<project id="helloforeignwindow.null.1735512392" name="helloforeignwindow"/>
</storageModule>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.909118143">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.414809724">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.802312629">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="com.qnx.qcc.toolChain.1305277251">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.qnx.tools.ide.qde.managedbuilder.core.qccScannerInfo"/>
</scannerConfigBuildInfo>
</storageModule>
<storageModule moduleId="refreshScope" versionNumber="1">
<resource resourceType="PROJECT" workspacePath="/RetroArch-Cascades"/>
</storageModule>
</cproject>

View File

@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>RetroArch-Cascades</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
<arguments>
<dictionary>
<key>?name?</key>
<value></value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.append_environment</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.autoBuildTarget</key>
<value>Device-Debug</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.buildArguments</key>
<value></value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.buildCommand</key>
<value>make</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
<value>clean</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.contents</key>
<value>org.eclipse.cdt.make.core.activeConfigSettings</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.enableFullBuild</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.fullBuildTarget</key>
<value>Device-Debug</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.stopOnError</key>
<value>true</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
<value>true</value>
</dictionary>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
<triggers>full,incremental,</triggers>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.rim.tad.tools.qml.core.qmlFileBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.qnx.tools.bbt.xml.core.bbtXMLValidationBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.rim.tad.tools.wst.jsdt.core.jsNature</nature>
<nature>org.eclipse.cdt.core.cnature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
<nature>com.qnx.tools.ide.bbt.core.bbtnature</nature>
<nature>org.eclipse.cdt.core.ccnature</nature>
<nature>com.rim.tad.tools.qml.core.qmlNature</nature>
</natures>
</projectDescription>

View File

@ -0,0 +1,6 @@
QMAKE_TARGET = RetroArch-Cascades
PROJECT_DIR := $(dir $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)))
I18N_DIR := $(PROJECT_DIR)/translations
include mk/cs-base.mk

View File

@ -0,0 +1,25 @@
APP_NAME = RetroArch-Cascades
CONFIG += qt warn_on cascades10
LIBS += -lscreen -lbps -lOpenAL -lpng -lEGL -lGLESv2
LIBS += -lbbcascadespickers -lbbdata
DEFINES += HAVE_RGUI HAVE_NEON \
SINC_LOWER_QUALITY HAVE_RARCH_MAIN_IMPLEMENTATION \
HAVE_VID_CONTEXT HAVE_FBO HAVE_GRIFFIN __LIBRETRO__ \
HAVE_DYNAMIC HAVE_ZLIB __BLACKBERRY_QNX__ HAVE_OPENGLES \
PACKAGE_VERSION=\"0.9.8.4\" HAVE_OPENGLES2 HAVE_NULLINPUT \
HAVE_AL HAVE_THREADS WANT_MINIZ HAVE_OVERLAY HAVE_GLSL \
USING_GL20 HAVE_OPENGL __STDC_CONSTANT_MACROS HAVE_BB10
INCLUDEPATH += ../../../../RetroArch
QMAKE_CXXFLAGS +=
QMAKE_CFLAGS += -Wc,-std=gnu99 -marm -mfpu=neon
SOURCES += ../../../griffin/griffin.c \
../../../audio/sinc_neon.S \
../../../audio/utils_neon.S
include(config.pri)

View File

@ -0,0 +1,108 @@
import bb.cascades 1.0
import bb.cascades.pickers 1.0
Page {
actions: [
ActionItem {
title: "Play"
ActionBar.placement: ActionBarPlacement.OnBar
imageSource: "asset:///images/open.png"
onTriggered: {
if(RetroArch.rom == "" || RetroArch.core == "")
{
//Do something to focus on select rom box
}
else
{
RetroArch.startEmulator();
}
}
}
]
titleBar: TitleBar {
id: titleBar
title: "RetroArch"
}
Container {
horizontalAlignment: HorizontalAlignment.Fill
verticalAlignment: VerticalAlignment.Fill
rightPadding: 20
leftPadding: 20
layout: DockLayout {}
Container {
preferredWidth: 680
horizontalAlignment: HorizontalAlignment.Center
verticalAlignment: VerticalAlignment.Center
ImageView
{
horizontalAlignment: HorizontalAlignment.Center
imageSource: "asset:///images/icon.png"
preferredWidth: 200
preferredHeight: 200
}
DropDown
{
id: _core
objectName: "dropdown_core"
horizontalAlignment: HorizontalAlignment.Center
title: "Core Selection"
//Handled in C++
}
Container {
horizontalAlignment: HorizontalAlignment.Center
preferredWidth: 680
layout: StackLayout {
orientation: LayoutOrientation.LeftToRight
}
//I like the look as a textbox
DropDown
{
id: romName
verticalAlignment: VerticalAlignment.Center
horizontalAlignment: HorizontalAlignment.Center
preferredWidth: 600
enabled: false
title: if(picker.selectedFile)
picker.selectedFile
else
"Rom Selection"
}
ImageButton {
horizontalAlignment: HorizontalAlignment.Right
defaultImageSource: "asset:///images/file.png"
onClicked: {
picker.open();
}
}
}
}
}
attachedObjects: [
FilePicker {
id: picker
property string selectedFile
title: "Rom Selector"
filter: { RetroArch.romExtensions.split("|") }
type: FileType.Other
directories: ["/accounts/1000/shared/documents/roms"]
onFileSelected: {
RetroArch.rom = selectedFiles[0];
selectedFile = RetroArch.rom.substr(RetroArch.rom.lastIndexOf('/')+1);
picker.directories = [RetroArch.rom.substr(0, RetroArch.rom.lastIndexOf('/'))];
}
}
]
}

View File

@ -0,0 +1,42 @@
{
"snes9x_next_libretro.so":{
"display_name":"SNES / Super Famicom",
"supported_extensions":"*.smc|*.fig|*.sfc|*.gd3|*.gd7|*.dx2|*.bsx|*.swc",
"corename":"SNES9x Next",
"manufacturer":"Nintendo",
"systemname":"Super Nintendo Entertainment System",
"default_overlay":"app/native/overlays/snes-landscape.cfg"
},
"genesis_plus_gx_libretro.so":{
"display_name":"Sega (MS/GG/MD/CD)",
"supported_extensions":"*.md|*.smd|*.gen|*.sms|*.gg|*.sg|*.bin|*.cue|*.ios",
"corename":"Genesis Plus GX",
"manufacturer":"Sega",
"systemname":"Sega (Various)",
"default_overlay":"app/native/overlays/genesis6-landscape.cfg"
},
"vba_next_libretro.so":{
"display_name":"Game Boy Advance",
"supported_extensions":"*.gba",
"corename":"VBA Next",
"manufacturer":"Nintendo",
"systemname":"Game Boy Advance",
"default_overlay":"app/native/overlays/box-gba.cfg"
},
"pcsx_rearmed_libretro.so":{
"display_name":"PlayStation1",
"supported_extensions":"*.bin|*.cue|*.img|*.mdf|*.pbp|*.cbn|*.toc",
"corename":"PCSX ReARMed",
"manufacturer":"Sony",
"systemname":"PlayStation",
"default_overlay":"app/native/overlays/psx-landscape.cfg"
},
"fb_alpha_libretro.so":{
"display_name":"Arcade",
"supported_extensions":"*.zip|*.ZIP",
"corename":"Final Burn Alpha",
"manufacturer":"Various",
"systemname":"Arcade (various)",
"default_overlay":"app/native/overlays/snes-landscape.cfg"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 669 B

View File

@ -0,0 +1,11 @@
import bb.cascades 1.0
import bb.cascades.pickers 1.0
TabbedPane {
Tab {
MainMenu
{
}
}
}

View File

@ -0,0 +1,83 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<qnx xmlns="http://www.qnx.com/schemas/application/1.0">
<!-- BlackBerry 10 application descriptor file.
Specifies parameters for identifying, installing, and launching native applications on BlackBerry 10.
-->
<!-- A universally unique application identifier. Must be unique across all BlackBerry 10 applications.
Using a reverse DNS-style name as the id is recommended. (Eg. com.example.ExampleApplication.) Required. -->
<id>com.example.RetroArch</id>
<!-- The name that is displayed in the BlackBerry 10 application installer.
May have multiple values for each language. See samples or xsd schema file. Optional. -->
<name>RetroArch</name>
<!-- A string value of the format <0-999>.<0-999>.<0-999> that represents application version which can be used to check for application upgrade.
Values can also be 1-part or 2-part. It is not necessary to have a 3-part value.
An updated version of application must have a versionNumber value higher than the previous version. Required. -->
<versionNumber>1.0.0</versionNumber>
<!-- Fourth digit segment of the package version. First three segments are taken from the
<versionNumber> element. Must be an integer from 0 to 2^16-1 -->
<buildId>1</buildId>
<!-- Description, displayed in the BlackBerry 10 application installer.
May have multiple values for each language. See samples or xsd schema file. Optional. -->
<!-- Name of author which is used for signing. Must match the developer name of your development certificate. -->
<initialWindow>
<autoOrients>true</autoOrients>
<systemChrome>none</systemChrome>
<transparent>false</transparent>
</initialWindow>
<!-- The category where the application appears. Either core.games or core.media. -->
<category>core.games</category>
<configuration name="Device-Debug">
<platformArchitecture>armle-v7</platformArchitecture>
<asset path="arm/o.le-v7-g/RetroArch-Cascades" entry="true" type="Qnx/Elf">RetroArch-Cascades</asset>
</configuration>
<configuration name="Device-Release">
<entryPointType>Qnx/Cascades</entryPointType>
<platformArchitecture>armle-v7</platformArchitecture>
<asset path="arm/o.le-v7/RetroArch-Cascades.so" entry="true" type="Qnx/Elf">RetroArch-Cascades.so</asset>
</configuration>
<configuration name="Device-Profile">
<platformArchitecture>armle-v7</platformArchitecture>
<asset path="arm-p/o.le-v7-g/RetroArch-Cascades" entry="true" type="Qnx/Elf">RetroArch-Cascades</asset>
</configuration>
<!-- The icon for the application, which should be 114x114. -->
<icon>
<image></image>
<image>icon.png</image>
</icon>
<!-- The splash screen that will appear when your application is launching. -->
<splashScreens>
<image></image>
<image></image>
</splashScreens>
<!-- Application assets -->
<asset path="../../retroarch.cfg">retroarch.cfg</asset>
<asset path="lib">lib</asset>
<asset path="../../media/overlays">overlays</asset>
<asset path="assets">assets</asset>
<asset path="assets/images/icon.png">icon.png</asset>
<!-- Bright theme is used for this application. -->
<cascadesTheme>dark</cascadesTheme>
<!-- Request permission to execute native code. Required for native applications. -->
<permission system="true">run_native</permission>
<permission>access_shared</permission>
<env var="LD_LIBRARY_PATH" value="app/native/lib:/usr/lib/qt4/lib"/>
</qnx>

View File

@ -0,0 +1,46 @@
# Auto-generated by IDE. Changes by user will be lost!
BASEDIR = $$quote($$_PRO_FILE_PWD_)
device {
CONFIG(debug, debug|release) {
SOURCES += $$quote($$BASEDIR/src/RetroArch-Cascades.cpp) \
$$quote($$BASEDIR/src/main.cpp)
HEADERS += $$quote($$BASEDIR/src/RetroArch-Cascades.h)
}
CONFIG(release, debug|release) {
SOURCES += $$quote($$BASEDIR/src/RetroArch-Cascades.cpp) \
$$quote($$BASEDIR/src/main.cpp)
HEADERS += $$quote($$BASEDIR/src/RetroArch-Cascades.h)
}
}
simulator {
CONFIG(debug, debug|release) {
SOURCES += $$quote($$BASEDIR/src/RetroArch-Cascades.cpp) \
$$quote($$BASEDIR/src/main.cpp)
HEADERS += $$quote($$BASEDIR/src/RetroArch-Cascades.h)
}
}
INCLUDEPATH += $$quote($$BASEDIR/src)
CONFIG += precompile_header
PRECOMPILED_HEADER = $$quote($$BASEDIR/precompiled.h)
lupdate_inclusion {
SOURCES += $$quote($$BASEDIR/../assets/*.qml)
}
TRANSLATIONS = $$quote($${TARGET}.ts)

View File

@ -0,0 +1,2 @@
// This file is used to store precompiled headers.
// It is intentionally left blank. It is up to you to decide which headers should be included here.

View File

@ -0,0 +1,310 @@
/* Copyright (c) 2012 Research In Motion Limited.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "RetroArch-Cascades.h"
#include "general.h"
#include "conf/config_file.h"
#include "file.h"
#ifdef HAVE_RGUI
#include "frontend/menu/rgui.h"
#endif
#include <bb/cascades/AbsoluteLayoutProperties>
#include <bb/cascades/ForeignWindowControl>
#include <bb/cascades/AbstractPane>
#include <bb/cascades/QmlDocument>
#include <bb/cascades/Window>
#include <bb/cascades/pickers/FilePicker>
#include <bb/data/JsonDataAccess>
#include <screen/screen.h>
#include <bps/screen.h>
#include <bps/navigator.h>
#include <bps/bps.h>
#include <math.h>
#include <dirent.h>
#include <bb/cascades/DropDown>
using namespace bb::cascades;
using namespace bb::data;
//Use after calling findCores
#define GET_CORE_INFO(x, y) coreInfo[coreList[x]].toMap()[y].toString()
RetroArch::RetroArch()
{
qmlRegisterType<bb::cascades::pickers::FilePicker>("bb.cascades.pickers", 1, 0, "FilePicker");
qmlRegisterUncreatableType<bb::cascades::pickers::FileType>("bb.cascades.pickers", 1, 0, "FileType", "");
// Create channel to signal threads on
chid = ChannelCreate(0);
coid = ConnectAttach(0, 0, chid, _NTO_SIDE_CHANNEL, 0);
bool res = connect(
OrientationSupport::instance(), SIGNAL(rotationCompleted()),
this, SLOT(onRotationCompleted()));
rarch_main_clear_state();
strlcpy(g_settings.libretro, "app/native/lib", sizeof(g_settings.libretro));
coreSelectedIndex = -1;
QmlDocument *qml = QmlDocument::create("asset:///main.qml");
if (!qml->hasErrors())
{
qml->setContextProperty("RetroArch", this);
AbstractPane *mAppPane = qml->createRootObject<AbstractPane>();
if (mAppPane)
{
//Get core DropDown reference to populate it in C++
coreSelection = mAppPane->findChild<DropDown*>("dropdown_core");
connect(coreSelection, SIGNAL(selectedValueChanged(QVariant)), this, SLOT(onCoreSelected(QVariant)));
findCores();
Application::instance()->setScene(mAppPane);
// Start the thread in which we render to the custom window.
start();
}
}
}
RetroArch::~RetroArch()
{
free(coreList);
}
void RetroArch::aboutToQuit()
{
recv_msg msg;
msg.code = RETROARCH_EXIT;
MsgSend(coid, (void*)&msg, sizeof(msg), (void*)NULL, 0);
wait();
}
extern screen_window_t screen_win;
extern screen_context_t screen_ctx;
void RetroArch::run()
{
int rcvid = -1;
recv_msg msg;
while (true) {
rcvid = MsgReceive(chid, &msg, sizeof(msg), 0);
if (rcvid > 0)
{
switch (msg.code)
{
case RETROARCH_START_REQUESTED:
{
printf("RetroArch Started Received\n");fflush(stdout);
MsgReply(rcvid,0,NULL,0);
screen_create_context(&screen_ctx, 0);
bps_initialize();
if (screen_request_events(screen_ctx) != BPS_SUCCESS)
{
RARCH_ERR("screen_request_events failed.\n");
}
if (navigator_request_events(0) != BPS_SUCCESS)
{
RARCH_ERR("navigator_request_events failed.\n");
}
if (navigator_rotation_lock(false) != BPS_SUCCESS)
{
RARCH_ERR("navigator_location_lock failed.\n");
}
screen_create_window_type(&screen_win, screen_ctx, SCREEN_CHILD_WINDOW);
screen_join_window_group(screen_win, Application::instance()->mainWindow()->groupId().toAscii().constData());
char *win_id = "RetroArch_Emulator_Window";
screen_set_window_property_cv(screen_win, SCREEN_PROPERTY_ID_STRING, strlen(win_id), win_id);
int z = 10;
if (screen_set_window_property_iv(screen_win, SCREEN_PROPERTY_ZORDER, &z) != 0) {
return;
}
initRASettings();
rarch_main(0, NULL);
break;
}
case RETROARCH_EXIT:
MsgReply(rcvid,0,NULL,0);
goto exit;
default:
break;
}
}
}
exit:
return;
}
/*
* Properties
*/
QString RetroArch::getRom()
{
return rom;
}
void RetroArch::setRom(QString rom)
{
this->rom = rom;
}
QString RetroArch::getCore()
{
return core;
}
void RetroArch::setCore(QString core)
{
this->core = core;
}
QString RetroArch::getRomExtensions()
{
return romExtensions;
}
/*
* Slots
*/
void RetroArch::onRotationCompleted()
{
if (OrientationSupport::instance()->orientation() == UIOrientation::Landscape)
{
if (state == RETROARCH_START_REQUESTED)
{
startEmulator();
}
}
}
void RetroArch::onCoreSelected(QVariant value)
{
coreSelectedIndex = value.toInt();
core.clear();
core.append("app/native/lib/");
core.append(coreList[coreSelectedIndex]);
emit coreChanged(core);
romExtensions = GET_CORE_INFO(coreSelectedIndex, "supported_extensions");
emit romExtensionsChanged(romExtensions);
qDebug() << "Core Selected: " << core;
qDebug() << "Supported Extensions: " << romExtensions;
}
/*
* Functions
*/
void RetroArch::startEmulator()
{
state = RETROARCH_START_REQUESTED;
if (OrientationSupport::instance()->orientation() == UIOrientation::Portrait)
{
OrientationSupport::instance()->setSupportedDisplayOrientation(SupportedDisplayOrientation::DisplayLandscape);
}
else
{
recv_msg msg;
msg.code = RETROARCH_START_REQUESTED;
MsgSend(coid, (void*)&msg, sizeof(msg), (void*)NULL, 0);
state = RETROARCH_RUNNING;
}
}
void RetroArch::findCores()
{
DIR *dirp;
struct dirent* direntp;
int count=0, i=0;
dirp = opendir(g_settings.libretro);
if( dirp != NULL ) {
for(;;) {
direntp = readdir( dirp );
if( direntp == NULL ) break;
count++;
}
fflush(stdout);
rewinddir(dirp);
if(count==2){
printf("No Cores Found");fflush(stdout);
}
coreList = (char**)malloc(count*sizeof(char*));
count = 0;
for(;;){
direntp = readdir( dirp );
if( direntp == NULL ) break;
coreList[count++] = strdup((char*)direntp->d_name);
}
//Load info for Cores
JsonDataAccess jda;
coreInfo = jda.load("app/native/assets/coreInfo.json").toMap();
Option *tmp;
//Populate DropDown
for (i = 2; i < count; ++i)
{
qDebug() << GET_CORE_INFO(i, "display_name");
tmp = Option::create().text(GET_CORE_INFO(i, "display_name"))
.value(i);
coreSelection->add(tmp);
}
}
closedir(dirp);
}
void RetroArch::initRASettings()
{
strlcpy(g_settings.libretro,(char *)core.toAscii().constData(), sizeof(g_settings.libretro));
strlcpy(g_extern.fullpath, (char *)rom.toAscii().constData(), sizeof(g_extern.fullpath));
strlcpy(g_settings.input.overlay, GET_CORE_INFO(coreSelectedIndex, "default_overlay").toAscii().constData(), sizeof(g_settings.input.overlay));
}

View File

@ -0,0 +1,87 @@
#ifndef _RETROARCHCASCADES_H_
#define _RETROARCHCASCADES_H_
#include <bb/cascades/Application>
#include <bb/cascades/DropDown>
#include <bb/cascades/OrientationSupport>
#include <QThread>
#include <screen/screen.h>
#include <sys/neutrino.h>
using namespace bb::cascades;
namespace bb
{
namespace cascades
{
class Page;
}
}
class RetroArch: public QThread
{
Q_OBJECT
Q_PROPERTY(QString rom READ getRom WRITE setRom NOTIFY romChanged)
Q_PROPERTY(QString core READ getCore WRITE setCore NOTIFY coreChanged)
Q_PROPERTY(QString romExtensions READ getRomExtensions NOTIFY romExtensionsChanged)
public:
RetroArch();
~ RetroArch();
Q_INVOKABLE void startEmulator();
Q_INVOKABLE void findCores();
signals:
void romChanged(QString);
void coreChanged(QString);
void romExtensionsChanged(QString);
public slots:
void aboutToQuit();
void onRotationCompleted();
void onCoreSelected(QVariant);
private:
/**
* This QThread-run function runs the custom window rendering in a separate thread to avoid lag
* in the rest of the Cascades UI.
*/
void run();
QString rom;
QString getRom();
void setRom(QString rom);
QString core;
QString getCore();
void setCore(QString core);
QString romExtensions;
QString getRomExtensions();
void initRASettings();
int chid, coid;
int state;
DropDown *coreSelection;
QVariantMap coreInfo;
char **coreList;
int coreSelectedIndex;
};
enum {
RETROARCH_RUNNING,
RETROARCH_START_REQUESTED,
RETROARCH_EXIT
};
typedef union {
_pulse pulse;
int code;
} recv_msg;
#endif

View File

@ -0,0 +1,37 @@
/* Copyright (c) 2012 Research In Motion Limited.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "RetroArch-Cascades.h"
#include <Qt/qdeclarativedebug.h>
using ::bb::cascades::Application;
Q_DECL_EXPORT int main(int argc, char **argv)
{
// Instantiate the main application constructor.
Application app(argc, argv);
// Initialize our application.
RetroArch mainApp;
QObject::connect(&app, SIGNAL( aboutToQuit() ), &mainApp, SLOT( aboutToQuit() ));
// We complete the transaction started in the main application constructor and start the
// client event loop here. When loop is exited the Application deletes the scene which
// deletes all its children.
return Application::exec();
}

View File

@ -0,0 +1,12 @@
QMAKE_TARGET = RetroArch-Cascades
LUPDATE = $(QNX_HOST)/usr/bin/lupdate
LRELEASE = $(QNX_HOST)/usr/bin/lrelease
update: $(QMAKE_TARGET).pro FORCE
$(LUPDATE) $(QMAKE_TARGET).pro
release: $(QMAKE_TARGET).pro $(QMAKE_TARGET).ts
$(LRELEASE) $(QMAKE_TARGET).pro
FORCE:

View File

@ -0,0 +1 @@
include (../RetroArch-Cascades.pro)

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0">
</TS>

View File

@ -26,9 +26,9 @@
<option id="com.qnx.qcc.option.compiler.includePath.1389175009" name="Include Directories (-I)" superClass="com.qnx.qcc.option.compiler.includePath" valueType="includePath">
<listOptionValue builtIn="false" value="${QNX_TARGET}/usr/include/freetype2"/>
<listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/usr/include"/>
<listOptionValue builtIn="false" value="../../"/>
<listOptionValue builtIn="false" value="../../../"/>
</option>
<option id="com.qnx.qcc.option.compiler.security.209097800" name="Enhanced Security (-fstack-protector-all)" superClass="com.qnx.qcc.option.compiler.security" value="false" valueType="boolean"/>
<option id="com.qnx.qcc.option.compiler.security.209097800" name="Enhanced Security (-fstack-protector-strong)" superClass="com.qnx.qcc.option.compiler.security" value="false" valueType="boolean"/>
<option id="com.qnx.qcc.option.compiler.defines.1775248205" name="Defines (-D)" superClass="com.qnx.qcc.option.compiler.defines" valueType="definedSymbols">
<listOptionValue builtIn="false" value="_FORTIFY_SOURCE=2"/>
<listOptionValue builtIn="false" value="HAVE_RGUI"/>
@ -103,6 +103,12 @@
</option>
<inputType id="com.qnx.qcc.inputType.assembler.1753268163" superClass="com.qnx.qcc.inputType.assembler"/>
</tool>
<tool customBuildStep="true" id="org.eclipse.cdt.managedbuilder.ui.rcbs.1127783692" name="Resource Custom Build Step">
<inputType id="org.eclipse.cdt.managedbuilder.ui.rcbs.inputtype.702149481" name="Resource Custom Build Step Input Type">
<additionalInput kind="additionalinputdependency" paths=""/>
</inputType>
<outputType id="org.eclipse.cdt.managedbuilder.ui.rcbs.outputtype.100731813" name="Resource Custom Build Step Output Type"/>
</tool>
</fileInfo>
<fileInfo id="com.qnx.qcc.configuration.exe.debug.507133694.1992358048" name="utils_neon.S" rcbsApplicability="disable" resourcePath="src/utils_neon.S" toolsToInvoke="com.qnx.qcc.tool.assembler.722220103.552409735">
<tool id="com.qnx.qcc.tool.assembler.722220103.552409735" name="QCC Assembler" superClass="com.qnx.qcc.tool.assembler.722220103">
@ -143,7 +149,7 @@
<listOptionValue builtIn="false" value="${QNX_TARGET}/usr/include/freetype2"/>
<listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/usr/include"/>
</option>
<option id="com.qnx.qcc.option.compiler.security.421937377" name="Enhanced Security (-fstack-protector-all)" superClass="com.qnx.qcc.option.compiler.security" value="false" valueType="boolean"/>
<option id="com.qnx.qcc.option.compiler.security.421937377" name="Enhanced Security (-fstack-protector-strong)" superClass="com.qnx.qcc.option.compiler.security" value="false" valueType="boolean"/>
<option id="com.qnx.qcc.option.compiler.defines.426935293" name="Defines (-D)" superClass="com.qnx.qcc.option.compiler.defines" valueType="definedSymbols">
<listOptionValue builtIn="false" value="_FORTIFY_SOURCE=2"/>
<listOptionValue builtIn="false" value="HAVE_RGUI"/>
@ -259,7 +265,7 @@
<listOptionValue builtIn="false" value="${QNX_TARGET}/usr/include/freetype2"/>
<listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/usr/include"/>
</option>
<option id="com.qnx.qcc.option.compiler.security.1305803908" name="Enhanced Security (-fstack-protector-all)" superClass="com.qnx.qcc.option.compiler.security" value="true" valueType="boolean"/>
<option id="com.qnx.qcc.option.compiler.security.1305803908" name="Enhanced Security (-fstack-protector-strong)" superClass="com.qnx.qcc.option.compiler.security" value="true" valueType="boolean"/>
<option id="com.qnx.qcc.option.compiler.defines.213513124" name="Defines (-D)" superClass="com.qnx.qcc.option.compiler.defines" valueType="definedSymbols">
<listOptionValue builtIn="false" value="_FORTIFY_SOURCE=2"/>
<listOptionValue builtIn="false" value="HAVE_RGUI"/>
@ -376,7 +382,7 @@
<listOptionValue builtIn="false" value="${QNX_TARGET}/usr/include/freetype2"/>
<listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/usr/include"/>
</option>
<option id="com.qnx.qcc.option.compiler.security.521807592" name="Enhanced Security (-fstack-protector-all)" superClass="com.qnx.qcc.option.compiler.security" value="true" valueType="boolean"/>
<option id="com.qnx.qcc.option.compiler.security.521807592" name="Enhanced Security (-fstack-protector-strong)" superClass="com.qnx.qcc.option.compiler.security" value="true" valueType="boolean"/>
<option id="com.qnx.qcc.option.compiler.defines.1725725626" name="Defines (-D)" superClass="com.qnx.qcc.option.compiler.defines" valueType="definedSymbols">
<listOptionValue builtIn="false" value="_FORTIFY_SOURCE=2"/>
<listOptionValue builtIn="false" value="HAVE_RGUI"/>
@ -418,7 +424,7 @@
</tool>
<tool id="com.qnx.qcc.tool.linker.1942866882" name="QCC Linker" superClass="com.qnx.qcc.tool.linker">
<option id="com.qnx.qcc.option.linker.debug.790242117" name="Debug (-g)" superClass="com.qnx.qcc.option.linker.debug" value="true" valueType="boolean"/>
<option id="com.qnx.qcc.option.linker.coverage.73478781" name="Build for Code Coverage (-ftest-coverage -fprofile-arcs -p)" superClass="com.qnx.qcc.option.linker.coverage" value="true" valueType="boolean"/>
<option id="com.qnx.qcc.option.linker.coverage.73478781" name="Build for Code Coverage (-ftest-coverage -fprofile-arcs)" superClass="com.qnx.qcc.option.linker.coverage" value="true" valueType="boolean"/>
<option id="com.qnx.qcc.option.linker.libraries.1198094350" name="Libraries (-l)" superClass="com.qnx.qcc.option.linker.libraries" valueType="libs">
<listOptionValue builtIn="false" value="bps"/>
<listOptionValue builtIn="false" value="OpenAL"/>
@ -491,7 +497,7 @@
<listOptionValue builtIn="false" value="${QNX_TARGET}/usr/include/freetype2"/>
<listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/usr/include"/>
</option>
<option id="com.qnx.qcc.option.compiler.security.157472670" name="Enhanced Security (-fstack-protector-all)" superClass="com.qnx.qcc.option.compiler.security" value="true" valueType="boolean"/>
<option id="com.qnx.qcc.option.compiler.security.157472670" name="Enhanced Security (-fstack-protector-strong)" superClass="com.qnx.qcc.option.compiler.security" value="true" valueType="boolean"/>
<option id="com.qnx.qcc.option.compiler.defines.1166581028" name="Defines (-D)" superClass="com.qnx.qcc.option.compiler.defines" valueType="definedSymbols">
<listOptionValue builtIn="false" value="_FORTIFY_SOURCE=2"/>
<listOptionValue builtIn="false" value="HAVE_RGUI"/>
@ -606,7 +612,7 @@
<listOptionValue builtIn="false" value="${QNX_TARGET}/usr/include/freetype2"/>
<listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/usr/include"/>
</option>
<option id="com.qnx.qcc.option.compiler.security.817746405" name="Enhanced Security (-fstack-protector-all)" superClass="com.qnx.qcc.option.compiler.security" value="true" valueType="boolean"/>
<option id="com.qnx.qcc.option.compiler.security.817746405" name="Enhanced Security (-fstack-protector-strong)" superClass="com.qnx.qcc.option.compiler.security" value="true" valueType="boolean"/>
<option id="com.qnx.qcc.option.compiler.defines.431450507" name="Defines (-D)" superClass="com.qnx.qcc.option.compiler.defines" valueType="definedSymbols">
<listOptionValue builtIn="false" value="_FORTIFY_SOURCE=2"/>
<listOptionValue builtIn="false" value="HAVE_RGUI"/>
@ -722,7 +728,7 @@
<listOptionValue builtIn="false" value="${QNX_TARGET}/usr/include/freetype2"/>
<listOptionValue builtIn="false" value="${QNX_TARGET}/../target-override/usr/include"/>
</option>
<option id="com.qnx.qcc.option.compiler.security.733048683" name="Enhanced Security (-fstack-protector-all)" superClass="com.qnx.qcc.option.compiler.security" value="true" valueType="boolean"/>
<option id="com.qnx.qcc.option.compiler.security.733048683" name="Enhanced Security (-fstack-protector-strong)" superClass="com.qnx.qcc.option.compiler.security" value="true" valueType="boolean"/>
<option id="com.qnx.qcc.option.compiler.defines.252268326" name="Defines (-D)" superClass="com.qnx.qcc.option.compiler.defines" valueType="definedSymbols">
<listOptionValue builtIn="false" value="_FORTIFY_SOURCE=2"/>
<listOptionValue builtIn="false" value="HAVE_RGUI"/>
@ -764,7 +770,7 @@
</tool>
<tool id="com.qnx.qcc.tool.linker.551801963" name="QCC Linker" superClass="com.qnx.qcc.tool.linker">
<option id="com.qnx.qcc.option.linker.debug.1904146116" name="Debug (-g)" superClass="com.qnx.qcc.option.linker.debug" value="true" valueType="boolean"/>
<option id="com.qnx.qcc.option.linker.coverage.1717304216" name="Build for Code Coverage (-ftest-coverage -fprofile-arcs -p)" superClass="com.qnx.qcc.option.linker.coverage" value="true" valueType="boolean"/>
<option id="com.qnx.qcc.option.linker.coverage.1717304216" name="Build for Code Coverage (-ftest-coverage -fprofile-arcs)" superClass="com.qnx.qcc.option.linker.coverage" value="true" valueType="boolean"/>
<option id="com.qnx.qcc.option.linker.libraries.1222510627" name="Libraries (-l)" superClass="com.qnx.qcc.option.linker.libraries" valueType="libs">
<listOptionValue builtIn="false" value="bps"/>
<listOptionValue builtIn="false" value="OpenAL"/>

View File

@ -27,7 +27,7 @@
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.buildLocation</key>
<value>${workspace_loc:/CubeRotate/Device-Release}</value>
<value>${workspace_loc:/CubeRotate/Device-Debug}</value>
</dictionary>
<dictionary>
<key>org.eclipse.cdt.make.core.contents</key>
@ -77,17 +77,17 @@
<link>
<name>src/griffin.c</name>
<type>1</type>
<locationURI>PARENT-1-PROJECT_LOC/griffin/griffin.c</locationURI>
<locationURI>PARENT-2-PROJECT_LOC/griffin/griffin.c</locationURI>
</link>
<link>
<name>src/sinc_neon.S</name>
<type>1</type>
<locationURI>PARENT-1-PROJECT_LOC/audio/sinc_neon.S</locationURI>
<locationURI>PARENT-2-PROJECT_LOC/audio/sinc_neon.S</locationURI>
</link>
<link>
<name>src/utils_neon.S</name>
<type>1</type>
<locationURI>PARENT-1-PROJECT_LOC/audio/utils_neon.S</locationURI>
<locationURI>PARENT-2-PROJECT_LOC/audio/utils_neon.S</locationURI>
</link>
</linkedResources>
</projectDescription>

View File

@ -50,9 +50,9 @@
<!-- The category where the application appears. Either core.games or core.media. -->
<category>core.games</category>
<asset path="icon.png">icon.png</asset>
<asset path="test.so">lib/test.so</asset>
<asset path="../retroarch.cfg">retroarch.cfg</asset>
<asset path="../media/overlays">overlays</asset>
<asset path="lib">lib</asset>
<asset path="../../media/overlays">overlays</asset>
<asset path="../../retroarch.cfg">retroarch.cfg</asset>
<!-- <asset path="LICENSE">LICENSE</asset> -->
<!-- <asset path="NOTICE">NOTICE</asset> -->

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -13,8 +13,8 @@
* If not, see <http://www.gnu.org/licenses/>.
*/
#include "../general.h"
#include "../driver.h"
#include "../../general.h"
#include "../../driver.h"
#include <screen/screen.h>
#include <bps/event.h>
#include <bps/navigator.h>

View File

@ -26,13 +26,16 @@
int rarch_main(int argc, char *argv[])
{
//Initialize bps
#ifndef HAVE_BB10
bps_initialize();
rarch_main_clear_state();
strlcpy(g_extern.config_path, "app/native/retroarch.cfg", sizeof(g_extern.config_path));
strlcpy(g_settings.libretro, "app/native/lib", sizeof(g_settings.libretro));
strlcpy(g_extern.fullpath, "--menu", sizeof(g_extern.fullpath));
#endif
strlcpy(g_extern.config_path, "app/native/retroarch.cfg", sizeof(g_extern.config_path));
config_load();

View File

@ -45,7 +45,7 @@ static EGLConfig egl_config;
static bool g_resize;
screen_context_t screen_ctx;
static screen_window_t screen_win;
screen_window_t screen_win;
static screen_display_t screen_disp;
GLfloat _angle;
@ -209,6 +209,7 @@ static bool gfx_ctx_init(void)
goto error;
}
#ifndef HAVE_BB10
int angle = atoi(getenv("ORIENTATION"));
screen_display_mode_t screen_mode;
@ -219,7 +220,8 @@ static bool gfx_ctx_init(void)
}
int size[2];
if (screen_get_window_property_iv(screen_win, SCREEN_PROPERTY_BUFFER_SIZE, size)) {
if (screen_get_window_property_iv(screen_win, SCREEN_PROPERTY_BUFFER_SIZE, size))
{
RARCH_ERR("screen_get_window_property_iv [SCREEN_PROPERTY_BUFFER_SIZE] failed.\n");
goto error;
}
@ -243,6 +245,7 @@ static bool gfx_ctx_init(void)
goto error;
}
if (screen_set_window_property_iv(screen_win, SCREEN_PROPERTY_BUFFER_SIZE, buffer_size))
{
RARCH_ERR("screen_set_window_property_iv [SCREEN_PROPERTY_BUFFER_SIZE] failed.\n");
@ -254,6 +257,7 @@ static bool gfx_ctx_init(void)
RARCH_ERR("screen_set_window_property_iv [SCREEN_PROPERTY_ROTATION] failed.\n");
goto error;
}
#endif
if (screen_create_window_buffers(screen_win, WINDOW_BUFFERS))
{

View File

@ -259,7 +259,7 @@ INPUT
#include "../ios/RetroArch/input/BTStack/btpad_ps3.c"
#include "../ios/RetroArch/input/BTStack/btpad_wii.c"
#elif defined(__BLACKBERRY_QNX__)
#include "../playbook/qnx_input.c"
#include "../blackberry-qnx/playbook/qnx_input.c"
#endif
#if defined(HAVE_NULLINPUT)
@ -401,7 +401,7 @@ MAIN
#include "../frontend/frontend_ios.c"
#endif
#if !defined(ANDROID) && !defined(IOS)
#if !defined(ANDROID) && !defined(IOS) && !(defined(__BLACKBERRY_QNX__) && defined(HAVE_BB10))
#include "../frontend/frontend.c"
#endif