|
From: Patrick S. <psh...@bo...> - 2014-02-07 07:53:34
|
On Fri, February 7, 2014 7:41 am, Christian Schoenebeck wrote:
> Ok, I just committed an initial version of the LSCP shell to SVN. The
> application is just called "lscp". There is also a man page.
>
> I decided to go the thin-client route, that is LSCP aware stuff being
> handled
> on sampler side, and the shell application is more or less just forwarding
> individual key strokes to the sampler and handling output format (color &
> printing) of the returned informations on the command line terminal. That
> should make the shell be versatile for being used successfully against
> various
> LinuxSampler versions, no matter what the exact LSCP version is, and keeps
> development/maintenance effort low.
>
> Current shell features:
>
> - Colored highlighting while typing (i.e. good portions bold white,
> syntactical bad portions red, if the command is complete and ready to
> be fired: green, ...).
>
> - Auto completion by tab key. The shell will also show a possible
> completion in real-time while typing. So that one does not need to
> guess when it is possible to tab-complete the command. You see it
> immediately.
>
> - Auto correction of trivial mistakes: for now this just covers auto
> converting i.e. lower case characters to upper case (if necessary,
> according to current LSCP grammar position), space characters to
> underscore characters and vice versa (also according to grammar
> position).
> In future: orthographically similar mistyped keywords might be auto
> corrected as well. Not a hard task.
>
> I actually also planned to integrate the LSCP reference into the shell.
> That
> is, if a certain LSCP command is identified, the shell would automatically
> show the relevant LSCP reference document section below the current
> command
> line (and paging the shown LSCP reference with PGUP, PGDOWN keys).
>
> However ... I have now to work on completely other stuff for a while, so
> this
> spare time fun is postponed for now.
>
> The Windows version of LinuxSampler is currently broken, because I used
> the
> POSIX termios API to get the required control over the command line
> terminal.
> That API does not exist on Windows. If anybody is interested in trying to
> fix
> this on Windows, it would be very much appreciated!
>
> That's it for now.
>
Hi,
It compiles fine for me on debian-7.0 64bit. However it crashes on start
and I get this backtrace:
Reading symbols from /usr/bin/lscp...done.
(gdb) run
Starting program: /usr/bin/lscp
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff749449a in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
(gdb) bt
#0 0x00007ffff749449a in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#1 0x0000000000408a4e in operator-- (this=<synthetic pointer>) at
/usr/include/c++/4.7/bits/stl_tree.h:203
#2 std::_Rb_tree<void*, std::pair<void* const, int>,
std::_Select1st<std::pair<void* const, int> >, std::less<void*>,
std::allocator<std::pair<void* const, int> > >::_M_insert_unique (
this=this@entry=0x60d340, __v=...) at
/usr/include/c++/4.7/bits/stl_tree.h:1295
#3 0x0000000000408b7b in std::_Rb_tree<void*, std::pair<void* const,
int>, std::_Select1st<std::pair<void* const, int> >, std::less<void*>,
std::allocator<std::pair<void* const, int> > >::_M_insert_unique_
(this=this@entry=0x60d340, __position=..., __v=...) at
/usr/include/c++/4.7/bits/stl_tree.h:1348
#4 0x00000000004080d4 in insert (__x=..., __position=..., this=0x60d340)
at /usr/include/c++/4.7/bits/stl_map.h:576
#5 operator[] (__k=<optimized out>, this=0x60d340) at
/usr/include/c++/4.7/bits/stl_map.h:458
#6 _newTermios () at TerminalCtrl.cpp:26
#7 TerminalCtrl::now () at TerminalCtrl.cpp:93
#8 0x000000000040a29f in KeyboardReader::KeyboardReader (this=0x60d060)
at KeyboardReader.cpp:16
#9 0x0000000000406caa in __static_initialization_and_destruction_0
(__initialize_p=<optimized out>, __priority=<optimized out>) at
lscp.cpp:31
#10 _GLOBAL__sub_I_main () at lscp.cpp:249
#11 0x000000000040a41d in __libc_csu_init ()
#12 0x00007ffff69fbe40 in __libc_start_main () from
/lib/x86_64-linux-gnu/libc.so.6
#13 0x0000000000406e11 in _start ()
--
Patrick Shirkey
Boost Hardware Ltd
|