Grab a Chromecast, grab some friends, and have a great time making awkward/inappropriate/terrible memes!
- Product Owner: rmagee88
- Scrum Master: AJKitson
- Development Team Members: i-made-that, RVreeland
Use this repo to develop and extend the original game, or use the links below to play the current version. Currently there is a webapp, Android client, and iOS client, all should be linked via the main site page MemesForMankind.com
- Node 0.10.x
- Google Chrome
- Google Chromecast
From within the root directory:
sudo npm install -g bower
npm install
bower install
OS X
Brew! (wget instructions on the page)
follow instructions from source here using the wget command
wget https://raw.githubusercontent.com/LearnBoost/node-canvas/master/install -O - | sh
(if you run into any issues with freetype, this command should help by putting the correct version in the right place, per this issue)
cp /opt/X11/lib/libfreetype.6.dylib /usr/local/lib/libfreetype.6.dylib
(if you're having other issues, you can try this command to change the pkg_config_path, so cairo is looking in the right place)
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/opt/X11/lib/pkgconfig
... if you're still having issues, check out the install instructions here... and be mindful of version #s as they have a habit of becoming obsolete
- Make sure you have Android Studio and all the suggested add-ons
- Make sure you download all the listed dependencies for the Cordova ConnectSDK Android plugin
- Set up Cordova
- The client/sender-app-mobile/ directory is where the Cordova project lives
- Create a Cordova project in that directory
- You'll likely need to download all the plugins included in the repsective ios and android json files
- After you set up Android Studio, create a new Android Studio project in and point it to the directory sender-app-mobile/ directory
- In your Android Studio's build.gradle file make sure the sourceSets include the following otherwise Android Studio won't be able to build your app because it won't have the ConnectSDK otherwise
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src', 'CordovaLib/src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
}
- Finally, you'll need to edit one of the Android libraries to change the behavior when connecting. Out of the box the Android chromecast libraries disconnect whatever is using the Chromecast in order to instantiate their own session. We changed that in the following file so that you can actually join without kicking others off... sadly it's not included in the repo- just documented below: In CastWebAppSession.java, lines 55-57, which we found at the following path (from within our sender-app-mobile dir) platforms/android/Connect-SDK-Android/modules/google_cast/src/com/connectsdk/service/sessions/CastWebAppSession.java
@Override
public void connect(final ResponseListener<Object> listener) {
// COMMENT THESE THREE LINES OUT!
// if (castServiceChannel != null) {
// disconnectFromWebApp();
// }
castServiceChannel = new CastServiceChannel(launchSession.getAppId(), this);
try {
Cast.CastApi.setMessageReceivedCallbacks(service.getApiClient(),
castServiceChannel.getNamespace(),
castServiceChannel);
Util.postSuccess(listener, null);
} catch (IOException e) {
castServiceChannel = null;
Util.postError(listener, new ServiceCommandError(0, "Failed to create channel", null));
}
}
- Building the project in Cordova had issues, but building via the Android Studio worked just fine
View the project roadmap here
See CONTRIBUTING.md for contribution guidelines.