Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
UppHub
Status & Roadmap
FAQ
Authors & License
Forums
Funding U++
Search on this site











SourceForge.net Logo

SourceForge.net Logo

GitHub Logo

Discord Logo

GSoC 2014. Ideas

 

Introduction

 

Google Summer of Code 2014 has been announced and this year Ultimate++ project really wants to participate as a mentoring organization.

 

If you like C++ and you want to use a radical focus to more effective programming we would be happy if you come with us.

 

Here we will describe you our proposals. We hope you will like them! However you can ask for additional information and we would also like to hear your ideas.

 

You can introduce yourself in our Forum, discuss with the community these ideas and your proposals adding your personal touches. You can also contact the mentors whose skills can match with your project ideas. This way you can do your own proposals with more possibilities to be approved.

 

 

Project Ideas

 

U++ Independent Audio Module

 

Proposed by

Zbigniew Rębacz (Student)

 

Difficulty

Hard

 

Required skills/knowledge

C++, C, minimal U++ knowledge, debugging, low-level programing, understanding somebody's code, reading & understanding documentation, creating multiplatform code.

 

Expected result

U++ audio module works on multiple operating system such as Microsoft Windows, GNU/Linux, FreeBSD. But, we will be happy if the code will work at least on two platforms.

 

Brief Explanation

U++ currently handle audio only with other high level libraries for instance SDL. The main task is to create independent module. To achieve this you will need to use low level API for each operating system which U++ supports such as WinAPI or ALSA.

 

Mentor

Jan Dolinár

 

Roadmap

Investigate audio libraries for each operating system which Ultimate++ supports.

Study U++ API design

Design U++ audio API

Write audio code for each platform

 

 

Android SDK/NDK TheIDE builder

 

Proposed by

Miroslav Fídler

 

Difficulty

Medium

 

Required skills/knowledge

C++, U++, Java, debugging.

 

Expected result

TheIDE is capable of building Android projects, from Java/C/C++ sources.

 

Brief Explanation

TheIDE builder is module of TheIDE development environment responsible for building projects defined by U++ package system into executable form. Currently, TheIDE supports builders based on Win32 SDK (using Microsoft C++ compiler and Windows SDK) and builders targeting general POSIX/X11/Gtk desktops.

The aim of this proposal is create a new builder targeting Android platform.

 

Mentors

Miroslav Fídler

 

Roadmap

Investigate Android building techniques

Decide how to implement U++ builder (should we use provided ANT based scripts?)

Implement Android builder

 

 

Android U++ support

 

Proposed by

Miroslav Fídler

 

Difficulty

Hard

 

Required skills/knowledge

C++, U++, Java, JNI, SDL, debugging.

 

Expected result

We are capable of running existing U++ applications on Android, with attached mouse and keyboard (as possible intermediate step); adapting U++ to touch interface is another step.

 

Brief Explanation

U++ provides cross-platform GUI library that is relatively easy adaptable to various platforms. The aim of this proposal is to create a backend for Android platform.

 

Mentors

Miroslav Fídler

 

Roadmap

Investigate Android SDK

Decide the method of support (we could possibly use SDL, or just use JNI to interface with Java API).

Implement Android backend

 

 

TheIDE (P)NaCl builder

 

Proposed by

Miroslav Fídler

 

Difficulty

Medium

 

Required skills/knowledge

C++, U++, debugging.

 

Expected result

TheIDE is capable of building (P)NaCl projects, from C/C++ sources.

 

Brief Explanation

TheIDE builder is module of TheIDE development environment responsible for building projects defined by U++ package system into executable form. Currently, TheIDE supports builders based on Win32 SDK (using Microsoft C++ compiler and Windows SDK) and builders targeting general POSIX/X11/Gtk desktops.

The aim of this proposal is create a new builder targeting (P)NaCl platform.

 

Mentors

Miroslav Fídler

 

Roadmap

Investigate (P)NaCl building techniques

Decide how to implement U++ builder

Implement (P)NaCl builder

 

 

(P)NaCl U++ support

 

Proposed by

Miroslav Fídler

 

Difficulty

Hard

 

Required skills/knowledge

C++, U++, JavaScript, debugging.

 

Expected result

We are capable of running existing U++ applications on (P)NaCl, with attached mouse and keyboard (as possible intermediate step); adapting U++ to touch interface is another step.

 

Brief Explanation

U++ provides cross-platform library that is relatively easy adaptable to various platforms. The aim of this proposal is to create a backend for (P)NaCl platform.

 

Mentors

Miroslav Fídler

 

Roadmap

Investigate Pepper API

Decide the method of support

Implement backend

 

 

Touch support

 

Proposed by

Miroslav Fídler

 

Difficulty

Medium

 

Required skills/knowledge

C++, U++

 

Expected result

U++ widget API gains methods for dealing with touch screens. Individual widgets gain support for this API.

 

Brief Explanation

U++ currently only supports input using mouse and keyboard. The task here is to add virtual methods to Ctrl class to support touch screens and to detect and support a common list of touch gestures. Default implementations of virtual methods might convert these gestures to mouse events for sort of backward compatibility. Once the touch API is implemented, it would be possible to add relevant behaviour to U++ widgets.

 

Mentors

Miroslav Fídler

 

Roadmap

Investigate touch based inputs, make a list of getures we want to support

Implement core touch input API (might be based on HTML5 touchstart, touchmove, touchend interfaces) for TURTLE (javascript terminal to U++) backend.

Implement getures API

Add support to CtrlLib widgets

 

 

Web Browser Control

 

Proposed by

Jan Dolinár

 

Difficulty

High

 

Experience required

U++, webkit (or any other engine), gcc compiling infrastructure.

 

Description

This tasks main goal is to create a GUI widget allowing to integrate a web browser engine into U++ applications. Webkit engine is a good candidate for this task as it is fast and reliable, written in C++ and actively developed by large community, but other engines might be used as well.

 

Mentors

Jan Dolinár

 

Roadmap

Explore possibility to use libwebkit

Decide how to integrate Webkit in a U++ project (most straightforward possibilities are direct rendering in DHCtrl or rendering into buffer first)

Write a widget binding U++ events to the rendering engine

 

 

Ideas Project Template

 

Project Name

 

Proposed by

Your name

 

Difficulty

Piece of cake/Easy/Medium/Hard.

 

Required skills/knowledge

Like C++, Ultimate++, PHP, Java, Ruby, Python, C#, Objective-C, debugging, networking (sockets etc.).

 

Expected result

What should be the end result of the project for example "Ultimate++ works on Android platform".

 

Brief Explanation

Short project description. Explanation can posses link to additional resources like forum discussion about topic.

Remember that you as student can propose your own projects. We advice you to read our Forum and contact the mentors that can match with your project.

 

Mentors

Your name

 

Roadmap

Main project phases

 

 

Project requirements

 

All U++ community projects have to comply with certain basic requirements. These are included in Bazaar pages.

 

Package submission and maintenance is described here.

 

If you need to use community packages you would have to do this.

 

And if you find any bug or you would like to get any additional feature or improvement, please go here.

 

As the main U++ platforms are Windows and GNU/Linux it would be important that all projects would support both operating systems leaving open the possibility to, in a future, be implemented in OSX.

 

Ultimate++ project is proud of its BSD license so we would really prefer that all external libraries to be linked with U++ code would be BSD licensed or similar.

 

 

Return to GSoC 2014 Home page

 

Do you want to contribute?