Add files via upload
This commit is contained in:
99
DBusMprisProxy.cpp
Normal file
99
DBusMprisProxy.cpp
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
|
||||||
|
/*
|
||||||
|
* File: DBusMprisProxy.cpp
|
||||||
|
* Author: SET - nmset@netcourrier.com
|
||||||
|
* License : GPL V2
|
||||||
|
*
|
||||||
|
* Created on 10 décembre 2017, 22:23
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "DBusMprisProxy.h"
|
||||||
|
#include "globals.h"
|
||||||
|
#include <iostream>
|
||||||
|
#include <chrono>
|
||||||
|
#include <thread>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
#define FFR_PAUSE 200
|
||||||
|
|
||||||
|
bool DBusMprisProxy::m_break = true;
|
||||||
|
extern uint g_autorewind;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Communicates over DBus to an MPRIS compliant media player.
|
||||||
|
* @param connection
|
||||||
|
* @param service
|
||||||
|
*/
|
||||||
|
DBusMprisProxy::DBusMprisProxy(DBus::Connection &connection, const char * service)
|
||||||
|
: DBus::ObjectProxy(connection, "/org/mpris/MediaPlayer2", service)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
DBusMprisProxy::~DBusMprisProxy()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void DBusMprisProxy::FastForward(const int& step)
|
||||||
|
{
|
||||||
|
// Let the running thread die
|
||||||
|
this_thread::sleep_for(chrono::milliseconds(FFR_PAUSE + 1));
|
||||||
|
m_break = false;
|
||||||
|
thread t(DoFastForward, this, step);
|
||||||
|
t.detach();
|
||||||
|
}
|
||||||
|
|
||||||
|
void DBusMprisProxy::Rewind(const int& step)
|
||||||
|
{
|
||||||
|
this_thread::sleep_for(chrono::milliseconds(FFR_PAUSE + 1));
|
||||||
|
m_break = false;
|
||||||
|
thread t(DoRewind, this, step);
|
||||||
|
t.detach();
|
||||||
|
}
|
||||||
|
|
||||||
|
void DBusMprisProxy::Reset()
|
||||||
|
{
|
||||||
|
m_break = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
int DBusMprisProxy::DoFastForward(DBusMprisProxy * obj, const int& step)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
while (!m_break)
|
||||||
|
{
|
||||||
|
obj->Seek(step); // 1 sec = 1000000
|
||||||
|
// https://stackoverflow.com/questions/4184468/sleep-for-milliseconds
|
||||||
|
this_thread::sleep_for(chrono::milliseconds(FFR_PAUSE));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (DBus::Error e)
|
||||||
|
{
|
||||||
|
cout << e.message() << _NL_ << e.name() << endl;
|
||||||
|
return 1; // ???
|
||||||
|
}
|
||||||
|
return 0; // ???
|
||||||
|
}
|
||||||
|
|
||||||
|
int DBusMprisProxy::DoRewind(DBusMprisProxy* obj, const int& step)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
while (!m_break)
|
||||||
|
{
|
||||||
|
obj->Seek(-1 * step);
|
||||||
|
this_thread::sleep_for(chrono::milliseconds(FFR_PAUSE));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (DBus::Error e)
|
||||||
|
{
|
||||||
|
cout << e.message() << _NL_ << e.name() << endl;
|
||||||
|
return 1; // ???
|
||||||
|
}
|
||||||
|
return 0; // ???
|
||||||
|
}
|
||||||
|
|
||||||
|
void DBusMprisProxy::AutoRewind()
|
||||||
|
{
|
||||||
|
Seek((int64_t) g_autorewind * 1000 * -1);
|
||||||
|
}
|
||||||
|
|
||||||
68
DBusMprisProxy.h
Normal file
68
DBusMprisProxy.h
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
/*
|
||||||
|
* File: DBusMprisProxy.h
|
||||||
|
* Author: SET - nmset@netcourrier.com
|
||||||
|
* License : GPL V2
|
||||||
|
*
|
||||||
|
* Created on 10 décembre 2017, 22:23
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef DBUSMPRISPROXY_H
|
||||||
|
#define DBUSMPRISPROXY_H
|
||||||
|
|
||||||
|
#include "mpris_proxy.hpp"
|
||||||
|
|
||||||
|
#define FFR_STEP 5000000 // Fast forward and rewind by 5 secs
|
||||||
|
#define FFR_STEP_QUICK 50000000 // 50 secs
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sends DBus commands to an MPRIS compliant media player.
|
||||||
|
* @param connection
|
||||||
|
* @param service
|
||||||
|
*/
|
||||||
|
|
||||||
|
class DBusMprisProxy : public org::mpris::MediaPlayer2::Player_proxy,
|
||||||
|
public DBus::IntrospectableProxy,
|
||||||
|
public DBus::ObjectProxy
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param connection
|
||||||
|
* @param service : pedal.event, from application POD7.
|
||||||
|
*/
|
||||||
|
DBusMprisProxy(DBus::Connection &connection, const char * service);
|
||||||
|
virtual ~DBusMprisProxy();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Advances the media position by step milliseconds,
|
||||||
|
* pausing 200 milliseconds between steps.
|
||||||
|
* Runs in a detached thread.
|
||||||
|
* @param step
|
||||||
|
*/
|
||||||
|
void FastForward(const int& step);
|
||||||
|
/**
|
||||||
|
* Moves back the media position by step milliseconds,
|
||||||
|
* pausing 200 milliseconds between steps.
|
||||||
|
* Runs in a detached thread.
|
||||||
|
*/
|
||||||
|
void Rewind(const int& step);
|
||||||
|
/**
|
||||||
|
* Sets a flag that allows running threads to end.
|
||||||
|
*/
|
||||||
|
void Reset();
|
||||||
|
/**
|
||||||
|
* Rewinds specified milliseconds before starting playback.
|
||||||
|
* An unavoidable feature for transcriptionists.
|
||||||
|
*/
|
||||||
|
void AutoRewind();
|
||||||
|
private:
|
||||||
|
/**
|
||||||
|
* Flag controlling thread lifetime.
|
||||||
|
*/
|
||||||
|
static bool m_break;
|
||||||
|
static int DoFastForward(DBusMprisProxy * obj, const int& step);
|
||||||
|
static int DoRewind(DBusMprisProxy * obj, const int& step);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* DBUSMPRISPROXY_H */
|
||||||
|
|
||||||
93
DBusPODProxy.cpp
Normal file
93
DBusPODProxy.cpp
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
/*
|
||||||
|
* File: DBusPODProxy.cpp
|
||||||
|
* Author: SET - nmset@netcourrier.com
|
||||||
|
* License : GPL V2
|
||||||
|
*
|
||||||
|
* Created on 10 décembre 2017, 18:51
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "DBusPODProxy.h"
|
||||||
|
#include "globals.h"
|
||||||
|
#include <iostream>
|
||||||
|
#include <thread>
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
#include "DBusMprisProxy.h"
|
||||||
|
|
||||||
|
DBusMprisProxy * g_MprisProxy;
|
||||||
|
extern string g_backend;
|
||||||
|
extern uint g_rewind;
|
||||||
|
extern uint g_fastforward;
|
||||||
|
extern uint g_play;
|
||||||
|
extern bool g_verbose;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Controls playback of an MPRIS compliant media player.
|
||||||
|
* @param connection
|
||||||
|
* @param service
|
||||||
|
*/
|
||||||
|
DBusPODProxy::DBusPODProxy(DBus::Connection &connection, const char * service)
|
||||||
|
: DBus::ObjectProxy(connection, "/pedal/event", service)
|
||||||
|
{
|
||||||
|
thread t(Entry);
|
||||||
|
t.detach();
|
||||||
|
string mpris_service("org.mpris.MediaPlayer2.");
|
||||||
|
mpris_service += g_backend;
|
||||||
|
g_MprisProxy = new DBusMprisProxy(connection, mpris_service.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
DBusPODProxy::~DBusPODProxy()
|
||||||
|
{
|
||||||
|
DBus::default_dispatcher->leave();
|
||||||
|
delete g_MprisProxy;
|
||||||
|
}
|
||||||
|
|
||||||
|
void DBusPODProxy::OnPedalEvent(const int32_t& code)
|
||||||
|
{
|
||||||
|
if (g_verbose)
|
||||||
|
cout << code << endl;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// Stop evenything whenever a pedal whenever occurs
|
||||||
|
g_MprisProxy->Reset();
|
||||||
|
g_MprisProxy->Pause();
|
||||||
|
// switch case does not compile here
|
||||||
|
if ((uint) code == g_rewind)
|
||||||
|
{
|
||||||
|
g_MprisProxy->Rewind(FFR_STEP);
|
||||||
|
}
|
||||||
|
else if ((uint) code == g_rewind + g_play)
|
||||||
|
{
|
||||||
|
g_MprisProxy->Rewind(FFR_STEP_QUICK);
|
||||||
|
}
|
||||||
|
else if ((uint) code == g_fastforward)
|
||||||
|
{
|
||||||
|
g_MprisProxy->FastForward(FFR_STEP);
|
||||||
|
}
|
||||||
|
else if ((uint) code == g_fastforward + g_play)
|
||||||
|
{
|
||||||
|
g_MprisProxy->FastForward(FFR_STEP_QUICK);
|
||||||
|
}
|
||||||
|
else if ((uint) code == g_play)
|
||||||
|
{
|
||||||
|
g_MprisProxy->AutoRewind();
|
||||||
|
g_MprisProxy->Play();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
g_MprisProxy->Reset();
|
||||||
|
g_MprisProxy->Pause();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (DBus::Error e)
|
||||||
|
{
|
||||||
|
cout << e.message() << _NL_ << e.name() << endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int DBusPODProxy::Entry()
|
||||||
|
{
|
||||||
|
DBus::default_dispatcher->enter(); // IS BLOCKING
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
50
DBusPODProxy.h
Normal file
50
DBusPODProxy.h
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
/*
|
||||||
|
* File: DBusPODProxy.h
|
||||||
|
* Author: SET - nmset@netcourrier.com
|
||||||
|
* License : GPL V2
|
||||||
|
*
|
||||||
|
* Created on 10 décembre 2017, 18:51
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef DBUSPODPROXY_H
|
||||||
|
#define DBUSPODPROXY_H
|
||||||
|
|
||||||
|
#include "pod_proxy.hpp"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Listen to DBus pedal events from application POD7.
|
||||||
|
* It creates an DBus proxy for an MPRIS compliant media player
|
||||||
|
* that will react to pedal events.
|
||||||
|
*/
|
||||||
|
|
||||||
|
class DBusPODProxy : public pedal::event_proxy,
|
||||||
|
public DBus::IntrospectableProxy,
|
||||||
|
public DBus::ObjectProxy
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param connection
|
||||||
|
* @param service : pedal.event, from application POD7.
|
||||||
|
*/
|
||||||
|
DBusPODProxy(DBus::Connection &connection, const char * service);
|
||||||
|
virtual ~DBusPODProxy();
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param code : sent by a pedal event
|
||||||
|
*/
|
||||||
|
void OnPedalEvent(const int32_t& code) override;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enters the DBus loop in a detached thread
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
static int Entry();
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* DBUSPODPROXY_H */
|
||||||
|
|
||||||
128
Makefile
Normal file
128
Makefile
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
#
|
||||||
|
# There exist several targets which are by default empty and which can be
|
||||||
|
# used for execution of your targets. These targets are usually executed
|
||||||
|
# before and after some main targets. They are:
|
||||||
|
#
|
||||||
|
# .build-pre: called before 'build' target
|
||||||
|
# .build-post: called after 'build' target
|
||||||
|
# .clean-pre: called before 'clean' target
|
||||||
|
# .clean-post: called after 'clean' target
|
||||||
|
# .clobber-pre: called before 'clobber' target
|
||||||
|
# .clobber-post: called after 'clobber' target
|
||||||
|
# .all-pre: called before 'all' target
|
||||||
|
# .all-post: called after 'all' target
|
||||||
|
# .help-pre: called before 'help' target
|
||||||
|
# .help-post: called after 'help' target
|
||||||
|
#
|
||||||
|
# Targets beginning with '.' are not intended to be called on their own.
|
||||||
|
#
|
||||||
|
# Main targets can be executed directly, and they are:
|
||||||
|
#
|
||||||
|
# build build a specific configuration
|
||||||
|
# clean remove built files from a configuration
|
||||||
|
# clobber remove all built files
|
||||||
|
# all build all configurations
|
||||||
|
# help print help mesage
|
||||||
|
#
|
||||||
|
# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
|
||||||
|
# .help-impl are implemented in nbproject/makefile-impl.mk.
|
||||||
|
#
|
||||||
|
# Available make variables:
|
||||||
|
#
|
||||||
|
# CND_BASEDIR base directory for relative paths
|
||||||
|
# CND_DISTDIR default top distribution directory (build artifacts)
|
||||||
|
# CND_BUILDDIR default top build directory (object files, ...)
|
||||||
|
# CONF name of current configuration
|
||||||
|
# CND_PLATFORM_${CONF} platform name (current configuration)
|
||||||
|
# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration)
|
||||||
|
# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration)
|
||||||
|
# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration)
|
||||||
|
# CND_PACKAGE_DIR_${CONF} directory of package (current configuration)
|
||||||
|
# CND_PACKAGE_NAME_${CONF} name of package (current configuration)
|
||||||
|
# CND_PACKAGE_PATH_${CONF} path to package (current configuration)
|
||||||
|
#
|
||||||
|
# NOCDDL
|
||||||
|
|
||||||
|
|
||||||
|
# Environment
|
||||||
|
MKDIR=mkdir
|
||||||
|
CP=cp
|
||||||
|
CCADMIN=CCadmin
|
||||||
|
|
||||||
|
|
||||||
|
# build
|
||||||
|
build: .build-post
|
||||||
|
|
||||||
|
.build-pre:
|
||||||
|
# Add your pre 'build' code here...
|
||||||
|
|
||||||
|
.build-post: .build-impl
|
||||||
|
# Add your post 'build' code here...
|
||||||
|
|
||||||
|
|
||||||
|
# clean
|
||||||
|
clean: .clean-post
|
||||||
|
|
||||||
|
.clean-pre:
|
||||||
|
# Add your pre 'clean' code here...
|
||||||
|
|
||||||
|
.clean-post: .clean-impl
|
||||||
|
# Add your post 'clean' code here...
|
||||||
|
|
||||||
|
|
||||||
|
# clobber
|
||||||
|
clobber: .clobber-post
|
||||||
|
|
||||||
|
.clobber-pre:
|
||||||
|
# Add your pre 'clobber' code here...
|
||||||
|
|
||||||
|
.clobber-post: .clobber-impl
|
||||||
|
# Add your post 'clobber' code here...
|
||||||
|
|
||||||
|
|
||||||
|
# all
|
||||||
|
all: .all-post
|
||||||
|
|
||||||
|
.all-pre:
|
||||||
|
# Add your pre 'all' code here...
|
||||||
|
|
||||||
|
.all-post: .all-impl
|
||||||
|
# Add your post 'all' code here...
|
||||||
|
|
||||||
|
|
||||||
|
# build tests
|
||||||
|
build-tests: .build-tests-post
|
||||||
|
|
||||||
|
.build-tests-pre:
|
||||||
|
# Add your pre 'build-tests' code here...
|
||||||
|
|
||||||
|
.build-tests-post: .build-tests-impl
|
||||||
|
# Add your post 'build-tests' code here...
|
||||||
|
|
||||||
|
|
||||||
|
# run tests
|
||||||
|
test: .test-post
|
||||||
|
|
||||||
|
.test-pre: build-tests
|
||||||
|
# Add your pre 'test' code here...
|
||||||
|
|
||||||
|
.test-post: .test-impl
|
||||||
|
# Add your post 'test' code here...
|
||||||
|
|
||||||
|
|
||||||
|
# help
|
||||||
|
help: .help-post
|
||||||
|
|
||||||
|
.help-pre:
|
||||||
|
# Add your pre 'help' code here...
|
||||||
|
|
||||||
|
.help-post: .help-impl
|
||||||
|
# Add your post 'help' code here...
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# include project implementation makefile
|
||||||
|
include nbproject/Makefile-impl.mk
|
||||||
|
|
||||||
|
# include project make variables
|
||||||
|
include nbproject/Makefile-variables.mk
|
||||||
5
README.md
Normal file
5
README.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
PMP7 is a small utility that listens to session DBus signals sent by POD7 utility to control an MPRIS compliant media player by a foot pedal.
|
||||||
|
|
||||||
|
Each pedal event can be assigned a unique action on the command line. A backend media player must be specified.
|
||||||
|
|
||||||
|
Work done as a hobbyist with NetBeans, targeting GNU/Linux OS.
|
||||||
28
globals.h
Normal file
28
globals.h
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
/*
|
||||||
|
* File: globals.h
|
||||||
|
* Author: SET - nmset@netcourrier.com
|
||||||
|
* License : GPL V2
|
||||||
|
*
|
||||||
|
* Created on 10 décembre 2017, 20:27
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef GLOBALS_H
|
||||||
|
#define GLOBALS_H
|
||||||
|
|
||||||
|
#define _APPNAME_ "PMP7" // Pedal control for Media Player
|
||||||
|
#define _APP_DESCRIPTION_ "Controls media playback by foot pedal"
|
||||||
|
#define _VERSION_ "1"
|
||||||
|
#define _AUTHOR_ "SET - nmset@netcourrier.com"
|
||||||
|
#define _ABOUT_ string(_APPNAME_) + string(" - version ") + string(_VERSION_) \
|
||||||
|
+ string(" - ") + string(_APP_DESCRIPTION_) + _DOT_ \
|
||||||
|
+ string("\nAuthor : ") + string(_AUTHOR_) \
|
||||||
|
+ string("\nLicense : GPL v2")
|
||||||
|
|
||||||
|
#define _DOT_ "."
|
||||||
|
#define _SPACE_ " "
|
||||||
|
#define _COMMA_ ","
|
||||||
|
#define _COLON_ ":"
|
||||||
|
#define _NL_ "\n"
|
||||||
|
|
||||||
|
#endif /* GLOBALS_H */
|
||||||
|
|
||||||
133
main.cpp
Normal file
133
main.cpp
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
/*
|
||||||
|
* File: main.cpp
|
||||||
|
* Author: SET - nmset@netcourrier.com
|
||||||
|
* License : GPL V2
|
||||||
|
*
|
||||||
|
* Created on 10 décembre 2017, 16:24
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Pedal controlled Media Player
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <signal.h>
|
||||||
|
#include <boost/program_options.hpp>
|
||||||
|
#include "globals.h"
|
||||||
|
#include "DBusPODProxy.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
namespace po = boost::program_options;
|
||||||
|
|
||||||
|
DBusPODProxy * g_pod7Proxy;
|
||||||
|
DBus::BusDispatcher g_dispatcher;
|
||||||
|
bool g_verbose = false;
|
||||||
|
string g_backend = "";
|
||||||
|
uint g_play = 4;
|
||||||
|
uint g_fastforward = 2;
|
||||||
|
uint g_rewind = 1;
|
||||||
|
uint g_autorewind = 1500;
|
||||||
|
|
||||||
|
void signalhandler(int sn)
|
||||||
|
{
|
||||||
|
if (g_verbose)
|
||||||
|
cout << "Application signaled to exit." << endl;
|
||||||
|
delete g_pod7Proxy;
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ManageParams(int argc, char** argv)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
po::options_description desc(_ABOUT_);
|
||||||
|
desc.add_options()
|
||||||
|
("help,h", "Print help messages.")
|
||||||
|
("backend,b", po::value<string>(&g_backend), "Media player : vlc, dragonplayer, xmms2...")
|
||||||
|
("verbose,v", "Show some messages on stdout, namely, signaled pedal codes.")
|
||||||
|
("play,p", po::value<uint>(&g_play), "Pedal code for <PLAY> - default : 4, unsigned.")
|
||||||
|
("fastforward,f", po::value<uint>(&g_fastforward), "Pedal code for <FAST FORWARD> - default : 2, unsigned.")
|
||||||
|
("rewind,r", po::value<uint>(&g_play), "Pedal code for <REWIND> - default : 1, unsigned.")
|
||||||
|
("autorewind,a", po::value<uint>(&g_autorewind), "Automatically rewind for n milliseconds when playback stops - default : 1500, unsigned.");
|
||||||
|
|
||||||
|
po::variables_map vm;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
po::store(po::parse_command_line(argc, argv, desc), vm);
|
||||||
|
po::notify(vm);
|
||||||
|
if (vm.count("help"))
|
||||||
|
{
|
||||||
|
cout << desc << endl;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!vm.count("backend"))
|
||||||
|
{
|
||||||
|
cout << desc << endl;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (g_rewind == g_play
|
||||||
|
|| g_rewind == g_fastforward
|
||||||
|
|| g_play == g_fastforward)
|
||||||
|
{
|
||||||
|
cout << "Declared pedal codes are inconsistent. A pedal code should identify a unique action." << endl;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (vm.count("verbose"))
|
||||||
|
{
|
||||||
|
g_verbose = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (po::error& eb)
|
||||||
|
{
|
||||||
|
cerr << "Error : " << eb.what() << endl;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (exception& e)
|
||||||
|
{
|
||||||
|
cerr << "Error : " << e.what() << endl;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool StartPOD7Proxy()
|
||||||
|
{
|
||||||
|
DBus::Connection bus = DBus::Connection::SessionBus();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
g_pod7Proxy = new DBusPODProxy(bus, "pedal.event");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch (DBus::Error e)
|
||||||
|
{
|
||||||
|
delete g_pod7Proxy;
|
||||||
|
cout << e.message() << _NL_ << e.name() << endl;
|
||||||
|
;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char** argv)
|
||||||
|
{
|
||||||
|
if (!ManageParams(argc, argv))
|
||||||
|
return 0;
|
||||||
|
signal(SIGINT, signalhandler);
|
||||||
|
signal(SIGTERM, signalhandler);
|
||||||
|
DBus::_init_threading();
|
||||||
|
DBus::default_dispatcher = &g_dispatcher;
|
||||||
|
if (!StartPOD7Proxy())
|
||||||
|
{
|
||||||
|
cout << "Could not listen to pedal events." << endl;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Any better way to do that ?
|
||||||
|
while (true)
|
||||||
|
sleep(84600);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
dbusxx-introspect /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.vlc
|
||||||
|
dbusxx-introspect /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.dragonplayer
|
||||||
|
*/
|
||||||
730
mpris_proxy.hpp
Normal file
730
mpris_proxy.hpp
Normal file
@@ -0,0 +1,730 @@
|
|||||||
|
|
||||||
|
/*
|
||||||
|
* This file was automatically generated by dbusxx-xml2cpp; DO NOT EDIT!
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __dbusxx__mpris_proxy_hpp__PROXY_MARSHAL_H
|
||||||
|
#define __dbusxx__mpris_proxy_hpp__PROXY_MARSHAL_H
|
||||||
|
|
||||||
|
#include <dbus-c++/dbus.h>
|
||||||
|
#include <cassert>
|
||||||
|
|
||||||
|
namespace org {
|
||||||
|
namespace mpris {
|
||||||
|
|
||||||
|
class MediaPlayer2_proxy
|
||||||
|
: public ::DBus::InterfaceProxy
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
MediaPlayer2_proxy()
|
||||||
|
: ::DBus::InterfaceProxy("org.mpris.MediaPlayer2")
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
/* properties exported by this interface */
|
||||||
|
const std::string Identity() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2";
|
||||||
|
const std::string property_name = "Identity";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
const std::string DesktopEntry() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2";
|
||||||
|
const std::string property_name = "DesktopEntry";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
const std::vector< std::string > SupportedMimeTypes() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2";
|
||||||
|
const std::string property_name = "SupportedMimeTypes";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
const std::vector< std::string > SupportedUriSchemes() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2";
|
||||||
|
const std::string property_name = "SupportedUriSchemes";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
const bool HasTrackList() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2";
|
||||||
|
const std::string property_name = "HasTrackList";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
const bool CanQuit() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2";
|
||||||
|
const std::string property_name = "CanQuit";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
const bool CanSetFullscreen() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2";
|
||||||
|
const std::string property_name = "CanSetFullscreen";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
const bool Fullscreen() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2";
|
||||||
|
const std::string property_name = "Fullscreen";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
void Fullscreen( const bool & input) {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Set"); call.interface( "org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
::DBus::Variant value;
|
||||||
|
::DBus::MessageIter vi = value.writer ();
|
||||||
|
vi << input;
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2";
|
||||||
|
const std::string property_name = "Fullscreen";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
wi << value;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
};
|
||||||
|
const bool CanRaise() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2";
|
||||||
|
const std::string property_name = "CanRaise";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
public:
|
||||||
|
|
||||||
|
/* methods exported by this interface,
|
||||||
|
* this functions will invoke the corresponding methods on the remote objects
|
||||||
|
*/
|
||||||
|
void Quit()
|
||||||
|
{
|
||||||
|
::DBus::CallMessage call;
|
||||||
|
call.member("Quit");
|
||||||
|
::DBus::Message ret = invoke_method (call);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Raise()
|
||||||
|
{
|
||||||
|
::DBus::CallMessage call;
|
||||||
|
call.member("Raise");
|
||||||
|
::DBus::Message ret = invoke_method (call);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
/* signal handlers for this interface
|
||||||
|
*/
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
/* unmarshalers (to unpack the DBus message before calling the actual signal handler)
|
||||||
|
*/
|
||||||
|
};
|
||||||
|
|
||||||
|
} }
|
||||||
|
namespace org {
|
||||||
|
namespace mpris {
|
||||||
|
namespace MediaPlayer2 {
|
||||||
|
|
||||||
|
class Player_proxy
|
||||||
|
: public ::DBus::InterfaceProxy
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
Player_proxy()
|
||||||
|
: ::DBus::InterfaceProxy("org.mpris.MediaPlayer2.Player")
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
/* properties exported by this interface */
|
||||||
|
const std::map< std::string, ::DBus::Variant > Metadata() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2.Player";
|
||||||
|
const std::string property_name = "Metadata";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
const std::string PlaybackStatus() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2.Player";
|
||||||
|
const std::string property_name = "PlaybackStatus";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
const std::string LoopStatus() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2.Player";
|
||||||
|
const std::string property_name = "LoopStatus";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
void LoopStatus( const std::string & input) {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Set"); call.interface( "org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
::DBus::Variant value;
|
||||||
|
::DBus::MessageIter vi = value.writer ();
|
||||||
|
vi << input;
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2.Player";
|
||||||
|
const std::string property_name = "LoopStatus";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
wi << value;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
};
|
||||||
|
const double Volume() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2.Player";
|
||||||
|
const std::string property_name = "Volume";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
void Volume( const double & input) {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Set"); call.interface( "org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
::DBus::Variant value;
|
||||||
|
::DBus::MessageIter vi = value.writer ();
|
||||||
|
vi << input;
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2.Player";
|
||||||
|
const std::string property_name = "Volume";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
wi << value;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
};
|
||||||
|
const double Shuffle() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2.Player";
|
||||||
|
const std::string property_name = "Shuffle";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
void Shuffle( const double & input) {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Set"); call.interface( "org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
::DBus::Variant value;
|
||||||
|
::DBus::MessageIter vi = value.writer ();
|
||||||
|
vi << input;
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2.Player";
|
||||||
|
const std::string property_name = "Shuffle";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
wi << value;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
};
|
||||||
|
const int32_t Position() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2.Player";
|
||||||
|
const std::string property_name = "Position";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
const double Rate() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2.Player";
|
||||||
|
const std::string property_name = "Rate";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
void Rate( const double & input) {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Set"); call.interface( "org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
::DBus::Variant value;
|
||||||
|
::DBus::MessageIter vi = value.writer ();
|
||||||
|
vi << input;
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2.Player";
|
||||||
|
const std::string property_name = "Rate";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
wi << value;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
};
|
||||||
|
const double MinimumRate() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2.Player";
|
||||||
|
const std::string property_name = "MinimumRate";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
void MinimumRate( const double & input) {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Set"); call.interface( "org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
::DBus::Variant value;
|
||||||
|
::DBus::MessageIter vi = value.writer ();
|
||||||
|
vi << input;
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2.Player";
|
||||||
|
const std::string property_name = "MinimumRate";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
wi << value;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
};
|
||||||
|
const double MaximumRate() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2.Player";
|
||||||
|
const std::string property_name = "MaximumRate";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
void MaximumRate( const double & input) {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Set"); call.interface( "org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
::DBus::Variant value;
|
||||||
|
::DBus::MessageIter vi = value.writer ();
|
||||||
|
vi << input;
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2.Player";
|
||||||
|
const std::string property_name = "MaximumRate";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
wi << value;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
};
|
||||||
|
const bool CanControl() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2.Player";
|
||||||
|
const std::string property_name = "CanControl";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
const bool CanPlay() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2.Player";
|
||||||
|
const std::string property_name = "CanPlay";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
const bool CanPause() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2.Player";
|
||||||
|
const std::string property_name = "CanPause";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
const bool CanSeek() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2.Player";
|
||||||
|
const std::string property_name = "CanSeek";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
public:
|
||||||
|
|
||||||
|
/* methods exported by this interface,
|
||||||
|
* this functions will invoke the corresponding methods on the remote objects
|
||||||
|
*/
|
||||||
|
void Previous()
|
||||||
|
{
|
||||||
|
::DBus::CallMessage call;
|
||||||
|
call.member("Previous");
|
||||||
|
::DBus::Message ret = invoke_method (call);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Next()
|
||||||
|
{
|
||||||
|
::DBus::CallMessage call;
|
||||||
|
call.member("Next");
|
||||||
|
::DBus::Message ret = invoke_method (call);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Stop()
|
||||||
|
{
|
||||||
|
::DBus::CallMessage call;
|
||||||
|
call.member("Stop");
|
||||||
|
::DBus::Message ret = invoke_method (call);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Play()
|
||||||
|
{
|
||||||
|
::DBus::CallMessage call;
|
||||||
|
call.member("Play");
|
||||||
|
::DBus::Message ret = invoke_method (call);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Pause()
|
||||||
|
{
|
||||||
|
::DBus::CallMessage call;
|
||||||
|
call.member("Pause");
|
||||||
|
::DBus::Message ret = invoke_method (call);
|
||||||
|
}
|
||||||
|
|
||||||
|
void PlayPause()
|
||||||
|
{
|
||||||
|
::DBus::CallMessage call;
|
||||||
|
call.member("PlayPause");
|
||||||
|
::DBus::Message ret = invoke_method (call);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Seek(const int64_t& argin0)
|
||||||
|
{
|
||||||
|
::DBus::CallMessage call;
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
|
||||||
|
wi << argin0;
|
||||||
|
call.member("Seek");
|
||||||
|
::DBus::Message ret = invoke_method (call);
|
||||||
|
}
|
||||||
|
|
||||||
|
void OpenUri(const std::string& argin0)
|
||||||
|
{
|
||||||
|
::DBus::CallMessage call;
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
|
||||||
|
wi << argin0;
|
||||||
|
call.member("OpenUri");
|
||||||
|
::DBus::Message ret = invoke_method (call);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetPosition(const ::DBus::Path& argin0, const int64_t& argin1)
|
||||||
|
{
|
||||||
|
::DBus::CallMessage call;
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
|
||||||
|
wi << argin0;
|
||||||
|
wi << argin1;
|
||||||
|
call.member("SetPosition");
|
||||||
|
::DBus::Message ret = invoke_method (call);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
/* signal handlers for this interface
|
||||||
|
*/
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
/* unmarshalers (to unpack the DBus message before calling the actual signal handler)
|
||||||
|
*/
|
||||||
|
};
|
||||||
|
|
||||||
|
} } }
|
||||||
|
namespace org {
|
||||||
|
namespace mpris {
|
||||||
|
namespace MediaPlayer2 {
|
||||||
|
|
||||||
|
class TrackList_proxy
|
||||||
|
: public ::DBus::InterfaceProxy
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
TrackList_proxy()
|
||||||
|
: ::DBus::InterfaceProxy("org.mpris.MediaPlayer2.TrackList")
|
||||||
|
{
|
||||||
|
connect_signal(TrackList_proxy, TrackListReplaced, _TrackListReplaced_stub);
|
||||||
|
connect_signal(TrackList_proxy, TrackAdded, _TrackAdded_stub);
|
||||||
|
connect_signal(TrackList_proxy, TrackRemoved, _TrackRemoved_stub);
|
||||||
|
connect_signal(TrackList_proxy, TrackMetadataChanged, _TrackMetadataChanged_stub);
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
/* properties exported by this interface */
|
||||||
|
const std::vector< ::DBus::Path > Tracks() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2.TrackList";
|
||||||
|
const std::string property_name = "Tracks";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
const bool CanEditTracks() {
|
||||||
|
::DBus::CallMessage call ;
|
||||||
|
call.member("Get"); call.interface("org.freedesktop.DBus.Properties");
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
const std::string interface_name = "org.mpris.MediaPlayer2.TrackList";
|
||||||
|
const std::string property_name = "CanEditTracks";
|
||||||
|
wi << interface_name;
|
||||||
|
wi << property_name;
|
||||||
|
::DBus::Message ret = this->invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader ();
|
||||||
|
::DBus::Variant argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
};
|
||||||
|
public:
|
||||||
|
|
||||||
|
/* methods exported by this interface,
|
||||||
|
* this functions will invoke the corresponding methods on the remote objects
|
||||||
|
*/
|
||||||
|
std::vector< std::map< std::string, ::DBus::Variant > > GetTracksMetadata(const std::vector< ::DBus::Path >& argin0)
|
||||||
|
{
|
||||||
|
::DBus::CallMessage call;
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
|
||||||
|
wi << argin0;
|
||||||
|
call.member("GetTracksMetadata");
|
||||||
|
::DBus::Message ret = invoke_method (call);
|
||||||
|
::DBus::MessageIter ri = ret.reader();
|
||||||
|
|
||||||
|
std::vector< std::map< std::string, ::DBus::Variant > > argout;
|
||||||
|
ri >> argout;
|
||||||
|
return argout;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AddTrack(const std::string& argin0, const ::DBus::Path& argin1, const bool& argin2)
|
||||||
|
{
|
||||||
|
::DBus::CallMessage call;
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
|
||||||
|
wi << argin0;
|
||||||
|
wi << argin1;
|
||||||
|
wi << argin2;
|
||||||
|
call.member("AddTrack");
|
||||||
|
::DBus::Message ret = invoke_method (call);
|
||||||
|
}
|
||||||
|
|
||||||
|
void RemoveTrack(const ::DBus::Path& argin0)
|
||||||
|
{
|
||||||
|
::DBus::CallMessage call;
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
|
||||||
|
wi << argin0;
|
||||||
|
call.member("RemoveTrack");
|
||||||
|
::DBus::Message ret = invoke_method (call);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GoTo(const ::DBus::Path& argin0)
|
||||||
|
{
|
||||||
|
::DBus::CallMessage call;
|
||||||
|
::DBus::MessageIter wi = call.writer();
|
||||||
|
|
||||||
|
wi << argin0;
|
||||||
|
call.member("GoTo");
|
||||||
|
::DBus::Message ret = invoke_method (call);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
/* signal handlers for this interface
|
||||||
|
*/
|
||||||
|
virtual void TrackListReplaced(const std::vector< ::DBus::Path >& argin0, const ::DBus::Path& argin1) = 0;
|
||||||
|
virtual void TrackAdded(const std::map< std::string, ::DBus::Variant >& argin0, const ::DBus::Path& argin1) = 0;
|
||||||
|
virtual void TrackRemoved(const ::DBus::Path& argin0) = 0;
|
||||||
|
virtual void TrackMetadataChanged(const ::DBus::Path& argin0, const std::map< std::string, ::DBus::Variant >& argin1) = 0;
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
/* unmarshalers (to unpack the DBus message before calling the actual signal handler)
|
||||||
|
*/
|
||||||
|
void _TrackListReplaced_stub(const ::DBus::SignalMessage &sig)
|
||||||
|
{
|
||||||
|
::DBus::MessageIter ri = sig.reader();
|
||||||
|
|
||||||
|
std::vector< ::DBus::Path > arg0;
|
||||||
|
ri >> arg0;
|
||||||
|
::DBus::Path arg1;
|
||||||
|
ri >> arg1;
|
||||||
|
TrackListReplaced(arg0, arg1);
|
||||||
|
}
|
||||||
|
void _TrackAdded_stub(const ::DBus::SignalMessage &sig)
|
||||||
|
{
|
||||||
|
::DBus::MessageIter ri = sig.reader();
|
||||||
|
|
||||||
|
std::map< std::string, ::DBus::Variant > arg0;
|
||||||
|
ri >> arg0;
|
||||||
|
::DBus::Path arg1;
|
||||||
|
ri >> arg1;
|
||||||
|
TrackAdded(arg0, arg1);
|
||||||
|
}
|
||||||
|
void _TrackRemoved_stub(const ::DBus::SignalMessage &sig)
|
||||||
|
{
|
||||||
|
::DBus::MessageIter ri = sig.reader();
|
||||||
|
|
||||||
|
::DBus::Path arg0;
|
||||||
|
ri >> arg0;
|
||||||
|
TrackRemoved(arg0);
|
||||||
|
}
|
||||||
|
void _TrackMetadataChanged_stub(const ::DBus::SignalMessage &sig)
|
||||||
|
{
|
||||||
|
::DBus::MessageIter ri = sig.reader();
|
||||||
|
|
||||||
|
::DBus::Path arg0;
|
||||||
|
ri >> arg0;
|
||||||
|
std::map< std::string, ::DBus::Variant > arg1;
|
||||||
|
ri >> arg1;
|
||||||
|
TrackMetadataChanged(arg0, arg1);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
} } }
|
||||||
|
#endif //__dbusxx__mpris_proxy_hpp__PROXY_MARSHAL_H
|
||||||
107
mpris_proxy.xml
Normal file
107
mpris_proxy.xml
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
|
||||||
|
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
|
||||||
|
<node>
|
||||||
|
<interface name="org.freedesktop.DBus.Introspectable">
|
||||||
|
<method name="Introspect">
|
||||||
|
<arg name="data" direction="out" type="s"/>
|
||||||
|
</method>
|
||||||
|
</interface>
|
||||||
|
<interface name="org.freedesktop.DBus.Properties">
|
||||||
|
<method name="Get">
|
||||||
|
<arg direction="in" type="s"/>
|
||||||
|
<arg direction="in" type="s"/>
|
||||||
|
<arg direction="out" type="v"/>
|
||||||
|
</method>
|
||||||
|
<method name="Set">
|
||||||
|
<arg direction="in" type="s"/>
|
||||||
|
<arg direction="in" type="s"/>
|
||||||
|
<arg direction="in" type="v"/>
|
||||||
|
</method>
|
||||||
|
<method name="GetAll">
|
||||||
|
<arg direction="in" type="s"/>
|
||||||
|
<arg direction="out" type="a{sv}"/>
|
||||||
|
</method>
|
||||||
|
<signal name="PropertiesChanged">
|
||||||
|
<arg type="s"/>
|
||||||
|
<arg type="a{sv}"/>
|
||||||
|
<arg type="as"/>
|
||||||
|
</signal>
|
||||||
|
</interface>
|
||||||
|
<interface name="org.mpris.MediaPlayer2">
|
||||||
|
<property name="Identity" type="s" access="read" />
|
||||||
|
<property name="DesktopEntry" type="s" access="read" />
|
||||||
|
<property name="SupportedMimeTypes" type="as" access="read" />
|
||||||
|
<property name="SupportedUriSchemes" type="as" access="read" />
|
||||||
|
<property name="HasTrackList" type="b" access="read" />
|
||||||
|
<property name="CanQuit" type="b" access="read" />
|
||||||
|
<property name="CanSetFullscreen" type="b" access="read" />
|
||||||
|
<property name="Fullscreen" type="b" access="readwrite" />
|
||||||
|
<property name="CanRaise" type="b" access="read" />
|
||||||
|
<method name="Quit" />
|
||||||
|
<method name="Raise" />
|
||||||
|
</interface>
|
||||||
|
<interface name="org.mpris.MediaPlayer2.Player">
|
||||||
|
<property name="Metadata" type="a{sv}" access="read" />
|
||||||
|
<property name="PlaybackStatus" type="s" access="read" />
|
||||||
|
<property name="LoopStatus" type="s" access="readwrite" />
|
||||||
|
<property name="Volume" type="d" access="readwrite" />
|
||||||
|
<property name="Shuffle" type="d" access="readwrite" />
|
||||||
|
<property name="Position" type="i" access="read" />
|
||||||
|
<property name="Rate" type="d" access="readwrite" />
|
||||||
|
<property name="MinimumRate" type="d" access="readwrite" />
|
||||||
|
<property name="MaximumRate" type="d" access="readwrite" />
|
||||||
|
<property name="CanControl" type="b" access="read" />
|
||||||
|
<property name="CanPlay" type="b" access="read" />
|
||||||
|
<property name="CanPause" type="b" access="read" />
|
||||||
|
<property name="CanSeek" type="b" access="read" />
|
||||||
|
<method name="Previous" />
|
||||||
|
<method name="Next" />
|
||||||
|
<method name="Stop" />
|
||||||
|
<method name="Play" />
|
||||||
|
<method name="Pause" />
|
||||||
|
<method name="PlayPause" />
|
||||||
|
<method name="Seek">
|
||||||
|
<arg type="x" direction="in" />
|
||||||
|
</method> <method name="OpenUri">
|
||||||
|
<arg type="s" direction="in" />
|
||||||
|
</method>
|
||||||
|
<method name="SetPosition">
|
||||||
|
<arg type="o" direction="in" />
|
||||||
|
<arg type="x" direction="in" />
|
||||||
|
</method>
|
||||||
|
</interface>
|
||||||
|
<interface name="org.mpris.MediaPlayer2.TrackList">
|
||||||
|
<property name="Tracks" type="ao" access="read" />
|
||||||
|
<property name="CanEditTracks" type="b" access="read" />
|
||||||
|
<method name="GetTracksMetadata">
|
||||||
|
<arg type="ao" direction="in" />
|
||||||
|
<arg type="aa{sv}" direction="out" />
|
||||||
|
</method>
|
||||||
|
<method name="AddTrack">
|
||||||
|
<arg type="s" direction="in" />
|
||||||
|
<arg type="o" direction="in" />
|
||||||
|
<arg type="b" direction="in" />
|
||||||
|
</method>
|
||||||
|
<method name="RemoveTrack">
|
||||||
|
<arg type="o" direction="in" />
|
||||||
|
</method>
|
||||||
|
<method name="GoTo">
|
||||||
|
<arg type="o" direction="in" />
|
||||||
|
</method>
|
||||||
|
<signal name="TrackListReplaced">
|
||||||
|
<arg type="ao" />
|
||||||
|
<arg type="o" />
|
||||||
|
</signal>
|
||||||
|
<signal name="TrackAdded">
|
||||||
|
<arg type="a{sv}" />
|
||||||
|
<arg type="o" />
|
||||||
|
</signal>
|
||||||
|
<signal name="TrackRemoved">
|
||||||
|
<arg type="o" />
|
||||||
|
</signal>
|
||||||
|
<signal name="TrackMetadataChanged">
|
||||||
|
<arg type="o" />
|
||||||
|
<arg type="a{sv}" />
|
||||||
|
</signal>
|
||||||
|
</interface>
|
||||||
|
</node>
|
||||||
95
nbproject/Makefile-Debug.mk
Normal file
95
nbproject/Makefile-Debug.mk
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
#
|
||||||
|
# Generated Makefile - do not edit!
|
||||||
|
#
|
||||||
|
# Edit the Makefile in the project folder instead (../Makefile). Each target
|
||||||
|
# has a -pre and a -post target defined where you can add customized code.
|
||||||
|
#
|
||||||
|
# This makefile implements configuration specific macros and targets.
|
||||||
|
|
||||||
|
|
||||||
|
# Environment
|
||||||
|
MKDIR=mkdir
|
||||||
|
CP=cp
|
||||||
|
GREP=grep
|
||||||
|
NM=nm
|
||||||
|
CCADMIN=CCadmin
|
||||||
|
RANLIB=ranlib
|
||||||
|
CC=gcc
|
||||||
|
CCC=g++
|
||||||
|
CXX=g++
|
||||||
|
FC=gfortran
|
||||||
|
AS=as
|
||||||
|
|
||||||
|
# Macros
|
||||||
|
CND_PLATFORM=GNU-Linux
|
||||||
|
CND_DLIB_EXT=so
|
||||||
|
CND_CONF=Debug
|
||||||
|
CND_DISTDIR=dist
|
||||||
|
CND_BUILDDIR=build
|
||||||
|
|
||||||
|
# Include project Makefile
|
||||||
|
include Makefile
|
||||||
|
|
||||||
|
# Object Directory
|
||||||
|
OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}
|
||||||
|
|
||||||
|
# Object Files
|
||||||
|
OBJECTFILES= \
|
||||||
|
${OBJECTDIR}/DBusMprisProxy.o \
|
||||||
|
${OBJECTDIR}/DBusPODProxy.o \
|
||||||
|
${OBJECTDIR}/main.o
|
||||||
|
|
||||||
|
|
||||||
|
# C Compiler Flags
|
||||||
|
CFLAGS=
|
||||||
|
|
||||||
|
# CC Compiler Flags
|
||||||
|
CCFLAGS=
|
||||||
|
CXXFLAGS=
|
||||||
|
|
||||||
|
# Fortran Compiler Flags
|
||||||
|
FFLAGS=
|
||||||
|
|
||||||
|
# Assembler Flags
|
||||||
|
ASFLAGS=
|
||||||
|
|
||||||
|
# Link Libraries and Options
|
||||||
|
LDLIBSOPTIONS=-ldbus-c++-1 -lboost_program_options
|
||||||
|
|
||||||
|
# Build Targets
|
||||||
|
.build-conf: ${BUILD_SUBPROJECTS}
|
||||||
|
"${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/pmp7
|
||||||
|
|
||||||
|
${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/pmp7: ${OBJECTFILES}
|
||||||
|
${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
|
||||||
|
${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/pmp7 ${OBJECTFILES} ${LDLIBSOPTIONS} -pthread
|
||||||
|
|
||||||
|
${OBJECTDIR}/DBusMprisProxy.o: DBusMprisProxy.cpp
|
||||||
|
${MKDIR} -p ${OBJECTDIR}
|
||||||
|
${RM} "$@.d"
|
||||||
|
$(COMPILE.cc) -g -I/usr/include/dbus-c++-1 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/DBusMprisProxy.o DBusMprisProxy.cpp
|
||||||
|
|
||||||
|
${OBJECTDIR}/DBusPODProxy.o: DBusPODProxy.cpp
|
||||||
|
${MKDIR} -p ${OBJECTDIR}
|
||||||
|
${RM} "$@.d"
|
||||||
|
$(COMPILE.cc) -g -I/usr/include/dbus-c++-1 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/DBusPODProxy.o DBusPODProxy.cpp
|
||||||
|
|
||||||
|
${OBJECTDIR}/main.o: main.cpp
|
||||||
|
${MKDIR} -p ${OBJECTDIR}
|
||||||
|
${RM} "$@.d"
|
||||||
|
$(COMPILE.cc) -g -I/usr/include/dbus-c++-1 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp
|
||||||
|
|
||||||
|
# Subprojects
|
||||||
|
.build-subprojects:
|
||||||
|
|
||||||
|
# Clean Targets
|
||||||
|
.clean-conf: ${CLEAN_SUBPROJECTS}
|
||||||
|
${RM} -r ${CND_BUILDDIR}/${CND_CONF}
|
||||||
|
|
||||||
|
# Subprojects
|
||||||
|
.clean-subprojects:
|
||||||
|
|
||||||
|
# Enable dependency checking
|
||||||
|
.dep.inc: .depcheck-impl
|
||||||
|
|
||||||
|
include .dep.inc
|
||||||
95
nbproject/Makefile-Release.mk
Normal file
95
nbproject/Makefile-Release.mk
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
#
|
||||||
|
# Generated Makefile - do not edit!
|
||||||
|
#
|
||||||
|
# Edit the Makefile in the project folder instead (../Makefile). Each target
|
||||||
|
# has a -pre and a -post target defined where you can add customized code.
|
||||||
|
#
|
||||||
|
# This makefile implements configuration specific macros and targets.
|
||||||
|
|
||||||
|
|
||||||
|
# Environment
|
||||||
|
MKDIR=mkdir
|
||||||
|
CP=cp
|
||||||
|
GREP=grep
|
||||||
|
NM=nm
|
||||||
|
CCADMIN=CCadmin
|
||||||
|
RANLIB=ranlib
|
||||||
|
CC=gcc
|
||||||
|
CCC=g++
|
||||||
|
CXX=g++
|
||||||
|
FC=gfortran
|
||||||
|
AS=as
|
||||||
|
|
||||||
|
# Macros
|
||||||
|
CND_PLATFORM=GNU-Linux
|
||||||
|
CND_DLIB_EXT=so
|
||||||
|
CND_CONF=Release
|
||||||
|
CND_DISTDIR=dist
|
||||||
|
CND_BUILDDIR=build
|
||||||
|
|
||||||
|
# Include project Makefile
|
||||||
|
include Makefile
|
||||||
|
|
||||||
|
# Object Directory
|
||||||
|
OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}
|
||||||
|
|
||||||
|
# Object Files
|
||||||
|
OBJECTFILES= \
|
||||||
|
${OBJECTDIR}/DBusMprisProxy.o \
|
||||||
|
${OBJECTDIR}/DBusPODProxy.o \
|
||||||
|
${OBJECTDIR}/main.o
|
||||||
|
|
||||||
|
|
||||||
|
# C Compiler Flags
|
||||||
|
CFLAGS=
|
||||||
|
|
||||||
|
# CC Compiler Flags
|
||||||
|
CCFLAGS=
|
||||||
|
CXXFLAGS=
|
||||||
|
|
||||||
|
# Fortran Compiler Flags
|
||||||
|
FFLAGS=
|
||||||
|
|
||||||
|
# Assembler Flags
|
||||||
|
ASFLAGS=
|
||||||
|
|
||||||
|
# Link Libraries and Options
|
||||||
|
LDLIBSOPTIONS=-ldbus-c++-1 -lboost_program_options
|
||||||
|
|
||||||
|
# Build Targets
|
||||||
|
.build-conf: ${BUILD_SUBPROJECTS}
|
||||||
|
"${MAKE}" -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/pmp7
|
||||||
|
|
||||||
|
${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/pmp7: ${OBJECTFILES}
|
||||||
|
${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
|
||||||
|
${LINK.cc} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/pmp7 ${OBJECTFILES} ${LDLIBSOPTIONS} -pthread
|
||||||
|
|
||||||
|
${OBJECTDIR}/DBusMprisProxy.o: DBusMprisProxy.cpp
|
||||||
|
${MKDIR} -p ${OBJECTDIR}
|
||||||
|
${RM} "$@.d"
|
||||||
|
$(COMPILE.cc) -O2 -I/usr/include/dbus-c++-1 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/DBusMprisProxy.o DBusMprisProxy.cpp
|
||||||
|
|
||||||
|
${OBJECTDIR}/DBusPODProxy.o: DBusPODProxy.cpp
|
||||||
|
${MKDIR} -p ${OBJECTDIR}
|
||||||
|
${RM} "$@.d"
|
||||||
|
$(COMPILE.cc) -O2 -I/usr/include/dbus-c++-1 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/DBusPODProxy.o DBusPODProxy.cpp
|
||||||
|
|
||||||
|
${OBJECTDIR}/main.o: main.cpp
|
||||||
|
${MKDIR} -p ${OBJECTDIR}
|
||||||
|
${RM} "$@.d"
|
||||||
|
$(COMPILE.cc) -O2 -I/usr/include/dbus-c++-1 -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/main.o main.cpp
|
||||||
|
|
||||||
|
# Subprojects
|
||||||
|
.build-subprojects:
|
||||||
|
|
||||||
|
# Clean Targets
|
||||||
|
.clean-conf: ${CLEAN_SUBPROJECTS}
|
||||||
|
${RM} -r ${CND_BUILDDIR}/${CND_CONF}
|
||||||
|
|
||||||
|
# Subprojects
|
||||||
|
.clean-subprojects:
|
||||||
|
|
||||||
|
# Enable dependency checking
|
||||||
|
.dep.inc: .depcheck-impl
|
||||||
|
|
||||||
|
include .dep.inc
|
||||||
133
nbproject/Makefile-impl.mk
Normal file
133
nbproject/Makefile-impl.mk
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
#
|
||||||
|
# Generated Makefile - do not edit!
|
||||||
|
#
|
||||||
|
# Edit the Makefile in the project folder instead (../Makefile). Each target
|
||||||
|
# has a pre- and a post- target defined where you can add customization code.
|
||||||
|
#
|
||||||
|
# This makefile implements macros and targets common to all configurations.
|
||||||
|
#
|
||||||
|
# NOCDDL
|
||||||
|
|
||||||
|
|
||||||
|
# Building and Cleaning subprojects are done by default, but can be controlled with the SUB
|
||||||
|
# macro. If SUB=no, subprojects will not be built or cleaned. The following macro
|
||||||
|
# statements set BUILD_SUB-CONF and CLEAN_SUB-CONF to .build-reqprojects-conf
|
||||||
|
# and .clean-reqprojects-conf unless SUB has the value 'no'
|
||||||
|
SUB_no=NO
|
||||||
|
SUBPROJECTS=${SUB_${SUB}}
|
||||||
|
BUILD_SUBPROJECTS_=.build-subprojects
|
||||||
|
BUILD_SUBPROJECTS_NO=
|
||||||
|
BUILD_SUBPROJECTS=${BUILD_SUBPROJECTS_${SUBPROJECTS}}
|
||||||
|
CLEAN_SUBPROJECTS_=.clean-subprojects
|
||||||
|
CLEAN_SUBPROJECTS_NO=
|
||||||
|
CLEAN_SUBPROJECTS=${CLEAN_SUBPROJECTS_${SUBPROJECTS}}
|
||||||
|
|
||||||
|
|
||||||
|
# Project Name
|
||||||
|
PROJECTNAME=PMP7
|
||||||
|
|
||||||
|
# Active Configuration
|
||||||
|
DEFAULTCONF=Debug
|
||||||
|
CONF=${DEFAULTCONF}
|
||||||
|
|
||||||
|
# All Configurations
|
||||||
|
ALLCONFS=Debug Release
|
||||||
|
|
||||||
|
|
||||||
|
# build
|
||||||
|
.build-impl: .build-pre .validate-impl .depcheck-impl
|
||||||
|
@#echo "=> Running $@... Configuration=$(CONF)"
|
||||||
|
"${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf
|
||||||
|
|
||||||
|
|
||||||
|
# clean
|
||||||
|
.clean-impl: .clean-pre .validate-impl .depcheck-impl
|
||||||
|
@#echo "=> Running $@... Configuration=$(CONF)"
|
||||||
|
"${MAKE}" -f nbproject/Makefile-${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf
|
||||||
|
|
||||||
|
|
||||||
|
# clobber
|
||||||
|
.clobber-impl: .clobber-pre .depcheck-impl
|
||||||
|
@#echo "=> Running $@..."
|
||||||
|
for CONF in ${ALLCONFS}; \
|
||||||
|
do \
|
||||||
|
"${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .clean-conf; \
|
||||||
|
done
|
||||||
|
|
||||||
|
# all
|
||||||
|
.all-impl: .all-pre .depcheck-impl
|
||||||
|
@#echo "=> Running $@..."
|
||||||
|
for CONF in ${ALLCONFS}; \
|
||||||
|
do \
|
||||||
|
"${MAKE}" -f nbproject/Makefile-$${CONF}.mk QMAKE=${QMAKE} SUBPROJECTS=${SUBPROJECTS} .build-conf; \
|
||||||
|
done
|
||||||
|
|
||||||
|
# build tests
|
||||||
|
.build-tests-impl: .build-impl .build-tests-pre
|
||||||
|
@#echo "=> Running $@... Configuration=$(CONF)"
|
||||||
|
"${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .build-tests-conf
|
||||||
|
|
||||||
|
# run tests
|
||||||
|
.test-impl: .build-tests-impl .test-pre
|
||||||
|
@#echo "=> Running $@... Configuration=$(CONF)"
|
||||||
|
"${MAKE}" -f nbproject/Makefile-${CONF}.mk SUBPROJECTS=${SUBPROJECTS} .test-conf
|
||||||
|
|
||||||
|
# dependency checking support
|
||||||
|
.depcheck-impl:
|
||||||
|
@echo "# This code depends on make tool being used" >.dep.inc
|
||||||
|
@if [ -n "${MAKE_VERSION}" ]; then \
|
||||||
|
echo "DEPFILES=\$$(wildcard \$$(addsuffix .d, \$${OBJECTFILES} \$${TESTOBJECTFILES}))" >>.dep.inc; \
|
||||||
|
echo "ifneq (\$${DEPFILES},)" >>.dep.inc; \
|
||||||
|
echo "include \$${DEPFILES}" >>.dep.inc; \
|
||||||
|
echo "endif" >>.dep.inc; \
|
||||||
|
else \
|
||||||
|
echo ".KEEP_STATE:" >>.dep.inc; \
|
||||||
|
echo ".KEEP_STATE_FILE:.make.state.\$${CONF}" >>.dep.inc; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
# configuration validation
|
||||||
|
.validate-impl:
|
||||||
|
@if [ ! -f nbproject/Makefile-${CONF}.mk ]; \
|
||||||
|
then \
|
||||||
|
echo ""; \
|
||||||
|
echo "Error: can not find the makefile for configuration '${CONF}' in project ${PROJECTNAME}"; \
|
||||||
|
echo "See 'make help' for details."; \
|
||||||
|
echo "Current directory: " `pwd`; \
|
||||||
|
echo ""; \
|
||||||
|
fi
|
||||||
|
@if [ ! -f nbproject/Makefile-${CONF}.mk ]; \
|
||||||
|
then \
|
||||||
|
exit 1; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# help
|
||||||
|
.help-impl: .help-pre
|
||||||
|
@echo "This makefile supports the following configurations:"
|
||||||
|
@echo " ${ALLCONFS}"
|
||||||
|
@echo ""
|
||||||
|
@echo "and the following targets:"
|
||||||
|
@echo " build (default target)"
|
||||||
|
@echo " clean"
|
||||||
|
@echo " clobber"
|
||||||
|
@echo " all"
|
||||||
|
@echo " help"
|
||||||
|
@echo ""
|
||||||
|
@echo "Makefile Usage:"
|
||||||
|
@echo " make [CONF=<CONFIGURATION>] [SUB=no] build"
|
||||||
|
@echo " make [CONF=<CONFIGURATION>] [SUB=no] clean"
|
||||||
|
@echo " make [SUB=no] clobber"
|
||||||
|
@echo " make [SUB=no] all"
|
||||||
|
@echo " make help"
|
||||||
|
@echo ""
|
||||||
|
@echo "Target 'build' will build a specific configuration and, unless 'SUB=no',"
|
||||||
|
@echo " also build subprojects."
|
||||||
|
@echo "Target 'clean' will clean a specific configuration and, unless 'SUB=no',"
|
||||||
|
@echo " also clean subprojects."
|
||||||
|
@echo "Target 'clobber' will remove all built files from all configurations and,"
|
||||||
|
@echo " unless 'SUB=no', also from subprojects."
|
||||||
|
@echo "Target 'all' will will build all configurations and, unless 'SUB=no',"
|
||||||
|
@echo " also build subprojects."
|
||||||
|
@echo "Target 'help' prints this message."
|
||||||
|
@echo ""
|
||||||
|
|
||||||
35
nbproject/Makefile-variables.mk
Normal file
35
nbproject/Makefile-variables.mk
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
#
|
||||||
|
# Generated - do not edit!
|
||||||
|
#
|
||||||
|
# NOCDDL
|
||||||
|
#
|
||||||
|
CND_BASEDIR=`pwd`
|
||||||
|
CND_BUILDDIR=build
|
||||||
|
CND_DISTDIR=dist
|
||||||
|
# Debug configuration
|
||||||
|
CND_PLATFORM_Debug=GNU-Linux
|
||||||
|
CND_ARTIFACT_DIR_Debug=dist/Debug/GNU-Linux
|
||||||
|
CND_ARTIFACT_NAME_Debug=pmp7
|
||||||
|
CND_ARTIFACT_PATH_Debug=dist/Debug/GNU-Linux/pmp7
|
||||||
|
CND_PACKAGE_DIR_Debug=dist/Debug/GNU-Linux/package
|
||||||
|
CND_PACKAGE_NAME_Debug=pmp7.tar
|
||||||
|
CND_PACKAGE_PATH_Debug=dist/Debug/GNU-Linux/package/pmp7.tar
|
||||||
|
# Release configuration
|
||||||
|
CND_PLATFORM_Release=GNU-Linux
|
||||||
|
CND_ARTIFACT_DIR_Release=dist/Release/GNU-Linux
|
||||||
|
CND_ARTIFACT_NAME_Release=pmp7
|
||||||
|
CND_ARTIFACT_PATH_Release=dist/Release/GNU-Linux/pmp7
|
||||||
|
CND_PACKAGE_DIR_Release=dist/Release/GNU-Linux/package
|
||||||
|
CND_PACKAGE_NAME_Release=pmp7.tar
|
||||||
|
CND_PACKAGE_PATH_Release=dist/Release/GNU-Linux/package/pmp7.tar
|
||||||
|
#
|
||||||
|
# include compiler specific variables
|
||||||
|
#
|
||||||
|
# dmake command
|
||||||
|
ROOT:sh = test -f nbproject/private/Makefile-variables.mk || \
|
||||||
|
(mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk)
|
||||||
|
#
|
||||||
|
# gmake command
|
||||||
|
.PHONY: $(shell test -f nbproject/private/Makefile-variables.mk || (mkdir -p nbproject/private && touch nbproject/private/Makefile-variables.mk))
|
||||||
|
#
|
||||||
|
include nbproject/private/Makefile-variables.mk
|
||||||
76
nbproject/Package-Debug.bash
Normal file
76
nbproject/Package-Debug.bash
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
#!/bin/bash -x
|
||||||
|
|
||||||
|
#
|
||||||
|
# Generated - do not edit!
|
||||||
|
#
|
||||||
|
|
||||||
|
# Macros
|
||||||
|
TOP=`pwd`
|
||||||
|
CND_PLATFORM=GNU-Linux
|
||||||
|
CND_CONF=Debug
|
||||||
|
CND_DISTDIR=dist
|
||||||
|
CND_BUILDDIR=build
|
||||||
|
CND_DLIB_EXT=so
|
||||||
|
NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
|
||||||
|
TMPDIRNAME=tmp-packaging
|
||||||
|
OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/pmp7
|
||||||
|
OUTPUT_BASENAME=pmp7
|
||||||
|
PACKAGE_TOP_DIR=pmp7/
|
||||||
|
|
||||||
|
# Functions
|
||||||
|
function checkReturnCode
|
||||||
|
{
|
||||||
|
rc=$?
|
||||||
|
if [ $rc != 0 ]
|
||||||
|
then
|
||||||
|
exit $rc
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function makeDirectory
|
||||||
|
# $1 directory path
|
||||||
|
# $2 permission (optional)
|
||||||
|
{
|
||||||
|
mkdir -p "$1"
|
||||||
|
checkReturnCode
|
||||||
|
if [ "$2" != "" ]
|
||||||
|
then
|
||||||
|
chmod $2 "$1"
|
||||||
|
checkReturnCode
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function copyFileToTmpDir
|
||||||
|
# $1 from-file path
|
||||||
|
# $2 to-file path
|
||||||
|
# $3 permission
|
||||||
|
{
|
||||||
|
cp "$1" "$2"
|
||||||
|
checkReturnCode
|
||||||
|
if [ "$3" != "" ]
|
||||||
|
then
|
||||||
|
chmod $3 "$2"
|
||||||
|
checkReturnCode
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Setup
|
||||||
|
cd "${TOP}"
|
||||||
|
mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
|
||||||
|
rm -rf ${NBTMPDIR}
|
||||||
|
mkdir -p ${NBTMPDIR}
|
||||||
|
|
||||||
|
# Copy files and create directories and links
|
||||||
|
cd "${TOP}"
|
||||||
|
makeDirectory "${NBTMPDIR}/pmp7/bin"
|
||||||
|
copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
|
||||||
|
|
||||||
|
|
||||||
|
# Generate tar file
|
||||||
|
cd "${TOP}"
|
||||||
|
rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/pmp7.tar
|
||||||
|
cd ${NBTMPDIR}
|
||||||
|
tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/pmp7.tar *
|
||||||
|
checkReturnCode
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
cd "${TOP}"
|
||||||
|
rm -rf ${NBTMPDIR}
|
||||||
76
nbproject/Package-Release.bash
Normal file
76
nbproject/Package-Release.bash
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
#!/bin/bash -x
|
||||||
|
|
||||||
|
#
|
||||||
|
# Generated - do not edit!
|
||||||
|
#
|
||||||
|
|
||||||
|
# Macros
|
||||||
|
TOP=`pwd`
|
||||||
|
CND_PLATFORM=GNU-Linux
|
||||||
|
CND_CONF=Release
|
||||||
|
CND_DISTDIR=dist
|
||||||
|
CND_BUILDDIR=build
|
||||||
|
CND_DLIB_EXT=so
|
||||||
|
NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
|
||||||
|
TMPDIRNAME=tmp-packaging
|
||||||
|
OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/pmp7
|
||||||
|
OUTPUT_BASENAME=pmp7
|
||||||
|
PACKAGE_TOP_DIR=pmp7/
|
||||||
|
|
||||||
|
# Functions
|
||||||
|
function checkReturnCode
|
||||||
|
{
|
||||||
|
rc=$?
|
||||||
|
if [ $rc != 0 ]
|
||||||
|
then
|
||||||
|
exit $rc
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function makeDirectory
|
||||||
|
# $1 directory path
|
||||||
|
# $2 permission (optional)
|
||||||
|
{
|
||||||
|
mkdir -p "$1"
|
||||||
|
checkReturnCode
|
||||||
|
if [ "$2" != "" ]
|
||||||
|
then
|
||||||
|
chmod $2 "$1"
|
||||||
|
checkReturnCode
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function copyFileToTmpDir
|
||||||
|
# $1 from-file path
|
||||||
|
# $2 to-file path
|
||||||
|
# $3 permission
|
||||||
|
{
|
||||||
|
cp "$1" "$2"
|
||||||
|
checkReturnCode
|
||||||
|
if [ "$3" != "" ]
|
||||||
|
then
|
||||||
|
chmod $3 "$2"
|
||||||
|
checkReturnCode
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Setup
|
||||||
|
cd "${TOP}"
|
||||||
|
mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
|
||||||
|
rm -rf ${NBTMPDIR}
|
||||||
|
mkdir -p ${NBTMPDIR}
|
||||||
|
|
||||||
|
# Copy files and create directories and links
|
||||||
|
cd "${TOP}"
|
||||||
|
makeDirectory "${NBTMPDIR}/pmp7/bin"
|
||||||
|
copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
|
||||||
|
|
||||||
|
|
||||||
|
# Generate tar file
|
||||||
|
cd "${TOP}"
|
||||||
|
rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/pmp7.tar
|
||||||
|
cd ${NBTMPDIR}
|
||||||
|
tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/pmp7.tar *
|
||||||
|
checkReturnCode
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
cd "${TOP}"
|
||||||
|
rm -rf ${NBTMPDIR}
|
||||||
138
nbproject/configurations.xml
Normal file
138
nbproject/configurations.xml
Normal file
@@ -0,0 +1,138 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<configurationDescriptor version="100">
|
||||||
|
<logicalFolder name="root" displayName="root" projectFiles="true" kind="ROOT">
|
||||||
|
<logicalFolder name="HeaderFiles"
|
||||||
|
displayName="Header Files"
|
||||||
|
projectFiles="true">
|
||||||
|
<itemPath>DBusMprisProxy.h</itemPath>
|
||||||
|
<itemPath>DBusPODProxy.h</itemPath>
|
||||||
|
<itemPath>globals.h</itemPath>
|
||||||
|
<itemPath>mpris_proxy.hpp</itemPath>
|
||||||
|
<itemPath>pod_proxy.hpp</itemPath>
|
||||||
|
</logicalFolder>
|
||||||
|
<logicalFolder name="ResourceFiles"
|
||||||
|
displayName="Resource Files"
|
||||||
|
projectFiles="true">
|
||||||
|
<itemPath>mpris_proxy.xml</itemPath>
|
||||||
|
<itemPath>pod_proxy.xml</itemPath>
|
||||||
|
</logicalFolder>
|
||||||
|
<logicalFolder name="SourceFiles"
|
||||||
|
displayName="Source Files"
|
||||||
|
projectFiles="true">
|
||||||
|
<itemPath>DBusMprisProxy.cpp</itemPath>
|
||||||
|
<itemPath>DBusPODProxy.cpp</itemPath>
|
||||||
|
<itemPath>main.cpp</itemPath>
|
||||||
|
</logicalFolder>
|
||||||
|
<logicalFolder name="TestFiles"
|
||||||
|
displayName="Test Files"
|
||||||
|
projectFiles="false"
|
||||||
|
kind="TEST_LOGICAL_FOLDER">
|
||||||
|
</logicalFolder>
|
||||||
|
<logicalFolder name="ExternalFiles"
|
||||||
|
displayName="Important Files"
|
||||||
|
projectFiles="false"
|
||||||
|
kind="IMPORTANT_FILES_FOLDER">
|
||||||
|
<itemPath>Makefile</itemPath>
|
||||||
|
</logicalFolder>
|
||||||
|
<itemPath>README.md</itemPath>
|
||||||
|
</logicalFolder>
|
||||||
|
<projectmakefile>Makefile</projectmakefile>
|
||||||
|
<confs>
|
||||||
|
<conf name="Debug" type="1">
|
||||||
|
<toolsSet>
|
||||||
|
<compilerSet>default</compilerSet>
|
||||||
|
<dependencyChecking>true</dependencyChecking>
|
||||||
|
<rebuildPropChanged>false</rebuildPropChanged>
|
||||||
|
</toolsSet>
|
||||||
|
<compileType>
|
||||||
|
<ccTool>
|
||||||
|
<incDir>
|
||||||
|
<pElem>/usr/include/dbus-c++-1</pElem>
|
||||||
|
</incDir>
|
||||||
|
</ccTool>
|
||||||
|
<linkerTool>
|
||||||
|
<linkerLibItems>
|
||||||
|
<linkerLibLibItem>dbus-c++-1</linkerLibLibItem>
|
||||||
|
<linkerLibLibItem>boost_program_options</linkerLibLibItem>
|
||||||
|
</linkerLibItems>
|
||||||
|
<commandLine>-pthread</commandLine>
|
||||||
|
</linkerTool>
|
||||||
|
</compileType>
|
||||||
|
<item path="DBusMprisProxy.cpp" ex="false" tool="1" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="DBusMprisProxy.h" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="DBusPODProxy.cpp" ex="false" tool="1" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="DBusPODProxy.h" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="README.md" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="globals.h" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="main.cpp" ex="false" tool="1" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="mpris_proxy.hpp" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="mpris_proxy.xml" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="pod_proxy.hpp" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="pod_proxy.xml" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
</conf>
|
||||||
|
<conf name="Release" type="1">
|
||||||
|
<toolsSet>
|
||||||
|
<compilerSet>default</compilerSet>
|
||||||
|
<dependencyChecking>true</dependencyChecking>
|
||||||
|
<rebuildPropChanged>false</rebuildPropChanged>
|
||||||
|
</toolsSet>
|
||||||
|
<compileType>
|
||||||
|
<cTool>
|
||||||
|
<developmentMode>5</developmentMode>
|
||||||
|
</cTool>
|
||||||
|
<ccTool>
|
||||||
|
<developmentMode>5</developmentMode>
|
||||||
|
<incDir>
|
||||||
|
<pElem>/usr/include/dbus-c++-1</pElem>
|
||||||
|
</incDir>
|
||||||
|
</ccTool>
|
||||||
|
<fortranCompilerTool>
|
||||||
|
<developmentMode>5</developmentMode>
|
||||||
|
</fortranCompilerTool>
|
||||||
|
<asmTool>
|
||||||
|
<developmentMode>5</developmentMode>
|
||||||
|
</asmTool>
|
||||||
|
<linkerTool>
|
||||||
|
<linkerLibItems>
|
||||||
|
<linkerLibLibItem>dbus-c++-1</linkerLibLibItem>
|
||||||
|
<linkerLibLibItem>boost_program_options</linkerLibLibItem>
|
||||||
|
</linkerLibItems>
|
||||||
|
<commandLine>-pthread</commandLine>
|
||||||
|
</linkerTool>
|
||||||
|
</compileType>
|
||||||
|
<item path="DBusMprisProxy.cpp" ex="false" tool="1" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="DBusMprisProxy.h" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="DBusPODProxy.cpp" ex="false" tool="1" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="DBusPODProxy.h" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="README.md" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="globals.h" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="main.cpp" ex="false" tool="1" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="mpris_proxy.hpp" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="mpris_proxy.xml" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="pod_proxy.hpp" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
<item path="pod_proxy.xml" ex="false" tool="3" flavor2="0">
|
||||||
|
</item>
|
||||||
|
</conf>
|
||||||
|
</confs>
|
||||||
|
</configurationDescriptor>
|
||||||
7
nbproject/private/Makefile-variables.mk
Normal file
7
nbproject/private/Makefile-variables.mk
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
#
|
||||||
|
# Generated - do not edit!
|
||||||
|
#
|
||||||
|
# NOCDDL
|
||||||
|
#
|
||||||
|
# Debug configuration
|
||||||
|
# Release configuration
|
||||||
75
nbproject/private/c_standard_headers_indexer.c
Normal file
75
nbproject/private/c_standard_headers_indexer.c
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
/*
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved.
|
||||||
|
*
|
||||||
|
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||||
|
* Other names may be trademarks of their respective owners.
|
||||||
|
*
|
||||||
|
* The contents of this file are subject to the terms of either the GNU
|
||||||
|
* General Public License Version 2 only ("GPL") or the Common
|
||||||
|
* Development and Distribution License("CDDL") (collectively, the
|
||||||
|
* "License"). You may not use this file except in compliance with the
|
||||||
|
* License. You can obtain a copy of the License at
|
||||||
|
* http://www.netbeans.org/cddl-gplv2.html
|
||||||
|
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
||||||
|
* specific language governing permissions and limitations under the
|
||||||
|
* License. When distributing the software, include this License Header
|
||||||
|
* Notice in each file and include the License file at
|
||||||
|
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
||||||
|
* particular file as subject to the "Classpath" exception as provided
|
||||||
|
* by Oracle in the GPL Version 2 section of the License file that
|
||||||
|
* accompanied this code. If applicable, add the following below the
|
||||||
|
* License Header, with the fields enclosed by brackets [] replaced by
|
||||||
|
* your own identifying information:
|
||||||
|
* "Portions Copyrighted [year] [name of copyright owner]"
|
||||||
|
*
|
||||||
|
* If you wish your version of this file to be governed by only the CDDL
|
||||||
|
* or only the GPL Version 2, indicate your decision by adding
|
||||||
|
* "[Contributor] elects to include this software in this distribution
|
||||||
|
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
||||||
|
* single choice of license, a recipient has the option to distribute
|
||||||
|
* your version of this file under either the CDDL, the GPL Version 2 or
|
||||||
|
* to extend the choice of license to its licensees as provided above.
|
||||||
|
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
||||||
|
* Version 2 license, then the option applies only if the new code is
|
||||||
|
* made subject to such option by the copyright holder.
|
||||||
|
*
|
||||||
|
* Contributor(s):
|
||||||
|
*/
|
||||||
|
|
||||||
|
// List of standard headers was taken in http://en.cppreference.com/w/c/header
|
||||||
|
|
||||||
|
#include <assert.h> // Conditionally compiled macro that compares its argument to zero
|
||||||
|
#include <ctype.h> // Functions to determine the type contained in character data
|
||||||
|
#include <errno.h> // Macros reporting error conditions
|
||||||
|
#include <float.h> // Limits of float types
|
||||||
|
#include <limits.h> // Sizes of basic types
|
||||||
|
#include <locale.h> // Localization utilities
|
||||||
|
#include <math.h> // Common mathematics functions
|
||||||
|
#include <setjmp.h> // Nonlocal jumps
|
||||||
|
#include <signal.h> // Signal handling
|
||||||
|
#include <stdarg.h> // Variable arguments
|
||||||
|
#include <stddef.h> // Common macro definitions
|
||||||
|
#include <stdio.h> // Input/output
|
||||||
|
#include <string.h> // String handling
|
||||||
|
#include <stdlib.h> // General utilities: memory management, program utilities, string conversions, random numbers
|
||||||
|
#include <time.h> // Time/date utilities
|
||||||
|
#include <iso646.h> // (since C95) Alternative operator spellings
|
||||||
|
#include <wchar.h> // (since C95) Extended multibyte and wide character utilities
|
||||||
|
#include <wctype.h> // (since C95) Wide character classification and mapping utilities
|
||||||
|
#ifdef _STDC_C99
|
||||||
|
#include <complex.h> // (since C99) Complex number arithmetic
|
||||||
|
#include <fenv.h> // (since C99) Floating-point environment
|
||||||
|
#include <inttypes.h> // (since C99) Format conversion of integer types
|
||||||
|
#include <stdbool.h> // (since C99) Boolean type
|
||||||
|
#include <stdint.h> // (since C99) Fixed-width integer types
|
||||||
|
#include <tgmath.h> // (since C99) Type-generic math (macros wrapping math.h and complex.h)
|
||||||
|
#endif
|
||||||
|
#ifdef _STDC_C11
|
||||||
|
#include <stdalign.h> // (since C11) alignas and alignof convenience macros
|
||||||
|
#include <stdatomic.h> // (since C11) Atomic types
|
||||||
|
#include <stdnoreturn.h> // (since C11) noreturn convenience macros
|
||||||
|
#include <threads.h> // (since C11) Thread library
|
||||||
|
#include <uchar.h> // (since C11) UTF-16 and UTF-32 character utilities
|
||||||
|
#endif
|
||||||
73
nbproject/private/configurations.xml
Normal file
73
nbproject/private/configurations.xml
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<configurationDescriptor version="100">
|
||||||
|
<projectmakefile>Makefile</projectmakefile>
|
||||||
|
<confs>
|
||||||
|
<conf name="Debug" type="1">
|
||||||
|
<toolsSet>
|
||||||
|
<developmentServer>localhost</developmentServer>
|
||||||
|
<platform>2</platform>
|
||||||
|
</toolsSet>
|
||||||
|
<dbx_gdbdebugger version="1">
|
||||||
|
<gdb_pathmaps>
|
||||||
|
</gdb_pathmaps>
|
||||||
|
<gdb_interceptlist>
|
||||||
|
<gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/>
|
||||||
|
</gdb_interceptlist>
|
||||||
|
<gdb_options>
|
||||||
|
<DebugOptions>
|
||||||
|
</DebugOptions>
|
||||||
|
</gdb_options>
|
||||||
|
<gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/>
|
||||||
|
</dbx_gdbdebugger>
|
||||||
|
<nativedebugger version="1">
|
||||||
|
<engine>gdb</engine>
|
||||||
|
</nativedebugger>
|
||||||
|
<runprofile version="9">
|
||||||
|
<runcommandpicklist>
|
||||||
|
<runcommandpicklistitem>"${OUTPUT_PATH}"</runcommandpicklistitem>
|
||||||
|
<runcommandpicklistitem>"${OUTPUT_PATH}" -b vlc</runcommandpicklistitem>
|
||||||
|
</runcommandpicklist>
|
||||||
|
<runcommand>"${OUTPUT_PATH}" -b vlc</runcommand>
|
||||||
|
<rundir></rundir>
|
||||||
|
<buildfirst>true</buildfirst>
|
||||||
|
<terminal-type>0</terminal-type>
|
||||||
|
<remove-instrumentation>0</remove-instrumentation>
|
||||||
|
<environment>
|
||||||
|
</environment>
|
||||||
|
</runprofile>
|
||||||
|
</conf>
|
||||||
|
<conf name="Release" type="1">
|
||||||
|
<toolsSet>
|
||||||
|
<developmentServer>localhost</developmentServer>
|
||||||
|
<platform>2</platform>
|
||||||
|
</toolsSet>
|
||||||
|
<dbx_gdbdebugger version="1">
|
||||||
|
<gdb_pathmaps>
|
||||||
|
</gdb_pathmaps>
|
||||||
|
<gdb_interceptlist>
|
||||||
|
<gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/>
|
||||||
|
</gdb_interceptlist>
|
||||||
|
<gdb_options>
|
||||||
|
<DebugOptions>
|
||||||
|
</DebugOptions>
|
||||||
|
</gdb_options>
|
||||||
|
<gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/>
|
||||||
|
</dbx_gdbdebugger>
|
||||||
|
<nativedebugger version="1">
|
||||||
|
<engine>gdb</engine>
|
||||||
|
</nativedebugger>
|
||||||
|
<runprofile version="9">
|
||||||
|
<runcommandpicklist>
|
||||||
|
<runcommandpicklistitem>"${OUTPUT_PATH}"</runcommandpicklistitem>
|
||||||
|
</runcommandpicklist>
|
||||||
|
<runcommand>"${OUTPUT_PATH}"</runcommand>
|
||||||
|
<rundir></rundir>
|
||||||
|
<buildfirst>true</buildfirst>
|
||||||
|
<terminal-type>0</terminal-type>
|
||||||
|
<remove-instrumentation>0</remove-instrumentation>
|
||||||
|
<environment>
|
||||||
|
</environment>
|
||||||
|
</runprofile>
|
||||||
|
</conf>
|
||||||
|
</confs>
|
||||||
|
</configurationDescriptor>
|
||||||
135
nbproject/private/cpp_standard_headers_indexer.cpp
Normal file
135
nbproject/private/cpp_standard_headers_indexer.cpp
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
/*
|
||||||
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||||
|
*
|
||||||
|
* Copyright (c) 2016 Oracle and/or its affiliates. All rights reserved.
|
||||||
|
*
|
||||||
|
* Oracle and Java are registered trademarks of Oracle and/or its affiliates.
|
||||||
|
* Other names may be trademarks of their respective owners.
|
||||||
|
*
|
||||||
|
* The contents of this file are subject to the terms of either the GNU
|
||||||
|
* General Public License Version 2 only ("GPL") or the Common
|
||||||
|
* Development and Distribution License("CDDL") (collectively, the
|
||||||
|
* "License"). You may not use this file except in compliance with the
|
||||||
|
* License. You can obtain a copy of the License at
|
||||||
|
* http://www.netbeans.org/cddl-gplv2.html
|
||||||
|
* or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
|
||||||
|
* specific language governing permissions and limitations under the
|
||||||
|
* License. When distributing the software, include this License Header
|
||||||
|
* Notice in each file and include the License file at
|
||||||
|
* nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
|
||||||
|
* particular file as subject to the "Classpath" exception as provided
|
||||||
|
* by Oracle in the GPL Version 2 section of the License file that
|
||||||
|
* accompanied this code. If applicable, add the following below the
|
||||||
|
* License Header, with the fields enclosed by brackets [] replaced by
|
||||||
|
* your own identifying information:
|
||||||
|
* "Portions Copyrighted [year] [name of copyright owner]"
|
||||||
|
*
|
||||||
|
* If you wish your version of this file to be governed by only the CDDL
|
||||||
|
* or only the GPL Version 2, indicate your decision by adding
|
||||||
|
* "[Contributor] elects to include this software in this distribution
|
||||||
|
* under the [CDDL or GPL Version 2] license." If you do not indicate a
|
||||||
|
* single choice of license, a recipient has the option to distribute
|
||||||
|
* your version of this file under either the CDDL, the GPL Version 2 or
|
||||||
|
* to extend the choice of license to its licensees as provided above.
|
||||||
|
* However, if you add GPL Version 2 code and therefore, elected the GPL
|
||||||
|
* Version 2 license, then the option applies only if the new code is
|
||||||
|
* made subject to such option by the copyright holder.
|
||||||
|
*
|
||||||
|
* Contributor(s):
|
||||||
|
*/
|
||||||
|
|
||||||
|
// List of standard headers was taken in http://en.cppreference.com/w/cpp/header
|
||||||
|
|
||||||
|
#include <cstdlib> // General purpose utilities: program control, dynamic memory allocation, random numbers, sort and search
|
||||||
|
#include <csignal> // Functions and macro constants for signal management
|
||||||
|
#include <csetjmp> // Macro (and function) that saves (and jumps) to an execution context
|
||||||
|
#include <cstdarg> // Handling of variable length argument lists
|
||||||
|
#include <typeinfo> // Runtime type information utilities
|
||||||
|
#include <bitset> // std::bitset class template
|
||||||
|
#include <functional> // Function objects, designed for use with the standard algorithms
|
||||||
|
#include <utility> // Various utility components
|
||||||
|
#include <ctime> // C-style time/date utilites
|
||||||
|
#include <cstddef> // typedefs for types such as size_t, NULL and others
|
||||||
|
#include <new> // Low-level memory management utilities
|
||||||
|
#include <memory> // Higher level memory management utilities
|
||||||
|
#include <climits> // limits of integral types
|
||||||
|
#include <cfloat> // limits of float types
|
||||||
|
#include <limits> // standardized way to query properties of arithmetic types
|
||||||
|
#include <exception> // Exception handling utilities
|
||||||
|
#include <stdexcept> // Standard exception objects
|
||||||
|
#include <cassert> // Conditionally compiled macro that compares its argument to zero
|
||||||
|
#include <cerrno> // Macro containing the last error number
|
||||||
|
#include <cctype> // functions to determine the type contained in character data
|
||||||
|
#include <cwctype> // functions for determining the type of wide character data
|
||||||
|
#include <cstring> // various narrow character string handling functions
|
||||||
|
#include <cwchar> // various wide and multibyte string handling functions
|
||||||
|
#include <string> // std::basic_string class template
|
||||||
|
#include <vector> // std::vector container
|
||||||
|
#include <deque> // std::deque container
|
||||||
|
#include <list> // std::list container
|
||||||
|
#include <set> // std::set and std::multiset associative containers
|
||||||
|
#include <map> // std::map and std::multimap associative containers
|
||||||
|
#include <stack> // std::stack container adaptor
|
||||||
|
#include <queue> // std::queue and std::priority_queue container adaptors
|
||||||
|
#include <algorithm> // Algorithms that operate on containers
|
||||||
|
#include <iterator> // Container iterators
|
||||||
|
#include <cmath> // Common mathematics functions
|
||||||
|
#include <complex> // Complex number type
|
||||||
|
#include <valarray> // Class for representing and manipulating arrays of values
|
||||||
|
#include <numeric> // Numeric operations on values in containers
|
||||||
|
#include <iosfwd> // forward declarations of all classes in the input/output library
|
||||||
|
#include <ios> // std::ios_base class, std::basic_ios class template and several typedefs
|
||||||
|
#include <istream> // std::basic_istream class template and several typedefs
|
||||||
|
#include <ostream> // std::basic_ostream, std::basic_iostream class templates and several typedefs
|
||||||
|
#include <iostream> // several standard stream objects
|
||||||
|
#include <fstream> // std::basic_fstream, std::basic_ifstream, std::basic_ofstream class templates and several typedefs
|
||||||
|
#include <sstream> // std::basic_stringstream, std::basic_istringstream, std::basic_ostringstream class templates and several typedefs
|
||||||
|
#include <strstream> // std::strstream, std::istrstream, std::ostrstream(deprecated)
|
||||||
|
#include <iomanip> // Helper functions to control the format or input and output
|
||||||
|
#include <streambuf> // std::basic_streambuf class template
|
||||||
|
#include <cstdio> // C-style input-output functions
|
||||||
|
#include <locale> // Localization utilities
|
||||||
|
#include <clocale> // C localization utilities
|
||||||
|
#include <ciso646> // empty header. The macros that appear in iso646.h in C are keywords in C++
|
||||||
|
#if __cplusplus >= 201103L
|
||||||
|
#include <typeindex> // (since C++11) std::type_index
|
||||||
|
#include <type_traits> // (since C++11) Compile-time type information
|
||||||
|
#include <chrono> // (since C++11) C++ time utilites
|
||||||
|
#include <initializer_list> // (since C++11) std::initializer_list class template
|
||||||
|
#include <tuple> // (since C++11) std::tuple class template
|
||||||
|
#include <scoped_allocator> // (since C++11) Nested allocator class
|
||||||
|
#include <cstdint> // (since C++11) fixed-size types and limits of other types
|
||||||
|
#include <cinttypes> // (since C++11) formatting macros , intmax_t and uintmax_t math and conversions
|
||||||
|
#include <system_error> // (since C++11) defines std::error_code, a platform-dependent error code
|
||||||
|
#include <cuchar> // (since C++11) C-style Unicode character conversion functions
|
||||||
|
#include <array> // (since C++11) std::array container
|
||||||
|
#include <forward_list> // (since C++11) std::forward_list container
|
||||||
|
#include <unordered_set> // (since C++11) std::unordered_set and std::unordered_multiset unordered associative containers
|
||||||
|
#include <unordered_map> // (since C++11) std::unordered_map and std::unordered_multimap unordered associative containers
|
||||||
|
#include <random> // (since C++11) Random number generators and distributions
|
||||||
|
#include <ratio> // (since C++11) Compile-time rational arithmetic
|
||||||
|
#include <cfenv> // (since C++11) Floating-point environment access functions
|
||||||
|
#include <codecvt> // (since C++11) Unicode conversion facilities
|
||||||
|
#include <regex> // (since C++11) Classes, algorithms and iterators to support regular expression processing
|
||||||
|
#include <atomic> // (since C++11) Atomic operations library
|
||||||
|
#include <ccomplex> // (since C++11)(deprecated in C++17) simply includes the header <complex>
|
||||||
|
#include <ctgmath> // (since C++11)(deprecated in C++17) simply includes the headers <ccomplex> (until C++17)<complex> (since C++17) and <cmath>: the overloads equivalent to the contents of the C header tgmath.h are already provided by those headers
|
||||||
|
#include <cstdalign> // (since C++11)(deprecated in C++17) defines one compatibility macro constant
|
||||||
|
#include <cstdbool> // (since C++11)(deprecated in C++17) defines one compatibility macro constant
|
||||||
|
#include <thread> // (since C++11) std::thread class and supporting functions
|
||||||
|
#include <mutex> // (since C++11) mutual exclusion primitives
|
||||||
|
#include <future> // (since C++11) primitives for asynchronous computations
|
||||||
|
#include <condition_variable> // (since C++11) thread waiting conditions
|
||||||
|
#endif
|
||||||
|
#if __cplusplus >= 201300L
|
||||||
|
#include <shared_mutex> // (since C++14) shared mutual exclusion primitives
|
||||||
|
#endif
|
||||||
|
#if __cplusplus >= 201500L
|
||||||
|
#include <any> // (since C++17) std::any class template
|
||||||
|
#include <optional> // (since C++17) std::optional class template
|
||||||
|
#include <variant> // (since C++17) std::variant class template
|
||||||
|
#include <memory_resource> // (since C++17) Polymorphic allocators and memory resources
|
||||||
|
#include <string_view> // (since C++17) std::basic_string_view class template
|
||||||
|
#include <execution> // (since C++17) Predefined execution policies for parallel versions of the algorithms
|
||||||
|
#include <filesystem> // (since C++17) std::path class and supporting functions
|
||||||
|
#endif
|
||||||
42
nbproject/private/launcher.properties
Normal file
42
nbproject/private/launcher.properties
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
# Launchers File syntax:
|
||||||
|
#
|
||||||
|
# [Must-have property line]
|
||||||
|
# launcher1.runCommand=<Run Command>
|
||||||
|
# [Optional extra properties]
|
||||||
|
# launcher1.displayName=<Display Name, runCommand by default>
|
||||||
|
# launcher1.hide=<true if lancher is not visible in menu, false by default>
|
||||||
|
# launcher1.buildCommand=<Build Command, Build Command specified in project properties by default>
|
||||||
|
# launcher1.runDir=<Run Directory, ${PROJECT_DIR} by default>
|
||||||
|
# launcher1.runInOwnTab=<false if launcher reuse common "Run" output tab, true by default>
|
||||||
|
# launcher1.symbolFiles=<Symbol Files loaded by debugger, ${OUTPUT_PATH} by default>
|
||||||
|
# launcher1.env.<Environment variable KEY>=<Environment variable VALUE>
|
||||||
|
# (If this value is quoted with ` it is handled as a native command which execution result will become the value)
|
||||||
|
# [Common launcher properties]
|
||||||
|
# common.runDir=<Run Directory>
|
||||||
|
# (This value is overwritten by a launcher specific runDir value if the latter exists)
|
||||||
|
# common.env.<Environment variable KEY>=<Environment variable VALUE>
|
||||||
|
# (Environment variables from common launcher are merged with launcher specific variables)
|
||||||
|
# common.symbolFiles=<Symbol Files loaded by debugger>
|
||||||
|
# (This value is overwritten by a launcher specific symbolFiles value if the latter exists)
|
||||||
|
#
|
||||||
|
# In runDir, symbolFiles and env fields you can use these macroses:
|
||||||
|
# ${PROJECT_DIR} - project directory absolute path
|
||||||
|
# ${OUTPUT_PATH} - linker output path (relative to project directory path)
|
||||||
|
# ${OUTPUT_BASENAME}- linker output filename
|
||||||
|
# ${TESTDIR} - test files directory (relative to project directory path)
|
||||||
|
# ${OBJECTDIR} - object files directory (relative to project directory path)
|
||||||
|
# ${CND_DISTDIR} - distribution directory (relative to project directory path)
|
||||||
|
# ${CND_BUILDDIR} - build directory (relative to project directory path)
|
||||||
|
# ${CND_PLATFORM} - platform name
|
||||||
|
# ${CND_CONF} - configuration name
|
||||||
|
# ${CND_DLIB_EXT} - dynamic library extension
|
||||||
|
#
|
||||||
|
# All the project launchers must be listed in the file!
|
||||||
|
#
|
||||||
|
# launcher1.runCommand=...
|
||||||
|
# launcher2.runCommand=...
|
||||||
|
# ...
|
||||||
|
# common.runDir=...
|
||||||
|
# common.env.KEY=VALUE
|
||||||
|
|
||||||
|
# launcher1.runCommand=<type your run command here>
|
||||||
14
nbproject/private/private.xml
Normal file
14
nbproject/private/private.xml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
|
||||||
|
<data xmlns="http://www.netbeans.org/ns/make-project-private/1">
|
||||||
|
<activeConfTypeElem>1</activeConfTypeElem>
|
||||||
|
<activeConfIndexElem>0</activeConfIndexElem>
|
||||||
|
</data>
|
||||||
|
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
|
||||||
|
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
|
||||||
|
<group>
|
||||||
|
<file>file:/home/user/tmp/cpp/NetBeansProjects/PMP7/main.cpp</file>
|
||||||
|
<file>file:/home/user/tmp/cpp/NetBeansProjects/PMP7/README.md</file>
|
||||||
|
</group>
|
||||||
|
</open-files>
|
||||||
|
</project-private>
|
||||||
31
nbproject/project.xml
Normal file
31
nbproject/project.xml
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project xmlns="http://www.netbeans.org/ns/project/1">
|
||||||
|
<type>org.netbeans.modules.cnd.makeproject</type>
|
||||||
|
<configuration>
|
||||||
|
<data xmlns="http://www.netbeans.org/ns/make-project/1">
|
||||||
|
<name>PMP7</name>
|
||||||
|
<c-extensions/>
|
||||||
|
<cpp-extensions>cpp</cpp-extensions>
|
||||||
|
<header-extensions>h,hpp</header-extensions>
|
||||||
|
<sourceEncoding>UTF-8</sourceEncoding>
|
||||||
|
<make-dep-projects/>
|
||||||
|
<sourceRootList/>
|
||||||
|
<confList>
|
||||||
|
<confElem>
|
||||||
|
<name>Debug</name>
|
||||||
|
<type>1</type>
|
||||||
|
</confElem>
|
||||||
|
<confElem>
|
||||||
|
<name>Release</name>
|
||||||
|
<type>1</type>
|
||||||
|
</confElem>
|
||||||
|
</confList>
|
||||||
|
<formatting>
|
||||||
|
<project-formatting-style>true</project-formatting-style>
|
||||||
|
<c-style>ANSI|ANSI</c-style>
|
||||||
|
<cpp-style>ANSI|ANSI</cpp-style>
|
||||||
|
<header-style>ANSI|ANSI</header-style>
|
||||||
|
</formatting>
|
||||||
|
</data>
|
||||||
|
</configuration>
|
||||||
|
</project>
|
||||||
62
pod_proxy.hpp
Normal file
62
pod_proxy.hpp
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
|
||||||
|
/*
|
||||||
|
* This file was automatically generated by dbusxx-xml2cpp; DO NOT EDIT!
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __dbusxx__pod_proxy_hpp__PROXY_MARSHAL_H
|
||||||
|
#define __dbusxx__pod_proxy_hpp__PROXY_MARSHAL_H
|
||||||
|
|
||||||
|
#include <dbus-c++/dbus.h>
|
||||||
|
#include <cassert>
|
||||||
|
|
||||||
|
namespace pedal {
|
||||||
|
|
||||||
|
class event_proxy
|
||||||
|
: public ::DBus::InterfaceProxy
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
event_proxy()
|
||||||
|
: ::DBus::InterfaceProxy("pedal.event")
|
||||||
|
{
|
||||||
|
connect_signal(event_proxy, OnPedalEvent, _OnPedalEvent_stub);
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
/* properties exported by this interface */
|
||||||
|
public:
|
||||||
|
|
||||||
|
/* methods exported by this interface,
|
||||||
|
* this functions will invoke the corresponding methods on the remote objects
|
||||||
|
*/
|
||||||
|
void Quit()
|
||||||
|
{
|
||||||
|
::DBus::CallMessage call;
|
||||||
|
call.member("Quit");
|
||||||
|
::DBus::Message ret = invoke_method (call);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
/* signal handlers for this interface
|
||||||
|
*/
|
||||||
|
virtual void OnPedalEvent(const int32_t& code) = 0;
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
/* unmarshalers (to unpack the DBus message before calling the actual signal handler)
|
||||||
|
*/
|
||||||
|
void _OnPedalEvent_stub(const ::DBus::SignalMessage &sig)
|
||||||
|
{
|
||||||
|
::DBus::MessageIter ri = sig.reader();
|
||||||
|
|
||||||
|
int32_t code;
|
||||||
|
ri >> code;
|
||||||
|
OnPedalEvent(code);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif //__dbusxx__pod_proxy_hpp__PROXY_MARSHAL_H
|
||||||
12
pod_proxy.xml
Normal file
12
pod_proxy.xml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
|
||||||
|
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
|
||||||
|
<node name="/pedal/event">
|
||||||
|
<interface name="pedal.event">
|
||||||
|
<method name="Quit">
|
||||||
|
<arg/>
|
||||||
|
</method>
|
||||||
|
<signal name="OnPedalEvent">
|
||||||
|
<arg type="i" name="code" direction="out"/>
|
||||||
|
</signal>
|
||||||
|
</interface>
|
||||||
|
</node>
|
||||||
Reference in New Issue
Block a user