Skip to content

Commit

Permalink
Merge pull request #2 from kampfschlaefer/qt5
Browse files Browse the repository at this point in the history
Merge qt5 branch into master. fixes #5
  • Loading branch information
kampfschlaefer authored Nov 2, 2019
2 parents ed5c9a8 + 6ecbe7f commit 7f86650
Show file tree
Hide file tree
Showing 48 changed files with 891 additions and 268 deletions.
15 changes: 15 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,18 @@
*.lai
*.la
*.a

# buildsystem stuff
*.moc
*.pyc
.sconsign.dblite
.sconf_temp/
cache/
config.log

# compiled binaries
jackmix/jackmix
libcontrol/controlsender_test
libgui/channelselector_test
libgui/midicontrolchannelassigner_test
libgui/slider_test
9 changes: 8 additions & 1 deletion NEWS
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
VERSION 0.6.0
-------------

Now requires qt5 instead of qt4; user experience should be
unchanged (hopefully!) Nick/.


VERSION 0.5.2
-------------

Expand Down Expand Up @@ -42,7 +49,7 @@ Points to note:
* You can't unassign a midi parameter -- it can be set to
0 though (my control surface doesn't have controller 0;
some may I suppose).

* MIDI control parameter numbers are saved in the xml file
generated by File->Save File... menu action, but this means
there are extra XML attributes which might upset older versions
Expand Down
13 changes: 8 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,20 @@

## Authors

| Contact | Responsibility |
| --- | --- |
| Author | Responsibility |
|--------------------------------------|--------------------------|
| Arnold Krille <arnold@arnoldarts.de> | Almost everything. |
| Nick Bailey <nick@n-ism.org> | MIDI control extensions. |
| | Qt5 port attempt. |
| Daniel Sheeler | De-zippering |

---
See INSTALL for installation instructions;
AUTHORS for contact information;
NEWS for new features in this version.
See:

* INSTALL for installation instructions;
* AUTHORS for contact information;
* NEWS for new features in this version.


JackMix is a matrix mixer allowing p input channels to be mixed into
q output channles by a matrix of faders. It relies on the Jack framework
Expand Down
82 changes: 51 additions & 31 deletions SConstruct
Original file line number Diff line number Diff line change
Expand Up @@ -6,56 +6,76 @@ import os
# LOAD THE ENVIRONMENT AND SET UP THE TOOLS
###################################################################

## Load the builders in config
# Load the builders in config
env = Environment(
ENV=os.environ,
tools=['default', 'pkgconfig', 'qt4muc' ],
tools=['default', 'pkgconfig', 'qt5muc'],
toolpath=['admin']
)

env.Replace( LIBS="" )
env.Replace( LIBPATH="" )
env.Replace(LIBS="")
env.Replace(LIBPATH="")

env.MergeFlags( ['-Wall', '-Werror', '-g', '-fpic'] )
env.MergeFlags(['-Wall', '-Werror', '-g', '-fpic', '-std=c++11'])

tests = { }
tests.update( env['PKGCONFIG_TESTS'] )
tests = {}
tests.update(env['PKGCONFIG_TESTS'])

conf = Configure( env, custom_tests=tests, conf_dir='cache', log_file='cache/config.log' )
conf = Configure(
env,
custom_tests=tests,
conf_dir='cache',
log_file='cache/config.log'
)

if not conf.CheckHeader( 'stdio.h', language="C" ):
Exit( 1 )
if not conf.CheckHeader( "iostream", language="C++" ):
Exit( 1 )
if not conf.CheckHeader('stdio.h', language="C"):
Exit(1)
if not conf.CheckHeader("iostream", language="C++"):
Exit(1)

allpresent = 1

allpresent &= conf.CheckForPKGConfig()

pkgs = {
'jack' : '0.100.0',
'lash-1.0' : '0.5.1',
'QtCore' : '4.2',
'QtGui' : '4.2',
'QtXml' : '4.2',
'alsa' : '1.0'
}
'jack': '0.100.0',
'lash-1.0': '0.5.1',
'Qt5Core': '5.3',
'Qt5Widgets': '5.3',
'Qt5Gui': '5.3',
'Qt5Xml': '5.3',
'alsa': '1.0'
}
for pkg in pkgs:
name2 = pkg.replace("+","").replace(".","").replace("-","").upper()
env['%s_FLAGS' % name2] = conf.GetPKGFlags( pkg, pkgs[pkg] )
if env['%s_FLAGS'%name2] == 0:
name2 = pkg.replace("+", "").replace(".", "").replace("-", "").upper()
env['%s_FLAGS' % name2] = conf.GetPKGFlags(pkg, pkgs[pkg])
if env['%s_FLAGS' % name2] == 0:
allpresent &= 0

if not allpresent:
print "(At least) One of the dependencies is missing. I can't go on without it..."
Exit( 1 )
print(
"(At least) One of the dependencies is missing. I can't go on without it..."
)
Exit(1)

env = conf.Finish()

env.MergeFlags( "-I#" )

env.MergeFlags( env["QTCORE_FLAGS"] )

## target processing is done in the subdirectory
env.SConscript( dirs=['libcore','libqlash','libgui','backend','libmatrix','libelements','libcontrol','jackmix'], exports="env" )

env.MergeFlags("-I#")

print("Merging %s" % env["QT5WIDGETS_FLAGS"])
env.MergeFlags(env["QT5WIDGETS_FLAGS"])

# target processing is done in the subdirectory
env.SConscript(
dirs=[
'libcore',
'libqlash',
'libgui',
'backend',
'libmatrix',
'libelements',
'libcontrol',
'jackmix'
],
exports="env"
)
10 changes: 10 additions & 0 deletions TODO
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
* Test this qt5 version properly

- currently compiles, builds and runs OK on my machine (nick)

* Make matix components pretty

- proper group buttons, better adjust buttons...
I can't remember the key bindings, how can I expect the
casual user to?

* Check validity under the following circumstances:

- Removing all inputs and/or outputs (may segfault?)
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
JackMix v0.5.2
JackMix v0.6.0
17 changes: 9 additions & 8 deletions admin/qt4muc.py → admin/qt5muc.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,10 @@ def uic_scanner( node, env, path ):
#print "uic_scanner returning" + str(ret)
return ret

if str(node).split(".")[-1] == "h":
node_parts = str(node).split(".")
node_extn = node_parts[-1] if len(node_parts) > 1 else ""

if node_extn in [ "h", "" ]:
#print "uic_scanner processing a h-file " + str(node)
ret = []
for inc in includes:
Expand All @@ -64,11 +67,9 @@ def uic_scanner( node, env, path ):
#print [ header_to_check.split("/")[-1] ]
ret.append( header_to_check.split("/")[-1] )

#if ret != []:
# print "uic_scanner returning " + str(ret)
return ret

print "\nWarning! was called with an unhandled suffix: " + str(node).split(".")[-1] + " !\n"
print("\nWarning! was called with an unhandled suffix: [{}]\\n".format(node_extn))
return []

def GetAppVersion( context, app, version ):
Expand All @@ -89,7 +90,7 @@ def GetAppVersion( context, app, version ):
return ret

def generate( env ):
print "Configuring qt4muc..."
print "Configuring qt5muc..."

conf = env.Configure( custom_tests = { 'GetAppVersion' : GetAppVersion } )

Expand All @@ -101,15 +102,15 @@ def CommandFromList( commandlist, version ):
ret = command
return ret

moc = CommandFromList( ( "moc", "moc4", "moc-qt4" ), "Qt 4." )
moc = CommandFromList( ( "moc", "moc5", "moc-qt5" ), "moc 5." )
if len( moc ) < 3:
env.Exit( 1 )

uic = CommandFromList( ( "uic", "uic4", "uic-qt4" ), "4." )
uic = CommandFromList( ( "uic", "uic5", "uic-qt5" ), "5." )
if len( uic ) < 3:
env.Exit( 1 )

rcc = CommandFromList( ( "rcc", "rcc4", "rcc-qt4" ), "4." )
rcc = CommandFromList( ( "rcc", "rcc5", "rcc-qt5" ), "5." )
if len( rcc ) < 3:
env.Exit( 1 )

Expand Down
2 changes: 1 addition & 1 deletion backend/SConscript
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
Import( 'env' )

env = env.Clone()
env.MergeFlags( "-I#/libcore" )
env.MergeFlags( "-I# -I#/libcore -I#/backend" )
env.StaticLibrary( target="jackmix_backend", source=["jack_backend.cpp"] )

Loading

0 comments on commit 7f86650

Please sign in to comment.