Giter Site home page Giter Site logo

akai-old's Introduction

Akai

This is a messaging/voip application intended to run on desktop systems

Building The Client

Linux

  1. git clone https://github.com/gstark31897/Akai
  2. cd Akai/client
  3. qmake -makefile
  4. make
  5. ./Akai is the current executable, more to come on this later

akai-old's People

Contributors

gstark667 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

rplubell

akai-old's Issues

Audio uses too much bandwidth and drops frames

Crashed people's inernet while testing audio, we probably need to split the audio into smaller uniform packets instead of sending full 16000 byte packets over the udp port. This will make droped packets easier to manager, and will hopefully reduce network strain.

Project does not build on Ubuntu 16.04.01

Error message when building on Ubuntu 16.04.01:

Error Message when making by default:
(xenial)zackery@localhost:~/Desktop/C++/Akai/Akai/client$ make g++ -c -m64 -pipe -g -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I. -I. -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -Iobjects -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -o objects/messagelist.o messagelist.cpp messagelist.cpp: In constructor ‘FriendMenu::FriendMenu(QString, QWidget*)’: messagelist.cpp:9:54: error: no matching function for call to ‘FriendMenu::addAction(const char [5], FriendMenu*, void (FriendMenu::*)())’ addAction("Call", this, &FriendMenu::callSelected); ^ In file included from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QMenu:1:0, from messagelist.h:14, from messagelist.cpp:1: /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:76:14: note: candidate: QAction* QMenu::addAction(const QString&) QAction *addAction(const QString &text); ^ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:76:14: note: candidate expects 1 argument, 3 provided /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:77:14: note: candidate: QAction* QMenu::addAction(const QIcon&, const QString&) QAction *addAction(const QIcon &icon, const QString &text); ^ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:77:14: note: candidate expects 2 arguments, 3 provided /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:78:14: note: candidate: QAction* QMenu::addAction(const QString&, const QObject*, const char*, const QKeySequence&) QAction *addAction(const QString &text, const QObject *receiver, const char* member, const QKeySequenc ^ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:78:14: note: no known conversion for argument 3 from ‘void (FriendMenu::*)()’ to ‘const char*’ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:79:14: note: candidate: QAction* QMenu::addAction(const QIcon&, const QString&, const QObject*, const char*, const QKeySequence&) QAction *addAction(const QIcon &icon, const QString &text, const QObject *receiver, const char* member ^ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:79:14: note: candidate expects 5 arguments, 3 provided In file included from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qaction.h:39:0, from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QAction:1, from messagelist.h:5, from messagelist.cpp:1: /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qwidget.h:538:10: note: candidate: void QWidget::addAction(QAction*) void addAction(QAction *action); ^ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qwidget.h:538:10: note: candidate expects 1 argument, 3 provided messagelist.cpp:10:62: error: no matching function for call to ‘FriendMenu::addAction(const char [9], FriendMenu*, void (FriendMenu::*)())’ addAction("Unfriend", this, &FriendMenu::unfriendSelected); ^ In file included from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QMenu:1:0, from messagelist.h:14, from messagelist.cpp:1: /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:76:14: note: candidate: QAction* QMenu::addAction(const QString&) QAction *addAction(const QString &text); ^ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:76:14: note: candidate expects 1 argument, 3 provided /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:77:14: note: candidate: QAction* QMenu::addAction(const QIcon&, const QString&) QAction *addAction(const QIcon &icon, const QString &text); ^ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:77:14: note: candidate expects 2 arguments, 3 provided /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:78:14: note: candidate: QAction* QMenu::addAction(const QString&, const QObject*, const char*, const QKeySequence&) QAction *addAction(const QString &text, const QObject *receiver, const char* member, const QKeySequenc ^ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:78:14: note: no known conversion for argument 3 from ‘void (FriendMenu::*)()’ to ‘const char*’ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:79:14: note: candidate: QAction* QMenu::addAction(const QIcon&, const QString&, const QObject*, const char*, const QKeySequence&) QAction *addAction(const QIcon &icon, const QString &text, const QObject *receiver, const char* member ^ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:79:14: note: candidate expects 5 arguments, 3 provided In file included from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qaction.h:39:0, from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QAction:1, from messagelist.h:5, from messagelist.cpp:1: /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qwidget.h:538:10: note: candidate: void QWidget::addAction(QAction*) void addAction(QAction *action); ^ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qwidget.h:538:10: note: candidate expects 1 argument, 3 provided Makefile:407: recipe for target 'objects/messagelist.o' failed make: *** [objects/messagelist.o] Error 1

Error message after adding "-std=c++11" to the end of line 30 in the Akai.pro file located in Akai/client:

(xenial)zackery@localhost:~/Desktop/C++/Akai/Akai/client$ make g++ -c -m64 -pipe -g -std=c++11 -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I. -I. -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtGui -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -Iobjects -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -o objects/messagelist.o messagelist.cpp messagelist.cpp: In constructor ‘FriendMenu::FriendMenu(QString, QWidget*)’: messagelist.cpp:9:54: error: no matching function for call to ‘FriendMenu::addAction(const char [5], FriendMenu*, void (FriendMenu::*)())’ addAction("Call", this, &FriendMenu::callSelected); ^ In file included from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QMenu:1:0, from messagelist.h:14, from messagelist.cpp:1: /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:76:14: note: candidate: QAction* QMenu::addAction(const QString&) QAction *addAction(const QString &text); ^ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:76:14: note: candidate expects 1 argument, 3 provided /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:77:14: note: candidate: QAction* QMenu::addAction(const QIcon&, const QString&) QAction *addAction(const QIcon &icon, const QString &text); ^ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:77:14: note: candidate expects 2 arguments, 3 provided /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:78:14: note: candidate: QAction* QMenu::addAction(const QString&, const QObject*, const char*, const QKeySequence&) QAction *addAction(const QString &text, const QObject *receiver, const char* member, const QKeySequenc ^ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:78:14: note: no known conversion for argument 3 from ‘void (FriendMenu::*)()’ to ‘const char*’ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:79:14: note: candidate: QAction* QMenu::addAction(const QIcon&, const QString&, const QObject*, const char*, const QKeySequence&) QAction *addAction(const QIcon &icon, const QString &text, const QObject *receiver, const char* member ^ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:79:14: note: candidate expects 5 arguments, 3 provided In file included from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qaction.h:39:0, from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QAction:1, from messagelist.h:5, from messagelist.cpp:1: /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qwidget.h:538:10: note: candidate: void QWidget::addAction(QAction*) void addAction(QAction *action); ^ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qwidget.h:538:10: note: candidate expects 1 argument, 3 provided messagelist.cpp:10:62: error: no matching function for call to ‘FriendMenu::addAction(const char [9], FriendMenu*, void (FriendMenu::*)())’ addAction("Unfriend", this, &FriendMenu::unfriendSelected); ^ In file included from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QMenu:1:0, from messagelist.h:14, from messagelist.cpp:1: /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:76:14: note: candidate: QAction* QMenu::addAction(const QString&) QAction *addAction(const QString &text); ^ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:76:14: note: candidate expects 1 argument, 3 provided /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:77:14: note: candidate: QAction* QMenu::addAction(const QIcon&, const QString&) QAction *addAction(const QIcon &icon, const QString &text); ^ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:77:14: note: candidate expects 2 arguments, 3 provided /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:78:14: note: candidate: QAction* QMenu::addAction(const QString&, const QObject*, const char*, const QKeySequence&) QAction *addAction(const QString &text, const QObject *receiver, const char* member, const QKeySequenc ^ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:78:14: note: no known conversion for argument 3 from ‘void (FriendMenu::*)()’ to ‘const char*’ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:79:14: note: candidate: QAction* QMenu::addAction(const QIcon&, const QString&, const QObject*, const char*, const QKeySequence&) QAction *addAction(const QIcon &icon, const QString &text, const QObject *receiver, const char* member ^ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qmenu.h:79:14: note: candidate expects 5 arguments, 3 provided In file included from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qaction.h:39:0, from /usr/include/x86_64-linux-gnu/qt5/QtWidgets/QAction:1, from messagelist.h:5, from messagelist.cpp:1: /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qwidget.h:538:10: note: candidate: void QWidget::addAction(QAction*) void addAction(QAction *action); ^ /usr/include/x86_64-linux-gnu/qt5/QtWidgets/qwidget.h:538:10: note: candidate expects 1 argument, 3 provided Makefile:407: recipe for target 'objects/messagelist.o' failed make: *** [objects/messagelist.o] Error 1

There's no audio

There's code already, it just needs a server side broker and socket connections.

There's no message caching

This isn't very important yet, but will be once there's actual users...
Presently, the client asks the server for a full message history every time it logs in, but I propose the addition of a date command to notify the client of the newest message, and a requirement for date on the msghist command.

There's no video

Not very important yet, but it'll probably be similar to audio.

Audio uses too much cpu

This is most likely due to how often qt has to spawn a thread for reading from the audio input, look into making a persistant thread or using larger buffers.

Need an options menu

Options menu needs to store audio device settings, perfered audio sample rates, and server configurations.

Windows audio is janky

Tested program on a Windows machine and the audio cutout repeatedly (subsecond intervals)
This might be fixed, but should be double checked

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.