mirror of
https://github.com/cookiengineer/audacity
synced 2025-09-19 09:30:52 +02:00
Merge pull request #290 from Paul-Licameli/rewrite-aud-do
Rewrite commit 1bc0f0f without further changes to lib-src...
This commit is contained in:
commit
37018181a1
@ -1 +0,0 @@
|
|||||||
extern LVAL xlc_aud_do(void);
|
|
@ -1 +0,0 @@
|
|||||||
{ "AUD-DO", S, xlc_aud_do},
|
|
@ -3,7 +3,6 @@
|
|||||||
/* CHANGE LOG
|
/* CHANGE LOG
|
||||||
* --------------------------------------------------------------------
|
* --------------------------------------------------------------------
|
||||||
* 28Apr03 dm changes for portability and fix compiler warnings
|
* 28Apr03 dm changes for portability and fix compiler warnings
|
||||||
* 12Feb18 jkc added aud-do function, that is only available in Audacity.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "xlisp.h"
|
#include "xlisp.h"
|
||||||
@ -54,50 +53,3 @@ void print_local_gc_info(void)
|
|||||||
max_sample_block_len) / 1024);
|
max_sample_block_len) / 1024);
|
||||||
stdputstr(buf);
|
stdputstr(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*--------------------Audacity Automation -------------------------*/
|
|
||||||
/* These functions may later move to their own source file. */
|
|
||||||
extern void * ExecForLisp( char * pIn );
|
|
||||||
extern void * nyq_make_opaque_string( int size, unsigned char *src );
|
|
||||||
|
|
||||||
|
|
||||||
void * nyq_make_opaque_string( int size, unsigned char *src ){
|
|
||||||
LVAL dst;
|
|
||||||
unsigned char * dstp;
|
|
||||||
dst = new_string((int)(size+2));
|
|
||||||
dstp = getstring(dst);
|
|
||||||
|
|
||||||
/* copy the source to the destination */
|
|
||||||
while (size-- > 0)
|
|
||||||
*dstp++ = *src++;
|
|
||||||
*dstp = '\0';
|
|
||||||
|
|
||||||
return (void*)dst;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* xlc_aud_do -- interface to C routine aud_do */
|
|
||||||
/**/
|
|
||||||
LVAL xlc_aud_do(void)
|
|
||||||
{
|
|
||||||
// Based on string-trim...
|
|
||||||
unsigned char *leftp,*rightp;
|
|
||||||
LVAL src,dst;
|
|
||||||
|
|
||||||
/* get the string */
|
|
||||||
src = xlgastring();
|
|
||||||
xllastarg();
|
|
||||||
|
|
||||||
/* setup the string pointers */
|
|
||||||
leftp = getstring(src);
|
|
||||||
rightp = leftp + getslength(src) - 2;
|
|
||||||
|
|
||||||
// Go call my real function here...
|
|
||||||
dst = (LVAL)ExecForLisp( leftp );
|
|
||||||
|
|
||||||
/* return the new string */
|
|
||||||
return (dst);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
/* include actual local file headers: */
|
/* include actual local file headers: */
|
||||||
#include "sndfnintdefs.h"
|
#include "sndfnintdefs.h"
|
||||||
#include "seqfnintdefs.h"
|
#include "seqfnintdefs.h"
|
||||||
#include "audacityfnintdefs.h"
|
|
||||||
|
@ -2,11 +2,8 @@
|
|||||||
*
|
*
|
||||||
* CHANGE LOG
|
* CHANGE LOG
|
||||||
* 28-Apr-03 rbd Removed "include switches.h" -- already included
|
* 28-Apr-03 rbd Removed "include switches.h" -- already included
|
||||||
* 12-Feb-18 jkc Added "include audacityfnintptrs.h" -- for internal Audacity commands
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* extension to xlisp */
|
/* extension to xlisp */
|
||||||
#include "sndfnintptrs.h"
|
#include "sndfnintptrs.h"
|
||||||
#include "seqfnintptrs.h"
|
#include "seqfnintptrs.h"
|
||||||
#include "audacityfnintptrs.h"
|
|
||||||
|
|
||||||
|
@ -138,15 +138,9 @@ int ExecCommand2(wxString *pIn, wxString *pOut)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
// The void * return is actually a Lisp LVAL and will be cast to such as needed.
|
// The void * return is actually a Lisp LVAL and will be cast to such as needed.
|
||||||
extern void * ExecForLisp( char * pIn );
|
extern void * ExecForLisp( char * pIn );
|
||||||
extern void * nyq_make_opaque_string( int size, unsigned char *src );
|
extern void * nyq_make_opaque_string( int size, unsigned char *src );
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void * ExecForLisp( char * pIn ){
|
void * ExecForLisp( char * pIn ){
|
||||||
wxString Str1( pIn );
|
wxString Str1( pIn );
|
||||||
|
@ -3159,6 +3159,49 @@ static LVAL ngettext()
|
|||||||
wxGetTranslation(string1, string2, number).mb_str(wxConvUTF8));
|
wxGetTranslation(string1, string2, number).mb_str(wxConvUTF8));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*--------------------Audacity Automation -------------------------*/
|
||||||
|
/* These functions may later move to their own source file. */
|
||||||
|
extern void * ExecForLisp( char * pIn );
|
||||||
|
extern void * nyq_make_opaque_string( int size, unsigned char *src );
|
||||||
|
|
||||||
|
|
||||||
|
void * nyq_make_opaque_string( int size, unsigned char *src ){
|
||||||
|
LVAL dst;
|
||||||
|
unsigned char * dstp;
|
||||||
|
dst = new_string((int)(size+2));
|
||||||
|
dstp = getstring(dst);
|
||||||
|
|
||||||
|
/* copy the source to the destination */
|
||||||
|
while (size-- > 0)
|
||||||
|
*dstp++ = *src++;
|
||||||
|
*dstp = '\0';
|
||||||
|
|
||||||
|
return (void*)dst;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* xlc_aud_do -- interface to C routine aud_do */
|
||||||
|
/**/
|
||||||
|
LVAL xlc_aud_do(void)
|
||||||
|
{
|
||||||
|
// Based on string-trim...
|
||||||
|
unsigned char *leftp,*rightp;
|
||||||
|
LVAL src,dst;
|
||||||
|
|
||||||
|
/* get the string */
|
||||||
|
src = xlgastring();
|
||||||
|
xllastarg();
|
||||||
|
|
||||||
|
/* setup the string pointers */
|
||||||
|
leftp = getstring(src);
|
||||||
|
rightp = leftp + getslength(src) - 2;
|
||||||
|
|
||||||
|
// Go call my real function here...
|
||||||
|
dst = (LVAL)ExecForLisp( (char *)leftp );
|
||||||
|
|
||||||
|
/* return the new string */
|
||||||
|
return (dst);
|
||||||
|
}
|
||||||
|
|
||||||
static void RegisterFunctions()
|
static void RegisterFunctions()
|
||||||
{
|
{
|
||||||
// Add functions to XLisp. Do this only once,
|
// Add functions to XLisp. Do this only once,
|
||||||
@ -3170,8 +3213,9 @@ static void RegisterFunctions()
|
|||||||
static const FUNDEF functions[] = {
|
static const FUNDEF functions[] = {
|
||||||
{ "_", SUBR, gettext },
|
{ "_", SUBR, gettext },
|
||||||
{ "ngettext", SUBR, ngettext },
|
{ "ngettext", SUBR, ngettext },
|
||||||
};
|
{ "AUD-DO", SUBR, xlc_aud_do },
|
||||||
|
};
|
||||||
|
|
||||||
xlbindfunctions( functions, sizeof(functions)/sizeof(*functions) );
|
xlbindfunctions( functions, WXSIZEOF( functions ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user