view release on metacpan or search on metacpan
int amaster ;
int aslave ;
int rc ;
struct winsize win ;
PPCODE:
win.ws_row = rows ;
win.ws_col = cols ;
rc = openpty(&amaster, &aslave, NULL, NULL, &win) ;
if (rc == -1){
XPUSHs(&PL_sv_undef) ;
# int login_tty(int fd);
void _login_tty(fd)
int fd
PPCODE:
XPUSHs(sv_2mortal(newSVnv(login_tty(fd)))) ;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/IO/Uring.xs view on Meta::CPAN
IV CLONE_SKIP(sv)
void run_once(IO::Uring self, unsigned min_events = 1, Time::Spec timeout = NULL, sigset_t* sigmask = NULL)
PPCODE:
struct io_uring_cqe *cqe;
int result = io_uring_submit_and_wait_timeout(&self->uring, &cqe, min_events, timeout, sigmask);
if (result == -1 && errno == EINTR)
PERL_ASYNC_CHECK();
view all matches for this distribution
view release on metacpan or search on metacpan
MMDB_entry_data_list_s *list;
SV *data = &PL_sv_undef;
int wants_prefix_length = 0;
uint16_t prefix_length = 0;
U8 gimme = GIMME_V;
PPCODE:
ip_address = NULL;
if (items > 1) {
ip_address = SvPVbyte_nolen(ST(1));
}
if (NULL == ip_address || '\0' == *ip_address) {
view all matches for this distribution
view release on metacpan or search on metacpan
char * class = SvPV(sv_class, PL_na);
int fd;
struct stat stat;
door_info_t info;
SV * sv;
PPCODE:
if ((fd = open(path, O_RDONLY)) < 0) {
WARN(("open() failed: %s\n", strerror(errno)));
XSRETURN_UNDEF;
}
if (fstat(fd, &stat) < 0) {
view all matches for this distribution
view release on metacpan or search on metacpan
mm_unlock(mm)
MM *mm
void
mm_alloc_size ()
PPCODE:
if (GIMME_V == G_ARRAY) {
EXTEND(SP, 6);
XPUSHs(sv_2mortal(newSVuv((UV)mma_alloc_mask()+1)));
XPUSHs(sv_2mortal(newSVuv((UV)mma_alloc_base())));
XPUSHs(sv_2mortal(newSVuv((UV)sizeof(void *))));
ALIAS:
mma_array_status=1
PREINIT:
IV statArray[4];
int i=0;
PPCODE:
mm_array_status (array, statArray, ix);
if (GIMME_V == G_ARRAY) {
if (statArray[0] >= 0) {
EXTEND(SP, 4);
while (i < 4) XPUSHs (sv_2mortal (newSViv(statArray[i++])));
UV del_count = SvOK(length) ? SvUV(length) : array->entries - index;
SV *delSVs[del_count];
UV add_count = items>3 ? items-3 : 0;
SV *addSVs[add_count];
int i;
PPCODE:
for (i=0; i<add_count; i++) addSVs[i] = ST(i+3);
if (!mm_array_splice (array,index,del_count,delSVs,add_count,addSVs,ix&1)) {
if (PL_dowarn && mm_error()) warn ("IPC::MMA: %s", mm_error());
del_count = 0;
}
IV index
ALIAS:
mma_hash_get_entry=1
PREINIT:
SV* ret[2];
PPCODE:
mm_hash_get_entry(hash, index, ix, ret);
if (GIMME_V == G_ARRAY) {
if (SvOK(ret[0])) {
EXTEND(SP, 2);
XPUSHs (sv_2mortal (ret[0]));
view all matches for this distribution
view release on metacpan or search on metacpan
size_t maxlen
int off
SV * var
size_t len
PROTOTYPE: $$$$$
PPCODE:
UV tmp = SvUV(addr);
caddr_t lcladdr = INT2PTR(caddr_t, (tmp + off));
if (len > maxlen - off)
len = maxlen - off;
int maxlen
int off
SV * var
int len
PROTOTYPE: $$$$$
PPCODE:
UV tmp = SvUV(addr);
caddr_t lcladdr = INT2PTR(caddr_t, (tmp + off));
STRLEN varlen;
char * ptr;
_mmap_anon(len, prot, flags)
size_t len
int prot
int flags
PROTOTYPE: $$$
PPCODE:
int fd;
void * addr;
int slop;
/* struct stat st; */
size_t len
int prot
int flags
FILE * fh
PROTOTYPE: $$$*
PPCODE:
int fd;
void * addr;
int slop;
struct stat st;
void
_munmap(addr, len)
void * addr
size_t len
PROTOTYPE: $$
PPCODE:
#
# XXX refrain from dumping core if this
# var wasnt previously mmap'd
#
# printf("_munmap: addr %p len %i\n", addr, len);
view all matches for this distribution
view release on metacpan or search on metacpan
ScoreBoard.xs view on Meta::CPAN
UV slot
PROTOTYPE: $$
INIT:
UV sz, i;
vIV *slotptr=get_slot(sb, slot, &sz);
PPCODE:
EXTEND(SP, sz);
for( i=0; i<sz; i++ ) {
mPUSHi(slotptr[i]);
}
void
sum_all(sb)
SV* sb
PROTOTYPE: $
PPCODE:
if( expect_true((sb && SvROK(sb))) ) {
struct hdr *hdr=(struct hdr *)SvPV_nolen(SvRV(sb));
vIV *data=(vIV*)(sizeof(*hdr)+(char*)hdr);
UV i, j;
EXTEND(SP, hdr->slotsize);
ScoreBoard.xs view on Meta::CPAN
SV* sb
PROTOTYPE: $
INIT:
UV sz, i;
vIV *slotptr=get_extra(sb, &sz);
PPCODE:
EXTEND(SP, sz);
for( i=0; i<sz; i++ ) {
mPUSHi(slotptr[i]);
}
view all matches for this distribution
view release on metacpan or search on metacpan
PROTOTYPES: ENABLE
void
pack(obj)
SV * obj
PPCODE:
{
#ifdef HAS_MSG
AV *list = (AV*) SvRV(obj);
struct msqid_ds ds;
assert_sv_isa(obj, s_pkg_msg, "pack");
void
unpack(obj, ds)
SV * obj
SV * ds
PPCODE:
{
#ifdef HAS_MSG
AV *list = (AV*) SvRV(obj);
STRLEN len;
const struct msqid_ds *data = (struct msqid_ds *) SvPV_const(ds, len);
PROTOTYPES: ENABLE
void
pack(obj)
SV * obj
PPCODE:
{
#ifdef HAS_SEM
AV *list = (AV*) SvRV(obj);
struct semid_ds ds;
assert_sv_isa(obj, s_pkg_sem, "pack");
void
unpack(obj, ds)
SV * obj
SV * ds
PPCODE:
{
#ifdef HAS_SEM
AV *list = (AV*) SvRV(obj);
STRLEN len;
const struct semid_ds *data = (struct semid_ds *) SvPV_const(ds, len);
PROTOTYPES: ENABLE
void
pack(obj)
SV * obj
PPCODE:
{
#ifdef HAS_SHM
AV *list = (AV*) SvRV(obj);
struct shmid_ds ds;
assert_sv_isa(obj, s_pkg_shm, "pack");
void
unpack(obj, ds)
SV * obj
SV * ds
PPCODE:
{
#ifdef HAS_SHM
AV *list = (AV*) SvRV(obj);
STRLEN len;
const struct shmid_ds *data = (struct shmid_ds *) SvPV_const(ds, len);
view all matches for this distribution
view release on metacpan or search on metacpan
size_t *lens;
char **names;
char **messages;
int i;
int ns;
PPCODE:
/* allocate return arrays */
New( 0, bufs, max_servers, char *);
New( 0, lens, max_servers, size_t);
New( 0, names, max_servers, char *);
New( 0, messages, max_servers, char *);
char **names;
char **messages;
int i;
int ns;
int n = 1;
PPCODE:
/* allocate return arrays */
New( 0, names, max_servers, char *);
New( 0, messages, max_servers, char *);
/* send request to server */
ns = XPASet(xpa, xtemplate, paramlist, mode, buf, len,
PREINIT:
char **names;
char **messages;
int i;
int ns;
PPCODE:
/* allocate return arrays */
New( 0, names, max_servers, char *);
New( 0, messages, max_servers, char *);
/* send request to server */
ns = XPAInfo(xpa, xtemplate, paramlist, mode,
char **names;
char **methods;
char **infos;
int i;
int ns;
PPCODE:
ns = XPANSLookup( xpa, tname, ttype, &xclasses, &names,
&methods, &infos );
/* convert result into something Perlish */
EXTEND(SP, ns);
for ( i = 0 ; i < ns ; i++ )
PREINIT:
char **names;
char **messages;
int i;
int ns;
PPCODE:
/* allocate return arrays */
New( 0, names, max_servers, char *);
New( 0, messages, max_servers, char *);
/* send request to server */
ns = XPAAccess(xpa, xtemplate, paramlist, mode,
view all matches for this distribution
view release on metacpan or search on metacpan
void
t_chk4pid(path)
char * path
PREINIT:
SV * out;
PPCODE:
path = chk4pid(path);
if (path == NULL) {
ST(0) = &PL_sv_undef;
}
else {
void
t_pidpath()
PREINIT:
SV * out;
PPCODE:
out = sv_newmortal();
out = newSVpv(pidpath(),0);
ST(0) = out;
XSRETURN(1);
set_signals();
void
t_inirand(test)
int test
PPCODE:
XPUSHs(sv_2mortal(newSVnv(sizeof(rarry) / 4)));
XPUSHs(sv_2mortal(newSVnv(initRandGen(test))));
void
t_fillrand()
PREINIT:
unsigned long * rptr;
int i;
PPCODE:
rptr = fillrandom();
for (i=0; i< sizeof(rarry) / 4;i++)
{
XPUSHs(sv_2mortal(newSVnv(rptr[i])));
}
dbtp_put(&dbtp,DBarchive,(void *)addr,sizeof(void *),×tamp,sizeof(timestamp));
void
t_dberror(err)
int err
PPCODE:
XPUSHs(sv_2mortal(newSVpv(dbtp_strerror(err),0)));
XSRETURN(1);
int
t_statn(name)
char * home
char * name
char * message
int ofg
int Ofg
PPCODE:
if (items >5) { /* is there a file descriptor */
fifofd = SvIV(ST(6));
}
else
fifofd = 0;
close(fifofd);
fifofd = 0;
void
t_errors()
PPCODE:
EXTEND(SP,7);
PUSHs(sv_2mortal(newSViv(EPIPE)));
PUSHs(sv_2mortal(newSViv(ENOSPC)));
PUSHs(sv_2mortal(newSViv(EEXIST)));
PUSHs(sv_2mortal(newSViv(ENOENT)));
PREINIT:
STRLEN len;
void * adp;
int rv;
SV * val;
PPCODE:
adp = (void *)SvPV(addr,len);
/* rv = dbtp_get(&dbtp,ai,adp,len); */
rv = dbtp_readOne(&dbtp,0,ai,adp,0);
if (rv == DB_NOTFOUND)
U32 cursor
int notstring
PREINIT:
int rv;
SV * val;
PPCODE:
# rv = dbtp_getrecno(&dbtp,ai,cursor);
rv = dbtp_readOne(&dbtp,1,ai,&cursor,0);
if (rv) {
if (GIMME == G_ARRAY)
XSRETURN_EMPTY;
int ai
PREINIT:
int major, minor, patch;
int zero[] = {0,0};
SV * stats;
PPCODE:
(void) dbtp_readOne(&dbtp,1,ai,(void *)&zero,0);
major = (int)*(u_char *)(dbtp.keydbt.data + 1);
minor = (int)*(u_char *)(dbtp.keydbt.data + 2);
patch = (int)*(u_char *)(dbtp.keydbt.data + 3);
stats = newSViv(*(U32 *)dbtp.mgdbt.data);
view all matches for this distribution
view release on metacpan or search on metacpan
IPTables::IPv4::Table self
PREINIT:
char * chain;
SV * sv;
int count = 0;
PPCODE:
sv = ST(0);
chain = (char *)iptc_first_chain(self);
while(chain) {
count++;
if (GIMME_V == G_ARRAY)
IPTables::IPv4::Table self
ipt_chainlabel chain
PREINIT:
SV * sv;
int count = 0;
PPCODE:
sv = ST(0);
if(iptc_is_chain(chain, *self)) {
struct ipt_entry *entry =
(struct ipt_entry *)iptc_first_rule(chain, self);
while(entry) {
PREINIT:
struct ipt_counters counter;
SV * sv;
char * target;
char * temp;
PPCODE:
sv = ST(0);
if((target = (char *)iptc_get_policy(chain, &counter, self))) {
XPUSHs(sv_2mortal(newSVpv(target, 0)));
asprintf(&temp, "%llu", counter.pcnt);
XPUSHs(sv_2mortal(newSVpv(temp, 0)));
view all matches for this distribution
view release on metacpan or search on metacpan
fallback/const-xs.inc view on Meta::CPAN
/* NV nv; Uncomment this if you need to return NVs */
/* const char *pv; Uncomment this if you need to return PVs */
INPUT:
SV * sv;
const char * s = SvPV(sv, len);
PPCODE:
/* Change this to constant(aTHX_ s, len, &iv, &nv);
if you need to return both NVs and IVs */
type = constant(aTHX_ s, len, &iv);
/* Return 1 or 2 items. First is error message, or undef if no error.
Second, if present, is found value */
view all matches for this distribution
view release on metacpan or search on metacpan
IPTables.xs view on Meta::CPAN
const char * chain;
iptc_handle_t * handle;
PREINIT:
struct ipt_counters count;
char buf[64];
PPCODE:
if (!iptc_builtin(chain, *handle))
XSRETURN_UNDEF;
XPUSHs(sv_2mortal(newSVpv(iptc_get_policy(chain, &count, handle), 0)));
sprintf(buf, "%lu", count.pcnt);
XPUSHs(sv_2mortal(newSVpv(buf, strlen(buf))));
IPTables.xs view on Meta::CPAN
char * name;
PREINIT:
struct iptables_match *m;
unsigned int moo;
PPCODE:
m = find_match(name, TRY_LOAD);
if (m != NULL)
{
for (moo = 0; m->extra_opts[moo].name ; moo++)
IPTables.xs view on Meta::CPAN
char * name;
PREINIT:
struct iptables_match *m;
unsigned int moo;
PPCODE:
m = find_match(name, TRY_LOAD);
if (m != NULL)
{
m->help();
IPTables.xs view on Meta::CPAN
char * name;
PREINIT:
struct iptables_target *m;
unsigned int moo;
PPCODE:
m = find_target(name, TRY_LOAD);
if (m != NULL)
{
for (moo = 0; m->extra_opts[moo].name ; moo++)
IPTables.xs view on Meta::CPAN
char * name;
PREINIT:
struct iptables_target *m;
unsigned int moo;
PPCODE:
m = find_target(name, TRY_LOAD);
if (m != NULL)
{
m->help();
view all matches for this distribution
view release on metacpan or search on metacpan
char *
irc_encrypt_message_to_address(addr, nick, message)
char * addr
char * nick
char * message
PPCODE:
char * ret;
ret = irc_encrypt_message_to_address(addr,nick,message);
if(ret)
{
XPUSHs(sv_2mortal(newSVpv(ret, 0)));
char *
irc_encrypt_message_with_key(key, nick, message)
char * key
char * nick
char * message
PPCODE:
char * ret;
ret = irc_encrypt_message_with_key(key,nick,message);
if(ret)
{
XPUSHs(sv_2mortal(newSVpv(ret, 0)));
XSRETURN(0);
void
irc_decrypt_message(msg)
char * msg
PPCODE:
char *rmsg;
char *rnick;
unsigned int tdiff = 0;
int ret;
view all matches for this distribution
view release on metacpan or search on metacpan
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
INIT:
int width;
int height;
double width_mm;
double height_mm;
PPCODE:
cdCanvasGetSize(ref2cnv(canvas),&width,&height,&width_mm,&height_mm);
XPUSHs(sv_2mortal(newSViv(width)));
XPUSHs(sv_2mortal(newSViv(height)));
XPUSHs(sv_2mortal(newSVnv(width_mm)));
XPUSHs(sv_2mortal(newSVnv(height_mm)));
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
double mm_dy;
INIT:
int rv;
int dx;
int dy;
PPCODE:
cdCanvasMM2Pixel(ref2cnv(canvas),mm_dx,mm_dy,&dx,&dy);
XPUSHs(sv_2mortal(newSViv(dx)));
XPUSHs(sv_2mortal(newSViv(dy)));
#### Original C function from <.../cd/include/cd.h>
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
int dx;
int dy;
INIT:
double mm_dx;
double mm_dy;
PPCODE:
cdCanvasPixel2MM(ref2cnv(canvas),dx,dy,&mm_dx,&mm_dy);
XPUSHs(sv_2mortal(newSVnv(mm_dx)));
XPUSHs(sv_2mortal(newSVnv(mm_dy)));
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
double mm_dx;
double mm_dy;
INIT:
double dx;
double dy;
PPCODE:
cdfCanvasMM2Pixel(ref2cnv(canvas),mm_dx,mm_dy,&dx,&dy);
XPUSHs(sv_2mortal(newSVnv(dx)));
XPUSHs(sv_2mortal(newSVnv(dy)));
#### Original C function from <.../cd/include/cd.h>
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
double dx;
double dy;
INIT:
double mm_dx;
double mm_dy;
PPCODE:
cdfCanvasPixel2MM(ref2cnv(canvas),dx,dy,&mm_dx,&mm_dy);
XPUSHs(sv_2mortal(newSVnv(mm_dx)));
XPUSHs(sv_2mortal(newSVnv(mm_dy)));
#### Original C function from <.../cd/include/cd.h>
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
cdGetOrigin(canvas)
SV* canvas;
INIT:
int x;
int y;
PPCODE:
cdCanvasGetOrigin(ref2cnv(canvas),&x,&y);
XPUSHs(sv_2mortal(newSViv(x)));
XPUSHs(sv_2mortal(newSViv(y)));
#### Original C function from <.../cd/include/cd.h>
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
cdfGetOrigin(canvas)
SV* canvas;
INIT:
double x;
double y;
PPCODE:
cdfCanvasGetOrigin(ref2cnv(canvas),&x,&y);
XPUSHs(sv_2mortal(newSVnv(x)));
XPUSHs(sv_2mortal(newSVnv(y)));
#### Original C function from <.../cd/include/cd.h>
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
int x;
int y;
INIT:
int tx;
int ty;
PPCODE:
cdCanvasTransformPoint(ref2cnv(canvas),x,y,&tx,&ty);
XPUSHs(sv_2mortal(newSViv(tx)));
XPUSHs(sv_2mortal(newSViv(ty)));
#### Original C function from <.../cd/include/cd.h>
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
double x;
double y;
INIT:
double tx;
double ty;
PPCODE:
cdfCanvasTransformPoint(ref2cnv(canvas),x,y,&tx,&ty);
XPUSHs(sv_2mortal(newSVnv(tx)));
XPUSHs(sv_2mortal(newSVnv(ty)));
#### Original C function from <.../cd/include/cd.h>
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
int xmin;
int xmax;
int ymin;
int ymax;
int status;
PPCODE:
status = cdCanvasGetClipArea(ref2cnv(canvas),&xmin,&xmax,&ymin,&ymax);
XPUSHs(sv_2mortal(newSViv(xmin)));
XPUSHs(sv_2mortal(newSViv(xmax)));
XPUSHs(sv_2mortal(newSViv(ymin)));
XPUSHs(sv_2mortal(newSViv(ymax)));
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
int status;
double xmin;
double xmax;
double ymin;
double ymax;
PPCODE:
status = cdfCanvasGetClipArea(ref2cnv(canvas),&xmin,&xmax,&ymin,&ymax);
XPUSHs(sv_2mortal(newSVnv(xmin)));
XPUSHs(sv_2mortal(newSVnv(xmax)));
XPUSHs(sv_2mortal(newSVnv(ymin)));
XPUSHs(sv_2mortal(newSVnv(ymax)));
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
int status = 4; /* inspired by Lua */
int xmin;
int xmax;
int ymin;
int ymax;
PPCODE:
cdCanvasGetRegionBox(ref2cnv(canvas),&xmin,&xmax,&ymin,&ymax);
XPUSHs(sv_2mortal(newSViv(xmin)));
XPUSHs(sv_2mortal(newSViv(xmax)));
XPUSHs(sv_2mortal(newSViv(ymin)));
XPUSHs(sv_2mortal(newSViv(ymax)));
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
SV* canvas;
INIT:
char type_face[1024]; /* XXX-CHECKLATER (HARDCODED BUFFER SIZE) 1024 taken from cd_private.h */
int style;
int size;
PPCODE:
cdCanvasGetFont(ref2cnv(canvas),type_face,&style,&size);
XPUSHs(sv_2mortal(newSVpv(type_face,0)));
XPUSHs(sv_2mortal(newSViv(style)));
XPUSHs(sv_2mortal(newSViv(size)));
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
cdGetVectorFontSize(canvas)
SV* canvas;
INIT:
double size_x;
double size_y;
PPCODE:
cdCanvasGetVectorFontSize(ref2cnv(canvas),&size_x,&size_y);
XPUSHs(sv_2mortal(newSVnv(size_x)));
XPUSHs(sv_2mortal(newSVnv(size_y)));
#### Original C function from <.../cd/include/cd.h>
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
SV* canvas;
const char* s;
INIT:
int x;
int y;
PPCODE:
cdCanvasGetVectorTextSize(ref2cnv(canvas),s,&x,&y);
XPUSHs(sv_2mortal(newSViv(x)));
XPUSHs(sv_2mortal(newSViv(y)));
#### Original C function from <.../cd/include/cd.h>
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
const char* s;
int x;
int y;
INIT:
int rect[8];
PPCODE:
cdCanvasGetVectorTextBounds(ref2cnv(canvas),s,x,y,rect);
/* XXX-CHECKLATER maybe return an arrayref */
XPUSHs(sv_2mortal(newSViv(rect[0]))); /* x0 */
XPUSHs(sv_2mortal(newSViv(rect[1]))); /* y0 */
XPUSHs(sv_2mortal(newSViv(rect[2]))); /* x1 */
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
INIT:
int xmin;
int xmax;
int ymin;
int ymax;
PPCODE:
cdCanvasGetVectorTextBox(ref2cnv(canvas),x,y,s,&xmin,&xmax,&ymin,&ymax);
XPUSHs(sv_2mortal(newSViv(xmin)));
XPUSHs(sv_2mortal(newSViv(xmax)));
XPUSHs(sv_2mortal(newSViv(ymin)));
XPUSHs(sv_2mortal(newSViv(ymax)));
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
INIT:
int max_width;
int height;
int ascent;
int descent;
PPCODE:
cdCanvasGetFontDim(ref2cnv(canvas),&max_width,&height,&ascent,&descent);
XPUSHs(sv_2mortal(newSViv(max_width)));
XPUSHs(sv_2mortal(newSViv(height)));
XPUSHs(sv_2mortal(newSViv(ascent)));
XPUSHs(sv_2mortal(newSViv(descent)));
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
SV* canvas;
const char* s;
INIT:
int width;
int height;
PPCODE:
cdCanvasGetTextSize(ref2cnv(canvas),s,&width,&height);
XPUSHs(sv_2mortal(newSViv(width)));
XPUSHs(sv_2mortal(newSViv(height)));
#### Original C function from <.../cd/include/cd.h>
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
INIT:
int xmin;
int xmax;
int ymin;
int ymax;
PPCODE:
cdCanvasGetTextBox(ref2cnv(canvas),x,y,s,&xmin,&xmax,&ymin,&ymax);
XPUSHs(sv_2mortal(newSViv(xmin)));
XPUSHs(sv_2mortal(newSViv(xmax)));
XPUSHs(sv_2mortal(newSViv(ymin)));
XPUSHs(sv_2mortal(newSViv(ymax)));
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
int x;
int y;
const char* s;
INIT:
int rect[8];
PPCODE:
cdCanvasGetTextBounds(ref2cnv(canvas),x,y,s,rect);
/* XXX-CHECKLATER maybe return an arrayref */
XPUSHs(sv_2mortal(newSViv(rect[0]))); /* x0 */
XPUSHs(sv_2mortal(newSViv(rect[1]))); /* y0 */
XPUSHs(sv_2mortal(newSViv(rect[2]))); /* x1 */
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
INIT:
double xmin;
double xmax;
double ymin;
double ymax;
PPCODE:
wdCanvasGetWindow(ref2cnv(canvas),&xmin,&xmax,&ymin,&ymax);
XPUSHs(sv_2mortal(newSVnv(xmin)));
XPUSHs(sv_2mortal(newSVnv(xmax)));
XPUSHs(sv_2mortal(newSVnv(ymin)));
XPUSHs(sv_2mortal(newSVnv(ymax)));
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
INIT:
int xmin;
int xmax;
int ymin;
int ymax;
PPCODE:
wdCanvasGetViewport(ref2cnv(canvas),&xmin,&xmax,&ymin,&ymax);
XPUSHs(sv_2mortal(newSViv(xmin)));
XPUSHs(sv_2mortal(newSViv(xmax)));
XPUSHs(sv_2mortal(newSViv(ymin)));
XPUSHs(sv_2mortal(newSViv(ymax)));
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
double xw;
double yw;
INIT:
int xv;
int yv;
PPCODE:
wdCanvasWorld2Canvas(ref2cnv(canvas),xw,yw,&xv,&yv);
XPUSHs(sv_2mortal(newSViv(xv)));
XPUSHs(sv_2mortal(newSViv(yv)));
#### Original C function from <.../cd/include/wd.h>
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
double hw;
double vw;
INIT:
int hv;
int vv;
PPCODE:
wdCanvasWorld2CanvasSize(ref2cnv(canvas),hw,vw,&hv,&vv);
XPUSHs(sv_2mortal(newSViv(hv)));
XPUSHs(sv_2mortal(newSViv(vv)));
#### Original C function from <.../cd/include/wd.h>
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
int xv;
int yv;
INIT:
double xw;
double yw;
PPCODE:
wdCanvasCanvas2World(ref2cnv(canvas),xv,yv,&xw,&yw);
XPUSHs(sv_2mortal(newSVnv(xw)));
XPUSHs(sv_2mortal(newSVnv(yw)));
#### Original C function from <.../cd/include/wd.h>
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
INIT:
double sx;
double sy;
double tx;
double ty;
PPCODE:
wdCanvasGetTransform(ref2cnv(canvas),&sx,&sy,&tx,&ty);
XPUSHs(sv_2mortal(newSVnv(sx)));
XPUSHs(sv_2mortal(newSVnv(sy)));
XPUSHs(sv_2mortal(newSVnv(tx)));
XPUSHs(sv_2mortal(newSVnv(ty)));
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
int status;
double xmin;
double xmax;
double ymin;
double ymax;
PPCODE:
status = wdCanvasGetClipArea(ref2cnv(canvas),&xmin,&xmax,&ymin,&ymax);
XPUSHs(sv_2mortal(newSVnv(xmin)));
XPUSHs(sv_2mortal(newSVnv(xmax)));
XPUSHs(sv_2mortal(newSVnv(ymin)));
XPUSHs(sv_2mortal(newSVnv(ymax)));
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
SV* canvas;
INIT:
char type_face[1024]; /* XXX-CHECKLATER (HARDCODED BUFFER SIZE) 1024 taken from cd_private.h */
int style;
double size;
PPCODE:
wdCanvasGetFont(ref2cnv(canvas),type_face,&style,&size);
XPUSHs(sv_2mortal(newSVpv(type_face,0)));
XPUSHs(sv_2mortal(newSViv(style)));
XPUSHs(sv_2mortal(newSVnv(size)));
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
INIT:
double max_width;
double height;
double ascent;
double descent;
PPCODE:
wdCanvasGetFontDim(ref2cnv(canvas),&max_width,&height,&ascent,&descent);
XPUSHs(sv_2mortal(newSVnv(max_width)));
XPUSHs(sv_2mortal(newSVnv(height)));
XPUSHs(sv_2mortal(newSVnv(ascent)));
XPUSHs(sv_2mortal(newSVnv(descent)));
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
SV* canvas;
const char* s;
INIT:
double width;
double height;
PPCODE:
wdCanvasGetTextSize(ref2cnv(canvas),s,&width,&height);
XPUSHs(sv_2mortal(newSVnv(width)));
XPUSHs(sv_2mortal(newSVnv(height)));
#### Original C function from <.../cd/include/wd.h>
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
INIT:
double xmin;
double xmax;
double ymin;
double ymax;
PPCODE:
wdCanvasGetTextBox(ref2cnv(canvas),x,y,s,&xmin,&xmax,&ymin,&ymax);
XPUSHs(sv_2mortal(newSVnv(xmin)));
XPUSHs(sv_2mortal(newSVnv(xmax)));
XPUSHs(sv_2mortal(newSVnv(ymin)));
XPUSHs(sv_2mortal(newSVnv(ymax)));
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
double x;
double y;
const char* s;
INIT:
double rect[8];
PPCODE:
wdCanvasGetTextBounds(ref2cnv(canvas),x,y,s,rect);
/* XXX-CHECKLATER maybe return an arrayref */
XPUSHs(sv_2mortal(newSVnv(rect[0]))); /* x0 */
XPUSHs(sv_2mortal(newSVnv(rect[1]))); /* y0 */
XPUSHs(sv_2mortal(newSVnv(rect[2]))); /* x1 */
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
SV* canvas;
const char* s;
INIT:
double x;
double y;
PPCODE:
wdCanvasGetVectorTextSize(ref2cnv(canvas),s,&x,&y);
XPUSHs(sv_2mortal(newSVnv(x)));
XPUSHs(sv_2mortal(newSVnv(y)));
#### Original C function from <.../cd/include/wd.h>
lib/IUP/Internal/Canvas.xs.inc view on Meta::CPAN
const char* s;
double x;
double y;
INIT:
double rect[8];
PPCODE:
wdCanvasGetVectorTextBounds(ref2cnv(canvas),s,x,y,rect);
/* XXX-CHECKLATER maybe return an arrayref */
XPUSHs(sv_2mortal(newSVnv(rect[0]))); /* x0 */
XPUSHs(sv_2mortal(newSVnv(rect[1]))); /* y0 */
XPUSHs(sv_2mortal(newSVnv(rect[2]))); /* x1 */
view all matches for this distribution
view release on metacpan or search on metacpan
myccv_detect_faces (filename, training_data)
char * filename
char * training_data
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
Inline_Stack_Vars;
Inline_Stack_Reset;
int i;
ccv_enable_default_cache();
void
myccv_keypoints_to_list (keypoints)
ccv_array_t * keypoints
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
myccv_keypoints_to_list(keypoints);
if (PL_markstack_ptr != temp) {
/* truly void, because dXSARGS not invoked */
PL_markstack_ptr = temp;
myccv_get_descriptor (file, param)
char * file
ccv_sift_param_t * param
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
myccv_get_descriptor(file, param);
if (PL_markstack_ptr != temp) {
/* truly void, because dXSARGS not invoked */
PL_markstack_ptr = temp;
char * object_file
char * scene_file
ccv_sift_param_t * param
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
myccv_sift(object_file, scene_file, param);
if (PL_markstack_ptr != temp) {
/* truly void, because dXSARGS not invoked */
PL_markstack_ptr = temp;
view all matches for this distribution
view release on metacpan or search on metacpan
void
_epeg_size_get( img )
Epeg_Image * img;
PREINIT:
int h, w;
PPCODE:
epeg_size_get( img, &w, &h );
XPUSHs( sv_2mortal( newSViv( w ) ) );
XPUSHs( sv_2mortal( newSViv( h ) ) );
void
_epeg_output_size_get( img )
Epeg_Image * img;
PREINIT:
int h, w;
PPCODE:
epeg_output_size_get( img, &w, &h );
XPUSHs( sv_2mortal( newSViv( w ) ) );
XPUSHs( sv_2mortal( newSViv( h ) ) );
Epeg_Image * img;
PREINIT:
unsigned char * pOut = NULL;
int outSize = 0;
int rc;
PPCODE:
epeg_memory_output_set( img, &pOut, &outSize );
rc = epeg_encode( img );
if( !rc )
{
PUSHs(sv_2mortal(newSVpv( (char*)pOut, outSize )));
_epeg_write_file( img, filename )
Epeg_Image * img;
const char * filename;
PREINIT:
int rc;
PPCODE:
epeg_file_output_set( img, filename );
rc = epeg_encode( img );
PUSHs(sv_2mortal( (rc ? &PL_sv_undef : newSViv(1)) ));
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Image/Imlib2.xs view on Meta::CPAN
PROTOTYPE: $$
PREINIT:
Imlib_Color color_return;
PPCODE:
imlib_context_set_image(image);
imlib_image_query_pixel(x, y, &color_return);
XPUSHs(sv_2mortal(newSViv(color_return.red)));
XPUSHs(sv_2mortal(newSViv(color_return.green)));
lib/Image/Imlib2.xs view on Meta::CPAN
int cw, ch;
int x1, y1, x2, y2;
int i;
bool abort;
PPCODE:
imlib_context_set_image(image);
width = imlib_image_get_width();
height = imlib_image_get_height();
cw = width;
ch = height;
lib/Image/Imlib2.xs view on Meta::CPAN
int width, height;
int x = 0;
int y = 0;
bool abort;
PPCODE:
imlib_context_set_image(image);
width = imlib_image_get_width();
height = imlib_image_get_height();
imlib_context_get_color(&r, &g, &b, &a);
// warn("pr = %i, pg = %i, pb = %i", r, g, b);
lib/Image/Imlib2.xs view on Meta::CPAN
AV* coords;
SV* sv;
int length;
bool abort;
PPCODE:
imlib_context_set_image(image);
width = imlib_image_get_width();
height = imlib_image_get_height();
imlib_image_query_pixel(x, y, &c);
lib/Image/Imlib2.xs view on Meta::CPAN
PREINIT:
int text_w;
int text_h;
PPCODE:
imlib_context_set_image(image);
imlib_context_set_direction(direction);
imlib_context_set_angle(angle);
imlib_get_text_size(text, &text_w, &text_h);
view all matches for this distribution
view release on metacpan or search on metacpan
char *filename
INIT:
FILE *f;
JDIMENSION width = 0, height = 0;
int longjmp_reason;
PPCODE:
f = fopen(filename, "rb");
if (!f) {
croak("Can't open %s: %s", filename, strerror(errno));
}
view all matches for this distribution
view release on metacpan or search on metacpan
magick_registry=NewSplayTree((int (*)(const void *,const void *))
NULL,(void *(*)(void *)) NULL,(void *(*)(void *)) NULL);
void
UNLOAD()
PPCODE:
{
if (magick_registry != (SplayTreeInfo *) NULL)
magick_registry=DestroySplayTree(magick_registry);
MagickCoreTerminus();
}
Image::Magick ref=NO_INIT
ALIAS:
AnimateImage = 1
animate = 2
animateimage = 3
PPCODE:
{
ExceptionInfo
*exception;
Image
Image::Magick ref=NO_INIT
ALIAS:
AppendImage = 1
append = 2
appendimage = 3
PPCODE:
{
AV
*av;
char
Image::Magick ref=NO_INIT
ALIAS:
AverageImage = 1
average = 2
averageimage = 3
PPCODE:
{
AV
*av;
char
Image::Magick ref=NO_INIT
ALIAS:
BlobToImage = 1
blobtoimage = 2
blobto = 3
PPCODE:
{
AV
*av;
char
Image::Magick ref=NO_INIT
ALIAS:
ChannelFxImage = 1
channelfx = 2
channelfximage = 3
PPCODE:
{
AV
*av;
char
copyimage = 3
CloneImage = 4
clone = 5
cloneimage = 6
Clone = 7
PPCODE:
{
AV
*av;
ExceptionInfo
Image::Magick ref=NO_INIT
ALIAS:
CoalesceImage = 1
coalesce = 2
coalesceimage = 3
PPCODE:
{
AV
*av;
ExceptionInfo
Image::Magick ref=NO_INIT
ALIAS:
CompareImages = 1
compare = 2
compareimage = 3
PPCODE:
{
AV
*av;
char
ComplexImages(ref)
Image::Magick ref=NO_INIT
ALIAS:
ComplexImages = 1
compleximages = 2
PPCODE:
{
AV
*av;
char
Image::Magick ref=NO_INIT
ALIAS:
CompareImagesLayers = 1
comparelayers = 2
compareimagelayers = 3
PPCODE:
{
AV
*av;
char
#
#
void
DESTROY(ref)
Image::Magick ref=NO_INIT
PPCODE:
{
SV
*reference;
PERL_UNUSED_VAR(ref);
Image::Magick ref=NO_INIT
ALIAS:
DisplayImage = 1
display = 2
displayimage = 3
PPCODE:
{
ExceptionInfo
*exception;
Image
EvaluateImages(ref)
Image::Magick ref=NO_INIT
ALIAS:
EvaluateImages = 1
evaluateimages = 2
PPCODE:
{
AV
*av;
char
Image::Magick ref=NO_INIT
ALIAS:
FeaturesImage = 1
features = 2
featuresimage = 3
PPCODE:
{
#define ChannelFeatures(channel,direction) \
{ \
(void) FormatLocaleString(message,MagickPathExtent,"%.20g", \
channel_features[channel].angular_second_moment[direction]); \
Image::Magick ref=NO_INIT
ALIAS:
FlattenImage = 1
flatten = 2
flattenimage = 3
PPCODE:
{
AV
*av;
char
Image::Magick ref=NO_INIT
ALIAS:
FxImage = 1
fx = 2
fximage = 3
PPCODE:
{
AV
*av;
char
GetAttributes = 1
GetAttribute = 2
get = 3
getattributes = 4
getattribute = 5
PPCODE:
{
char
*attribute,
color[MagickPathExtent];
Image::Magick ref=NO_INIT
ALIAS:
HistogramImage = 1
histogram = 2
histogramimage = 3
PPCODE:
{
AV
*av;
char
GetPixel(ref,...)
Image::Magick ref=NO_INIT
ALIAS:
getpixel = 1
getPixel = 2
PPCODE:
{
AV
*av;
char
GetPixels(ref,...)
Image::Magick ref=NO_INIT
ALIAS:
getpixels = 1
getPixels = 2
PPCODE:
{
AV
*av;
char
ALIAS:
ImageToBlob = 1
imagetoblob = 2
toblob = 3
blob = 4
PPCODE:
{
char
filename[MagickPathExtent];
ExceptionInfo
Layers = 1
layers = 2
OptimizeImageLayers = 3
optimizelayers = 4
optimizeimagelayers = 5
PPCODE:
{
AV
*av;
char
SortPixels = 307
SortPixelsImage = 308
Integral = 309
IntegralImage = 310
MogrifyRegion = 666
PPCODE:
{
AffineMatrix
affine,
current;
Image::Magick ref=NO_INIT
ALIAS:
MontageImage = 1
montage = 2
montageimage = 3
PPCODE:
{
AV
*av;
char
Image::Magick ref=NO_INIT
ALIAS:
MorphImage = 1
morph = 2
morphimage = 3
PPCODE:
{
AV
*av;
char
Image::Magick ref=NO_INIT
ALIAS:
MosaicImage = 1
mosaic = 2
mosaicimage = 3
PPCODE:
{
AV
*av;
ExceptionInfo
Image::Magick ref = NO_INIT
ALIAS:
PerceptualHashImage = 1
perceptualhash = 2
perceptualhashimage = 3
PPCODE:
{
AV
*av;
ChannelPerceptualHash
Image::Magick ref=NO_INIT
ALIAS:
PingImage = 1
ping = 2
pingimage = 3
PPCODE:
{
AV
*av;
char
Image::Magick ref=NO_INIT
ALIAS:
PreviewImage = 1
preview = 2
previewimage = 3
PPCODE:
{
AV
*av;
ExceptionInfo
void
QueryColor(ref,...)
Image::Magick ref=NO_INIT
ALIAS:
querycolor = 1
PPCODE:
{
char
*name;
ExceptionInfo
void
QueryColorname(ref,...)
Image::Magick ref=NO_INIT
ALIAS:
querycolorname = 1
PPCODE:
{
AV
*av;
char
void
QueryFont(ref,...)
Image::Magick ref=NO_INIT
ALIAS:
queryfont = 1
PPCODE:
{
char
*name,
message[MagickPathExtent];
void
QueryFontMetrics(ref,...)
Image::Magick ref=NO_INIT
ALIAS:
queryfontmetrics = 1
PPCODE:
{
AffineMatrix
affine,
current;
void
QueryMultilineFontMetrics(ref,...)
Image::Magick ref=NO_INIT
ALIAS:
querymultilinefontmetrics = 1
PPCODE:
{
AffineMatrix
affine,
current;
void
QueryFormat(ref,...)
Image::Magick ref=NO_INIT
ALIAS:
queryformat = 1
PPCODE:
{
char
*name;
ExceptionInfo
void
QueryOption(ref,...)
Image::Magick ref=NO_INIT
ALIAS:
queryoption = 1
PPCODE:
{
char
**options;
ExceptionInfo
Image::Magick ref=NO_INIT
ALIAS:
ReadImage = 1
read = 2
readimage = 3
PPCODE:
{
AV
*av;
char
Image::Magick ref=NO_INIT
ALIAS:
RemoteCommand = 1
remote = 2
remoteCommand = 3
PPCODE:
{
AV
*av;
ExceptionInfo
SetAttributes = 1
SetAttribute = 2
set = 3
setattributes = 4
setattribute = 5
PPCODE:
{
ExceptionInfo
*exception;
Image
SetPixel(ref,...)
Image::Magick ref=NO_INIT
ALIAS:
setpixel = 1
setPixel = 2
PPCODE:
{
AV
*av;
char
SetPixels(ref,...)
Image::Magick ref=NO_INIT
ALIAS:
setpixels = 1
setPixels = 2
PPCODE:
{
AV
*av;
char
Image::Magick ref=NO_INIT
ALIAS:
SmushImage = 1
smush = 2
smushimage = 3
PPCODE:
{
AV
*av;
char
Image::Magick ref=NO_INIT
ALIAS:
StatisticsImage = 1
statistics = 2
statisticsimage = 3
PPCODE:
{
#define ChannelStatistics(channel) \
{ \
(void) FormatLocaleString(message,MagickPathExtent,"%.20g", \
(double) channel_statistics[channel].depth); \
Image::Magick ref=NO_INIT
ALIAS:
WriteImage = 1
write = 2
writeimage = 3
PPCODE:
{
char
filename[MagickPathExtent];
ExceptionInfo
view all matches for this distribution
view release on metacpan or search on metacpan
PREINIT:
png_structp png;
png_infop info;
SV * png_sv;
SV * info_sv;
PPCODE:
png = Png->png;
info = Png->info;
png_sv = newSViv (PTR2IV (png));
info_sv = newSViv (PTR2IV (info));
XPUSHs(sv_2mortal(png_sv));
view all matches for this distribution
view release on metacpan or search on metacpan
MODULE = Image::PNG::Simple PACKAGE = Image::PNG::Simple
SV
new(...)
PPCODE:
{
char* class_name = SvPV_nolen(ST(0));
ImagePNGSimple* ips = (ImagePNGSimple*)malloc(sizeof(ImagePNGSimple));
XSRETURN(1);
}
SV
DESTORY(...)
PPCODE:
{
SV* ips_obj = ST(0);
SV* ips_sv = SvROK(ips_obj) ? SvRV(ips_obj) : ips_obj;
size_t ips_iv = SvIV(ips_sv);
ImagePNGSimple* ips = INT2PTR(ImagePNGSimple*, ips_iv);
XSRETURN(0);
}
SV
read_bmp_file(...)
PPCODE :
{
SV* ips_obj = ST(0);
SV* ips_sv = SvROK(ips_obj) ? SvRV(ips_obj) : ips_obj;
size_t ips_iv = SvIV(ips_sv);
ImagePNGSimple* ips = INT2PTR(ImagePNGSimple*, ips_iv);
XSRETURN(0);
}
SV
write_bmp_file(...)
PPCODE:
{
SV* ips_obj = ST(0);
SV* ips_sv = SvROK(ips_obj) ? SvRV(ips_obj) : ips_obj;
size_t ips_iv = SvIV(ips_sv);
ImagePNGSimple* ips = INT2PTR(ImagePNGSimple*, ips_iv);
XSRETURN(0);
}
SV
write_png_file(...)
PPCODE:
{
SV* ips_obj = ST(0);
SV* ips_sv = SvROK(ips_obj) ? SvRV(ips_obj) : ips_obj;
size_t ips_iv = SvIV(ips_sv);
ImagePNGSimple* ips = INT2PTR(ImagePNGSimple*, ips_iv);
view all matches for this distribution
view release on metacpan or search on metacpan
fallback/const-xs.inc view on Meta::CPAN
/* NV nv; Uncomment this if you need to return NVs */
/* const char *pv; Uncomment this if you need to return PVs */
INPUT:
SV * sv;
const char * s = SvPV(sv, len);
PPCODE:
/* Change this to constant(aTHX_ s, len, &iv, &nv);
if you need to return both NVs and IVs */
type = constant(aTHX_ s, len, &iv);
/* Return 1 or 2 items. First is error message, or undef if no error.
Second, if present, is found value */
view all matches for this distribution
view release on metacpan or search on metacpan
int height;
PREINIT:
IplImage *img, *small_img;
int inter = 1;
int keep_aspect = 0;
PPCODE:
if (!SvROK(self)) {XSRETURN_UNDEF;}
if (items % 2 == 0)
{
croak("ERROR: resize - called with odd number of option parameters - should be of the form option => value");
view all matches for this distribution
view release on metacpan or search on metacpan
sane__open(name)
SANE_String_Const name
INIT:
SANE_Status status;
SANE_Handle h;
PPCODE:
status = sane_open(name, &h);
SV* sv = get_sv("Image::Sane::DEBUG", FALSE);
if (SvTRUE(sv)) printf("sane_open returned SANE_Handle %p\n", (void *) h);
PUSHMARK(sp);
XPUSHs(sv_2mortal(newSViv(status)));
const SANE_Option_Descriptor * opt;
HV* chv = (HV*) sv_2mortal((SV*) newHV());
AV* cav = (AV*) sv_2mortal((SV*) newAV());
HV* hv = (HV*) sv_2mortal((SV*) newHV());
int i;
PPCODE:
SV* sv = get_sv("Image::Sane::DEBUG", FALSE);
if (SvTRUE(sv)) printf("Getting option description %d from SANE_Handle %p\n", n, (void *) h);
opt = sane_get_option_descriptor (h, n);
if (!opt) croak("Error getting sane_get_option_descriptor");
if (opt->name != NULL) {
SANE_Int n
INIT:
SANE_Status status;
void * value;
const SANE_Option_Descriptor * opt;
PPCODE:
SV* sv = get_sv("Image::Sane::DEBUG", FALSE);
if (SvTRUE(sv)) printf("Getting option %d from SANE_Handle %p\n", n, (void *) h);
opt = sane_get_option_descriptor (h, n);
if (!opt) croak("Error getting sane_get_option_descriptor");
if ( opt->size == 0 ) {
SANE_Handle h
SANE_Int n
INIT:
SANE_Status status;
SANE_Int info = 0;
PPCODE:
SV* sv = get_sv("Image::Sane::DEBUG", FALSE);
if (SvTRUE(sv)) printf("Setting option %d to automatic on SANE_Handle %p\n", n, (void *) h);
status = sane_control_option (h, n, SANE_ACTION_SET_AUTO, 0, &info);
PUSHMARK(sp);
XPUSHs(sv_2mortal(newSViv(status)));
SANE_Fixed fixed;
int i, vector_length = 0;
SV ** svp;
SANE_Word * vector;
char * string;
PPCODE:
SV* sv = get_sv("Image::Sane::DEBUG", FALSE);
if (SvTRUE(sv)) printf("Setting option %d on SANE_Handle %p\n", n, (void *) h);
opt = sane_get_option_descriptor (h, n);
if (!opt) croak("Error getting sane_get_option_descriptor");
switch (opt->type) {
SANE_Handle handle
INIT:
SANE_Status status;
SANE_Parameters params;
HV* hv = (HV*) sv_2mortal((SV*) newHV());
PPCODE:
SV* sv = get_sv("Image::Sane::DEBUG", FALSE);
if (SvTRUE(sv)) printf("Getting parameters for SANE_Handle %p\n", (void *) handle);
status = sane_get_parameters (handle, ¶ms);
PUSHMARK(sp);
XPUSHs(sv_2mortal(newSViv(status)));
SANE_Int max_length
INIT:
SANE_Status status;
SANE_Byte * data;
SANE_Int length;
PPCODE:
data = malloc (max_length);
status = sane_read (handle, data, max_length, &length);
PUSHMARK(sp);
XPUSHs(sv_2mortal(newSViv(status)));
if (!status) {
sane__get_select_fd (handle)
SANE_Handle handle
INIT:
SANE_Status status;
SANE_Int fd;
PPCODE:
SV* sv = get_sv("Image::Sane::DEBUG", FALSE);
if (SvTRUE(sv)) printf("Getting file handle of SANE_Handle %p\n", (void *) handle);
status = sane_get_select_fd (handle, &fd);
PUSHMARK(sp);
XPUSHs(sv_2mortal(newSViv(status)));
void
sane__init ()
INIT:
SANE_Status status;
SANE_Int version_code;
PPCODE:
call_pv("Image::Sane::_exit", G_VOID|G_NOARGS);
SV* sv = get_sv("Image::Sane::DEBUG", FALSE);
if (SvTRUE(sv)) printf("Running sane_init\n");
status = sane_init(&version_code, NULL);
PUSHMARK(sp);
# LEAVE;
void
sane__get_version (version_code)
SANE_Int version_code
PPCODE:
PUSHMARK(sp);
XPUSHs(sv_2mortal(newSViv(SANE_VERSION_MAJOR (version_code))));
XPUSHs(sv_2mortal(newSViv(SANE_VERSION_MINOR (version_code))));
XPUSHs(sv_2mortal(newSViv(SANE_VERSION_BUILD (version_code))));
PUTBACK;
SANE_Bool local
INIT:
SANE_Status status;
int i;
const SANE_Device ** device_list;
PPCODE:
SV* sv = get_sv("Image::Sane::DEBUG", FALSE);
if (SvTRUE(sv)) printf("Running sane_get_devices\n");
status = sane_get_devices (&device_list, local);
PUSHMARK(sp);
XPUSHs(sv_2mortal(newSViv(status)));
view all matches for this distribution
view release on metacpan or search on metacpan
PROTOTYPES: ENABLE
void
__init(HV *self)
PPCODE:
{
SV *pv = NEWSV(0, sizeof(image));
image *im = (image *)SvPVX(pv);
SvPOK_only(pv);
view all matches for this distribution
view release on metacpan or search on metacpan
void
cleardb()
void
results()
PPCODE:
while(!pqResults.empty()) {
curResult = pqResults.top();
pqResults.pop();
EXTEND(SP, 2);
PUSHs(sv_2mortal(newSViv(curResult.id)));
view all matches for this distribution
view release on metacpan or search on metacpan
SubImageFind.xs view on Meta::CPAN
void
SubImageFinder::DESTROY()
void
SubImageFinder::SetMaxDelta(unsigned long maxDelta)
PPCODE:
THIS->setMaxDelta(maxDelta);
unsigned long
SubImageFinder::GetMaxDelta()
CODE:
SubImageFind.xs view on Meta::CPAN
SubImageFinder::GetCoordinates(needleFile = "")
char *needleFile
PREINIT:
size_t x = -1, y = -1;
bool retval = false;
PPCODE:
if (*needleFile) {
THIS->loadNeedle(needleFile);
}
retval = THIS->getCoordinates(x, y);
EXTEND(SP, 3);
view all matches for this distribution
view release on metacpan or search on metacpan
xs_WebPGetInfo(data, data_size)
unsigned char* data
size_t data_size
INIT:
int width, height, res;
PPCODE:
res = WebPGetInfo(data, data_size, &width, &height);
XPUSHs(sv_2mortal(newSVnv(res)));
XPUSHs(sv_2mortal(newSVnv(width)));
XPUSHs(sv_2mortal(newSVnv(height)));
unsigned char* data
size_t data_size
INIT:
int width, height, res;
WebPBitstreamFeatures features;
PPCODE:
res = WebPGetFeatures(data, data_size, &features);
XPUSHs(sv_2mortal(newSVnv(res)));
XPUSHs(sv_2mortal(newSVnv(features.width)));
XPUSHs(sv_2mortal(newSVnv(features.height)));
XPUSHs(sv_2mortal(newSVnv(features.has_alpha)));
size_t data_size
unsigned char format
INIT:
int width, height;
unsigned char *rgb_data;
PPCODE:
switch (format) {
case 1: rgb_data = WebPDecodeRGBA(data, data_size, &width, &height); break;
case 2: rgb_data = WebPDecodeARGB(data, data_size, &width, &height); break;
case 3: rgb_data = WebPDecodeBGRA(data, data_size, &width, &height); break;
case 4: rgb_data = WebPDecodeRGB(data, data_size, &width, &height); break;
int enc_type
float quality
INIT:
uint8_t* data;
int size;
PPCODE:
/* strange bug - if passing quality directly, can segfault */
int fix_q = quality;
if (enc_type == 1) {
switch (format) {
view all matches for this distribution
view release on metacpan or search on metacpan
fallback/const-xs.inc view on Meta::CPAN
/* NV nv; Uncomment this if you need to return NVs */
/* const char *pv; Uncomment this if you need to return PVs */
INPUT:
SV * sv;
const char * s = SvPV(sv, len);
PPCODE:
type = constant(aTHX_ s, len);
/* Return 1 or 2 items. First is error message, or undef if no error.
Second, if present, is found value */
switch (type) {
case PERL_constant_NOTFOUND:
view all matches for this distribution