diff --git a/.gitignore b/.gitignore index 4207936..1eb6717 100644 --- a/.gitignore +++ b/.gitignore @@ -50,4 +50,5 @@ Temporary Items hidtopad.cbp wiiu/* hidtovpad.elf -hidtovpad_dbg.elf \ No newline at end of file +hidtovpad_dbg.elf +hidtopad.cscope_file_list \ No newline at end of file diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..a78e9e3 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,83 @@ +language: c + +sudo: false + +branches: + except: + - /^*-v[0-9]/ + - /^build-[0-9a-z\-]*/ + +notifications: + email: false + +cache: + apt: true + directories: + - "/home/travis/devkitPro" + +before_cache: +- rm -rf $DEVKITPRO/*.7z +- rm -rf $DEVKITPRO/*.bz2 +- rm -rf $DEVKITPRO/examples + +addons: + apt: + packages: + - p7zip-full + - zip + +before_install: +- export DEVKITPRO=/home/travis/devkitPro +- export DEVKITPPC=${DEVKITPRO}/devkitPPC +- mkdir -p $DEVKITPRO +- cd $DEVKITPRO +- wget -N https://raw.githubusercontent.com/Maschell/hid_to_vpad/master/other/devkitPPCupdatePPCr27.pl +- wget -N https://raw.githubusercontent.com/Maschell/hid_to_vpad/master/other/libogc.7z +- wget -N https://raw.githubusercontent.com/Maschell/hid_to_vpad/master/other/portlibs.7z + +install: +- cd $DEVKITPRO +- perl devkitPPCupdatePPCr27.pl +- 7z x -y libogc.7z +- 7z x -y portlibs.7z +- cp -R portlibs/ppc/* devkitPPC/ + +before_script: +- cd $TRAVIS_BUILD_DIR/ + +script: +- make -j8 + +before_deploy: +- cd $TRAVIS_BUILD_DIR/ +- mkdir -p "wiiu/apps/hidtovpad" +- mkdir -p "wiiu/controller" +- git clone https://github.com/Maschell/controller_patcher_configs +- cp ./controller_patcher_configs/*.ini ./wiiu/controller +- commit="$(git rev-parse --short=7 HEAD)" +- chmod +x gitrev.sh +- versiontag="$(./gitrev.sh)" +- make +- cp meta/* wiiu/apps/hidtovpad +- cp hidtovpad.elf wiiu/apps/hidtovpad +- zip -r hid_to_vpad_$versiontag.zip wiiu meta.xml icon.png +- git config --global user.email "builds@travis-ci.com" +- git config --global user.name "Travis CI" +- export GIT_TAG=HIDtoVPAD-$versiontag +- commitLog="$(git log -1 --pretty=%B)" +- commitMessage="$(echo -e "-\n" && echo "HID to VPAD nightly build. Not a stable release. Expect bugs!" && echo -e "\nCommitlog:\n" && echo $commitLog)" +- git tag $GIT_TAG -a -m "$commitMessage" +- git push --quiet https://$GITHUBKEY@github.com/Maschell/hid_to_vpad $GIT_TAG > /dev/null 2>&1 + +deploy: + provider: releases + skip_cleanup: true + prerelease: true + api_key: + secure: "r2jF3dwTUdeo+0Rg5cDuJhxJU3kVnsEbCfIxRrL0QLjPQUCIPLQyqZCC2ApBW1VrOZ7oH6HUW1RhXdnu2izN2Bsis5jPmCJl4vDDb6tWvdW/h2BbZOiOqsGkjTVxBYs6ZddnENxrJBUBHyDbPijERr8lVMhs066S0yPQvVGWG9K+ClXkS2bO/Mq3wO/CzQNv93LrZXWGgkB9Ej2bzcYrt+ieA3jkVOn9K3PbLapRQCNec4RM3R+dJT4uQmrih892e4+JzZlyf4HGmIFH8xNIPQvXH5wD1nGcTzXDC6eQw5ljMPaxhWn2YtIv9knUKjhWzEe9fx8e+380SjpTTP0ir6I+EF2Y/A5spYJMuJDHLSvU2Qq1BwfE4pm/Om+/wRlTaPC8FYUuQPc1YdBLRYBpd3YwlJFEZSi4IEUbEOjOKDhagw0cYHQC42zypsm1aW+q8eVSeylsyjxOR2eawVHIzvOoMKA0FHIdA7zNFxh50y3EdYJw+L6/4wU14743ifT5TOrMuTWfSQXY4eBBkjMytkkhMsJfbs2xHHZkBgl2249Z93odr+2C5WbOqnEQRhPZunOxrMO8bga/K50wmTfOPSxkFJOxXnOuXlGWd0TsUeAtGg7Nk3pRaPVXhOMc+gXb/Ktdj6S11bUNO4VLXb4z7FmMy0yxmxrw3elpXDjaB/U=" + file: hid_to_vpad_$versiontag.zip + on: + repo: Maschell/hid_to_vpad + tags: false + all_branches: true + \ No newline at end of file diff --git a/gitrev.sh b/gitrev.sh new file mode 100644 index 0000000..9e774d6 --- /dev/null +++ b/gitrev.sh @@ -0,0 +1,27 @@ +#! /bin/bash +# +rev_new=$(git rev-parse --short=7 HEAD) +version=$(cat ./src/version.h 2>/dev/null | cut -d '"' -f2) + + +rev_date=`date -u +%Y%m%d%H%M%S` + + cat < ./meta/meta.xml + + + HID to VPAD + Maschell + $version-nightly-$rev_new + $rev_date + USB HID to gamepad input + Emulate input using various USB HID devices. + + +EOF + + cat < ./src/version.h +#define APP_VERION "$version-nightly-$rev_new" +EOF + + +echo $version-nightly-$rev_new diff --git a/meta/meta.xml b/meta/meta.xml index 3e14e40..2c72320 100644 --- a/meta/meta.xml +++ b/meta/meta.xml @@ -1,9 +1,10 @@ - + - HID to VPAD - Maschell - 0.9g - 20170331164900 - USB HID to gamepad input - Emulate input using various USB HID devices. - \ No newline at end of file + HID to VPAD + Maschell + v0.9g + 20170331173100 + USB HID to gamepad input + Emulate input using various USB HID devices. + + diff --git a/other/devkitPPCupdatePPCr27.pl b/other/devkitPPCupdatePPCr27.pl new file mode 100644 index 0000000..3c92231 --- /dev/null +++ b/other/devkitPPCupdatePPCr27.pl @@ -0,0 +1,250 @@ +#!/usr/bin/perl +#----------------------------------------------------------------------------- +# +# Copyright (C) 2011 - 2016 +# Michael Theall (mtheall) +# Dave Murphy (WinterMute) +# +# This software is provided 'as-is', without any express or implied +# warranty. In no event will the authors be held liable for any +# damages arising from the use of this software. +# +# Permission is granted to anyone to use this software for any +# purpose, including commercial applications, and to alter it and +# redistribute it freely, subject to the following restrictions: +# +# 1. The origin of this software must not be misrepresented; you +# must not claim that you wrote the original software. If you use +# this software in a product, an acknowledgment in the product +# documentation would be appreciated but is not required. +# 2. Altered source versions must be plainly marked as such, and +# must not be misrepresented as being the original software. +# 3. This notice may not be removed or altered from any source +# distribution. +# +#----------------------------------------------------------------------------- + use strict; + + my $dir = "$ENV{HOME}/devkitPro"; + my $downloader; + my $archname; + + if($ENV{"DEVKITPRO"} ne "") + { + $dir = $ENV{"DEVKITPRO"}; + } + + if($#ARGV eq 0) + { + $dir = $ARGV[0]; + } + + # Ensure full pathname + if(!($dir =~ /^\//)) + { + my $pwd = `pwd`; + chomp($pwd); + $dir = "$pwd/$dir"; + } + + printf("devkitPPC Updater/Installer\n"); + printf("Installing to %s\n", $dir); + + # Get OS information + my $os = `uname`; + my $arch = `uname -m`; + chomp($os); + chomp($arch); + + # Check OS information + if($os eq "Linux" and ($arch eq "i686" or $arch eq "x86_64")) + { + $downloader = "wget -q"; + $archname = $arch . "-linux"; + } + elsif($os eq "Darwin" and ($arch eq "i386" or $arch eq "x86_64")) + { + $downloader = "curl -L -O -s"; + $archname = $arch . "-osx"; + } + else + { + printf(STDERR "Not on Linux i686/x86_64 or Darwin i386/x86_64!\n"); + exit(1); + } + + # Set up directories + if(!(-d "$dir")) + { + mkdir("$dir") or die $!; + } + + if(!(-d "$dir/libogc")) + { + mkdir("$dir/libogc") or die $!; + } + if(!(-d "$dir/examples")) + { + mkdir("$dir/examples") or die $!; + } + if(!(-d "$dir/examples/wii")) + { + mkdir("$dir/examples/wii") or die $!; + } + if(!(-d "$dir/examples/gamecube")) + { + mkdir("$dir/examples/gamecube") or die $!; + } + + # Grab update file + if(-e "devkitProUpdatePPCr27.ini") + { + unlink("devkitProUpdatePPCr27.ini") or die $!; + } + printf("Downloading update file..."); + system($downloader . " https://raw.githubusercontent.com/MaschellTest/hid_to_vpad/master/other/devkitProUpdatePPCr27.ini") and die "Failed to download!"; + printf("OK!\n"); + + # Initialize versions & newVersions + my %versions = + ( + 'devkitPPC' => 0, + 'libogc' => 0, + 'libogcfat' => 0, + 'wiiexamples' => 0, + 'cubeexamples' => 0, + ); + my %newVersions = %versions; + + my %files = (); + my $current = ""; + + if(-e "$dir/dkppc-update.ini") + { + open(MYFILE, "<$dir/dkppc-update.ini") or die $!; + while() + { + chomp; + if($_ =~ /\[(.*)\]/) + { + $current = $1; + } + elsif($_ =~ /Version=(.*)/ and defined($versions{$current})) + { + $versions{$current} = $1; + } + elsif($_ =~ /File=(.*)/) + { + $files{$current} = $1; + } + } + close(MYFILE); + } + + my %newFiles = (); + + open(MYFILE, ") + { + chomp; + if($_ =~ /\[(.*)\]/) + { + $current = $1; + } + elsif($_ =~ /Version=(.*)/ and defined($newVersions{$current})) + { + $newVersions{$current} = $1; + } + elsif($_ =~ /File=(.*)/) + { + $newFiles{$current} = $1; + } + } + close(MYFILE); + unlink("devkitProUpdatePPCr27.ini") or die $!; + + # see what to update + my %updates = (); + foreach my $key (keys %versions) + { + if($versions{$key} ne $newVersions{$key} and $newVersions{$key} ne 0) + { + $newFiles{$key} =~ s/win32\.exe/$archname.tar.bz2/; + $updates{$key} = $newFiles{$key}; + } + else + { + printf("%s is up-to-date\n", $key); + } + } + + # Download files + foreach my $key (keys %updates) + { + printf("Update %s with %s\n", $key, $updates{$key}); + if(-e $updates{$key}) + { + unlink($updates{$key}); + } + + my $cmd = sprintf("%s http://download.sourceforge.net/devkitpro/%s", $downloader, $updates{$key}); + printf(" Downloading..."); + system($cmd) and die "Failed to download $updates{$key}\n"; + printf("OK!\n"); + } + + # Install files + my %install = + ( + 'devkitPPC' => '', + 'libogc' => 'libogc', + 'libogcfat' => 'libogc', + 'wiiexamples' => 'examples/wii', + 'cubeexamples' => 'examples/gamecube', + ); + + foreach my $key (keys %updates) + { + my $cmd = sprintf("tar -xjf %s -C $dir/%s", $updates{$key}, $install{$key}); + printf("Extracting %s...", $updates{$key}); + system($cmd) and die "Failed\n"; + printf("OK!\n"); + } + + # Output update info + open(MYFILE, ">$dir/dkppc-update.ini") or die $!; + foreach my $key (keys %newVersions) + { + printf(MYFILE "[%s]\n", $key); + printf(MYFILE "Version=%s\n", $newVersions{$key}); + printf(MYFILE "File=%s\n", $newFiles{$key}); + printf(MYFILE "\n"); + } + close(MYFILE); + + # Check environment variables + printf("Checking DEVKITPRO..."); + my $env = `echo \$DEVKITPRO`; + chomp($env); + if($env ne "$dir") + { + printf("Please set DEVKITPRO in your environment as $dir\n"); + } + else + { + printf("OK!\n"); + } + + printf("Checking DEVKITPPC..."); + $env = `echo \$DEVKITPPC`; + chomp($env); + if($env ne "$dir/devkitPPC") + { + printf("Please set DEVKITPPC in your environment as \${DEVKITPRO}/devkitPPC\n"); + } + else + { + printf("OK!\n"); + } + + exit(0); diff --git a/other/devkitProUpdatePPCr27.ini b/other/devkitProUpdatePPCr27.ini new file mode 100644 index 0000000..1f04860 --- /dev/null +++ b/other/devkitProUpdatePPCr27.ini @@ -0,0 +1,147 @@ +[devkitProUpdate] +Build=46 +URL=http://downloads.sourceforge.net/devkitpro +Filename=devkitProUpdater-1.6.0.exe + +[msys] +Version=1.0.17 +File=msys-1.0.17.exe +Size=118660 + +[devkitARM] +Version=45 +File=devkitARM_r45-win32.exe +Size=70461 + +[devkitPPC] +Version=27 +File=devkitPPC_r27-win32.exe +Size=65356 + +[devkitPSP] +Version=16-1 +File=devkitPSP_r16-1-win32.exe +Size=70915 + +[pspdoc] +Version=20051113 +File=pspsdk-doc-20051113.tar.bz2 +Size=9344 + +[libgba] +Version=20090222 +File=libgba-20090222.tar.bz2 +Size=268 + +[libgbafat] +Version=1.0.14 +File=libfat-gba-1.0.14.tar.bz2 +Size=241 + +[maxmodgba] +Version=1.0.9 +File=maxmod-gba-1.0.9.tar.bz2 +Size= + +[libnds] +Version=1.5.12 +File=libnds-1.5.12.tar.bz2 +Size=470 + +[libndsfat] +Version=1.0.14 +File=libfat-nds-1.0.14.tar.bz2 +Size=272 + +[maxmodds] +Version=1.0.9 +File=maxmod-nds-1.0.9.tar.bz2 +Size= + +[dswifi] +Version=0.3.17 +File=dswifi-0.3.17.tar.bz2 +Size=496 + +[libctru] +Version=1.0.0 +File=libctru-1.0.0.tar.bz2 +Size=371 + +[citro3d] +Version=1.0.0 +File=citro3d-1.0.0.tar.bz2 +Size=371 + +[libmirko] +Version=0.9.7 +File=libmirko-0.9.7.tar.bz2 +Size=1056 + +[libogc] +Version=1.8.12 +File=libogc-1.8.12.tar.bz2 +Size=2748 + +[libogcfat] +Version=1.0.14 +File=libfat-ogc-1.0.14.tar.bz2 +Size=481 + +[pnotepad] +Version=2.0.8.718 +File=pn2.0.8.718.zip +Size=4958 + +[insight] +Version=7.3.50.20110803 +File=insight-7.3.50.20110803-cvs.exe +Size=32932 + +[ndsexamples] +Version=20140401 +File=nds-examples-20140401.tar.bz2 +Size=1191 + +[defaultarm7] +Version=0.6.0 +File=default_arm7-0.6.0.tar.bz2 +Size=9 + +[filesystem] +Version=0.9.12 +File=libfilesystem-0.9.12.tar.bz2 +Size=9 + +[gbaexamples] +Version=20090222 +File=gba-examples-20090222.tar.bz2 +Size=1019 + +[gp32examples] +Version=20051021 +File=gp32-examples-20051021.tar.bz2 +Size=732 + +[cubeexamples] +Version=20110620 +File=gamecube-examples-20110620.tar.bz2 +Size=198 + +[wiiexamples] +Version=20110620 +File=wii-examples-20110620.tar.bz2 +Size=93 + +[3dsexamples] +Version=20151219 +File=3ds-examples-20151219.tar.bz2 +Size=93 + +[gcube] +Version=0.4.0 +File=gcube-0.4.0-win32.tar.bz2 +Size=1234 + +[Settings] +RTL=0 diff --git a/other/libogc.7z b/other/libogc.7z new file mode 100644 index 0000000..9fb82a9 Binary files /dev/null and b/other/libogc.7z differ diff --git a/other/portlibs.7z b/other/portlibs.7z new file mode 100644 index 0000000..3b22468 Binary files /dev/null and b/other/portlibs.7z differ diff --git a/src/menu/drc/MainWindowDRC.cpp b/src/menu/drc/MainWindowDRC.cpp index 9cd2acc..1b70d90 100644 --- a/src/menu/drc/MainWindowDRC.cpp +++ b/src/menu/drc/MainWindowDRC.cpp @@ -43,9 +43,9 @@ MainWindowDRC::MainWindowDRC(int w, int h) GuiControllerInputDisplay::preLoadImages(); versionText.setText(fmt("%s - %s",APP_VERION,__DATE__)); - versionText.setAlignment(ALIGN_TOP_RIGHT); - versionText.setPosition(-5,-45); - + versionText.setAlignment(ALIGN_TOP_LEFT); + versionText.setPosition(windowSplitter_img.getOffsetX()+5,-25); + ipAddress.setText(wfmt("TCP Server running on: %u.%u.%u.%u",(hostIpAddress >> 24) & 0xFF, (hostIpAddress >> 16) & 0xFF, (hostIpAddress >> 8) & 0xFF, (hostIpAddress >> 0) & 0xFF)); ipAddress.setAlignment(ALIGN_TOP_RIGHT); ipAddress.setPosition(-5,-25); diff --git a/src/version.h b/src/version.h index 26e011b..f7cfe44 100644 --- a/src/version.h +++ b/src/version.h @@ -1,5 +1,2 @@ -#define MAJOR_VERION "0" -#define MINOR_VERSION "9" -#define EXTRA_VERSION "g" -#define APP_VERION "v" MAJOR_VERION "." MINOR_VERSION EXTRA_VERSION +#define APP_VERION "v0.9g"