コード例 #1
0
ファイル: cfgparse.c プロジェクト: miksago/icecast
static void _parse_root(config_t *config, xmlDocPtr doc, xmlNodePtr node)
{
    do 
    {
        if (node == NULL) break;
        if (xmlIsBlankNode(node)) continue;
        
        if (strcmp(node->name, "background") == 0)
            SET_INT(config->background);
        else if (strcmp(node->name, "logpath") == 0)
            SET_STRING(config->logpath);
        else if (strcmp(node->name, "logfile") == 0)
            SET_STRING(config->logfile);
        else if (strcmp(node->name, "loglevel") == 0)
            SET_INT(config->loglevel);
        else if (strcmp(node->name, "logsize") == 0)
            SET_INT(config->logsize);
        else if (strcmp(node->name, "consolelog") == 0)
            SET_INT(config->log_stderr);
        else if (strcmp(node->name, "pidfile") == 0)
            SET_STRING(config->pidfile);
        else if (strcmp(node->name, "stream") == 0)
            _parse_stream(config, doc, node->xmlChildrenNode);
    } while ((node = node->next));
}
コード例 #2
0
ファイル: BitmapFont.cpp プロジェクト: mattrudder/AckZombies
/**
* CBitmapFont::createFontFromFile
* @date Modified Mar 30, 2006
*/
CBaseResource* CBitmapFont::createFontFromFile(const CString sFilename)
{
	// Load font definition and image
	CBitmapFont* pFont = new CBitmapFont;
	CConfigFile cfgFont(sFilename);
	CString sBuffer = cfgFont.GetValue("Font Info", "ImageFile");

	if(sBuffer == CString::Blank)
		return false;

	pFont->m_poTexture = (CTexture2D*)CResourceManager::getInstance().loadResource(RES_TEXTURE2D, sBuffer);
	pFont->m_cTileSize = SET_INT(cfgFont.GetValue("Font Info", "FontSize"), 16);
	pFont->m_cLineHeight = SET_INT(cfgFont.GetValue("Font Info", "LineHeight"), pFont->m_cTileSize);
	pFont->m_cTilesAcross = pFont->m_poTexture->getWidth() / pFont->m_cTileSize;

	// Process Font Definition
	char szChar[5] = {0};
	for(short c = 0; c <= 255; ++c)
	{
		sprintf(szChar, "%i", c);
		pFont->m_mCharMap[(char)c] = (char)(cfgFont.GetValue("Char Widths", szChar).ToInt());
	}

	return pFont;
}
コード例 #3
0
ファイル: cfgparse.c プロジェクト: miksago/icecast
static void _parse_resample(instance_t *instance,xmlDocPtr doc, xmlNodePtr node)
{
    do {
        if (node == NULL) break;
        if (xmlIsBlankNode(node)) continue;

        if(strcmp(node->name, "in-rate") == 0)
            SET_INT(instance->resampleinrate);
        else if(strcmp(node->name, "out-rate") == 0)
            SET_INT(instance->resampleoutrate);
    } while((node = node->next));
}
コード例 #4
0
ファイル: zbcomp6.c プロジェクト: DimondTheCat/xray
get_user( ZBCompInst *zbc )
{
   LWPanelFuncs *panf;
   LWPanelID panel;
   LWPanControlDesc desc;
   LWValue ival = { LWT_INTEGER };
   LWControl *ctl[ 3 ];
   char *tip[] = {
      "Use the Image Editor to load",
      "both of these.",
      NULL
   };
   int i, w, w1, ok;

   panf = zbc->global( LWPANELFUNCS_GLOBAL, GFUSE_TRANSIENT );
   if ( !panf ) return ZCOMP_NAME ":  Couldn't get panel functions.";

   if( !( panel = PAN_CREATE( panf, "3D Nature's IFF-ZBUF Compositor V2.0" )))
      return ZCOMP_NAME ":  Couldn't create the panel.";

   ctl[ 0 ] = ITEM_CTL( panf, panel, "Z-Buffer", zbc->global, LWI_IMAGE );
   ctl[ 1 ] = ITEM_CTL( panf, panel, "Comp Image", zbc->global, LWI_IMAGE );
   ctl[ 2 ] = TEXT_CTL( panf, panel, "Note: ", tip );

   /* align */

   w1 = 40 + CON_LW( ctl[ 1 ] );
   for ( i = 0; i < 3; i++ ) {
      w = CON_LW( ctl[ i ] );
      ival.intv.value = w1 - w;
      ctl[ i ]->set( ctl[ i ], CTL_X, &ival );
   }

   SET_INT( ctl[ 0 ], ( int ) zbc->zimage.id );
   SET_INT( ctl[ 1 ], ( int ) zbc->cimage.id );

   ok = panf->open( panel, PANF_BLOCKING | PANF_CANCEL );

   if ( ok ) {
      ctl[ 0 ]->get( ctl[ 0 ], CTL_VALUE, &ival );
      zbc->zimage.id = ( LWItemID ) ival.intv.value;

      ctl[ 1 ]->get( ctl[ 1 ], CTL_VALUE, &ival );
      zbc->cimage.id = ( LWItemID ) ival.intv.value;
   }

   PAN_KILL( panf, panel );

   return NULL;
}
コード例 #5
0
ファイル: pdp11_pt.c プロジェクト: denrusio/vak-opensource
t_stat ptr_wr (int32 data, int32 PA, int32 access)
{
switch ((PA >> 1) & 01) {                               /* decode PA<1> */

    case 0:                                             /* ptr csr */
        if (PA & 1)
            return SCPE_OK;
        if ((data & CSR_IE) == 0)
            CLR_INT (PTR);
        else if (((ptr_csr & CSR_IE) == 0) && (ptr_csr & (CSR_ERR | CSR_DONE)))
            SET_INT (PTR);
        if (data & CSR_GO) {
            ptr_csr = (ptr_csr & ~CSR_DONE) | CSR_BUSY;
            CLR_INT (PTR);
            if (ptr_unit.flags & UNIT_ATT)              /* data to read? */
                sim_activate (&ptr_unit, ptr_unit.wait);  
            else sim_activate (&ptr_unit, 0);           /* error if not */
            }
        ptr_csr = (ptr_csr & ~PTRCSR_RW) | (data & PTRCSR_RW);
        return SCPE_OK;

    case 1:                                             /* ptr buf */
        return SCPE_OK;
        }                                               /* end switch PA */

return SCPE_NXM;                                        /* can't get here */
}
コード例 #6
0
ファイル: pdp11_stddev.c プロジェクト: dsphinx/simh
t_stat tto_wr (int32 data, int32 PA, int32 access)
{
switch ((PA >> 1) & 01) {                               /* decode PA<1> */

    case 00:                                            /* tto csr */
        if (PA & 1)
            return SCPE_OK;
        if ((data & CSR_IE) == 0)
            CLR_INT (TTO);
        else if ((tto_csr & (CSR_DONE + CSR_IE)) == CSR_DONE)
            SET_INT (TTO);
        tto_csr = (tto_csr & ~TTOCSR_RW) | (data & TTOCSR_RW);
        return SCPE_OK;

    case 01:                                            /* tto buf */
        if ((PA & 1) == 0)
            tto_unit.buf = data & 0377;
        tto_csr = tto_csr & ~CSR_DONE;
        CLR_INT (TTO);
        sim_activate (&tto_unit, tto_unit.wait);
        return SCPE_OK;
        }                                               /* end switch PA */

return SCPE_NXM;
}
コード例 #7
0
ファイル: avm1_globals.c プロジェクト: lieff/lvg
static void string_length(LVGActionCtx *ctx, ASClass *cls, uint8_t *a, uint32_t nargs)
{
    assert(1 == nargs);
    ASVal *res = &ctx->stack[ctx->stack_ptr];
    const char *str = (const char *)cls;
    SET_INT(res, strlen(str));
}
コード例 #8
0
ファイル: h316_stddev.c プロジェクト: salva/my-simh
t_stat tto_svc (UNIT *uptr)
{
uint32 c7b;
UNIT *ruptr = &tty_unit[TTR];
UNIT *puptr = &tty_unit[TTP];
t_stat r;

c7b = tty_buf & 0177;
if (ttp_tape_rcvd != 0) {                               /* prev = tape? */
    ttp_tape_rcvd--;                                    /* decrement state */
    if ((ttp_tape_rcvd == 0) && (puptr->flags & UNIT_ATT))
        puptr->STA |= RUNNING;                          /* start after delay */
    }
else if (c7b == TAPE)                                   /* char = TAPE? */
    ttp_tape_rcvd = 2;
if (ttp_xoff_rcvd != 0) {                               /* prev = XOFF? */
    ttp_xoff_rcvd--;                                    /* decrement state */
    if (ttp_xoff_rcvd == 0)                             /* stop after delay */
        puptr->STA &= ~RUNNING;
    }
else if (c7b == XOFF)                                   /* char = XOFF? */
    ttp_xoff_rcvd = 2;
if ((c7b == XON) && (ruptr->flags & UNIT_ATT)) {        /* char = XON? */
    ruptr->STA |= RUNNING;                              /* start reader */
    ttr_xoff_read = 0;                                  /* cancel stop */
    }
if ((r = tto_write (tty_buf)) != SCPE_OK) {             /* print; error? */
    sim_activate (uptr, uptr->wait);                    /* try again */
    return ((r == SCPE_STALL)? SCPE_OK: r);             /* !stall? report */
    }
if ((r = ttp_write (tty_buf)) != SCPE_OK)               /* punch; error? */
    return r;
SET_INT (INT_TTY);                                      /* set done flag */
return SCPE_OK;
}
コード例 #9
0
ファイル: h316_stddev.c プロジェクト: salva/my-simh
t_stat tti_svc (UNIT *uptr)
{
int32 out, c;
UNIT *ruptr = &tty_unit[TTR];

sim_activate (uptr, uptr->wait);                        /* continue poll */
if ((c = sim_poll_kbd ()) >= SCPE_KFLAG) {              /* character? */
    out = c & 0177;                                     /* mask echo to 7b */
    if (c & SCPE_BREAK)                                 /* break? */
        c = 0;
    else c = sim_tt_inpcvt (c, TT_GET_MODE (uptr->flags) | TTUF_KSR);
    uptr->pos = uptr->pos + 1;
    }
else if (c != SCPE_OK)                                  /* error? */
    return c;
else if ((ruptr->flags & UNIT_ATT) &&                   /* TTR attached */
    (ruptr->STA & RUNNING)) {                           /* and running? */
    if (ruptr->STA & LF_PEND) {                         /* lf pending? */
        c = 0212;                                       /* char is lf */
        ruptr->STA &= ~LF_PEND;                         /* clear flag */
        }
    else {                                              /* normal read */
        if ((c = getc (ruptr->fileref)) == EOF) {       /* read byte */
            if (feof (ruptr->fileref)) {                /* EOF? */
                ruptr->STA &= ~RUNNING;                 /* stop reader */
                if (ttr_stopioe)
                    printf ("TTR end of file\n");
                else return SCPE_OK;
                }
            else perror ("TTR I/O error");
            clearerr (ruptr->fileref);
            return SCPE_IOERR;
            }
        if ((ruptr->flags & UNIT_UASC) && (c == '\n')) {
            c = 0215;                                   /* Unix ASCII NL? */
            ruptr->STA |= LF_PEND;                      /* LF pending */
            }
        else if ((ruptr->flags & UNIT_ASC) && (c != 0))
            c = c | 0200;                               /* ASCII nz? cvt */
        ruptr->pos = ftell (ruptr->fileref);
        }
    if (ttr_xoff_read != 0) {                           /* reader stopping? */
        if (c == RUBOUT)                                /* rubout? stop */
            ttr_xoff_read = 0;
        else ttr_xoff_read--;                           /* else decr state */
        if (ttr_xoff_read == 0)                         /* delay done? */
            ruptr->STA &= ~RUNNING;                     /* stop reader */
        }
    else if ((c & 0177) == XOFF)                        /* XOFF read? */
        ttr_xoff_read = 2;
    out = c;                                            /* echo char */
    }
else return SCPE_OK;                                    /* no char */
if (tty_mode == 0) {                                    /* input mode? */
    tty_buf = c & 0377;                                 /* put char in buf */
    SET_INT (INT_TTY);                                  /* set flag */
    }
tto_write (out);                                        /* echo to printer */
return ttp_write (out);                                 /* and punch */
}
コード例 #10
0
ファイル: h316_stddev.c プロジェクト: salva/my-simh
t_stat ptp_svc (UNIT *uptr)
{
int32 c;

SET_INT (INT_PTP);                                      /* set flag */
if (ptp_power == 0) {                                   /* power on? */
    ptp_power = 1;                                      /* ptp is ready */
    return SCPE_OK;
    }
if ((uptr->flags & UNIT_ATT) == 0)                      /* attached? */
    return IORETURN (ptp_stopioe, SCPE_UNATT);
if (uptr->flags & UNIT_ASC) {                           /* ASCII? */
    c = uptr->buf & 0177;                               /* mask to 7b */
    if ((uptr->flags & UNIT_UASC) && (c == 015))        /* cr? drop if Unix */
        return SCPE_OK;
    else if (c == 012)                                  /* lf? cvt to nl */
        c = '\n';
    }
else c = uptr->buf & 0377;                              /* no, binary */
if (putc (c, uptr->fileref) == EOF) {                   /* output byte */
    perror ("PTP I/O error");
    clearerr (uptr->fileref);
    return SCPE_IOERR;
    }
uptr->pos = ftell (uptr->fileref);                      /* update pos */
return SCPE_OK;
}
コード例 #11
0
ファイル: h316_stddev.c プロジェクト: salva/my-simh
t_stat ptr_svc (UNIT *uptr)
{
int32 c;

if ((uptr->flags & UNIT_ATT) == 0)                      /* attached? */
    return IORETURN (ptr_stopioe, SCPE_UNATT);
if (uptr->STA & LF_PEND) {                              /* lf pending? */
    uptr->STA &= ~LF_PEND;                              /* clear flag */
    c = 0212;                                           /* insert LF */
    }
else {
    if ((c = getc (uptr->fileref)) == EOF) {            /* read byte */
        if (feof (uptr->fileref)) {
            if (ptr_stopioe)
                printf ("PTR end of file\n");
            else return SCPE_OK;
            }
        else perror ("PTR I/O error");
        clearerr (uptr->fileref);
        return SCPE_IOERR;
        }
    if ((uptr->flags & UNIT_UASC) && (c == '\n')) {     /* Unix newline? */
        c = 0215;                                       /* insert CR */
        uptr->STA |= LF_PEND;                           /* lf pending */
		}
    else if ((uptr->flags & UNIT_ASC) && (c != 0))      /* ASCII? */
        c = c | 0200;
    uptr->pos = ftell (uptr->fileref);                  /* update pos */
    }
SET_INT (INT_PTR);                                      /* set ready flag */
uptr->buf = c & 0377;                                   /* get byte */
return SCPE_OK;
}
コード例 #12
0
ファイル: pdp11_pt.c プロジェクト: dancrossnyc/Supnik11OS
t_stat
ptr_svc(UNIT * uptr)
{
	int32 temp;

	ptr_csr = (ptr_csr | CSR_ERR) & ~CSR_BUSY;
	if (ptr_csr & CSR_IE)
		SET_INT(PTR);
	if ((ptr_unit.flags & UNIT_ATT) == 0)
		return IORETURN(ptr_stopioe, SCPE_UNATT);
	if ((temp = fgetc(ptr_unit.fileref)) == EOF) {
		if (feof(ptr_unit.fileref)) {
			if (ptr_stopioe)
				printf("PTR end of file\n");
			else
				return SCPE_OK;
		} else
			perror("PTR I/O error");
		clearerr(ptr_unit.fileref);
		return SCPE_IOERR;
	}
	ptr_csr = (ptr_csr | CSR_DONE) & ~CSR_ERR;
	ptr_unit.buf = temp & 0377;
	ptr_unit.pos = ptr_unit.pos + 1;
	return SCPE_OK;
}
コード例 #13
0
ファイル: pdp11_pt.c プロジェクト: denrusio/vak-opensource
t_stat ptp_wr (int32 data, int32 PA, int32 access)
{
switch ((PA >> 1) & 01) {                               /* decode PA<1> */

    case 0:                                             /* ptp csr */
        if (PA & 1)
            return SCPE_OK;
        if ((data & CSR_IE) == 0)
            CLR_INT (PTP);
        else if (((ptp_csr & CSR_IE) == 0) && (ptp_csr & (CSR_ERR | CSR_DONE)))
            SET_INT (PTP);
        ptp_csr = (ptp_csr & ~PTPCSR_RW) | (data & PTPCSR_RW);
        return SCPE_OK;

    case 1:                                             /* ptp buf */
        if ((PA & 1) == 0)
            ptp_unit.buf = data & 0377;
        ptp_csr = ptp_csr & ~CSR_DONE;
        CLR_INT (PTP);
        if (ptp_unit.flags & UNIT_ATT)                  /* file to write? */
            sim_activate (&ptp_unit, ptp_unit.wait);
        else sim_activate (&ptp_unit, 0);               /* error if not */
        return SCPE_OK;
        }                                               /* end switch PA */

return SCPE_NXM;                                        /* can't get here */
}
コード例 #14
0
ファイル: pdp18b_rp.c プロジェクト: BillHeaton/simh
void rp_updsta (int32 newa, int32 newb)
{
int32 f;
UNIT *uptr;

uptr = rp_dev.units + GET_UNIT (rp_sta);
rp_sta = (rp_sta & ~(STA_DYN | STA_ERR)) | newa;
rp_stb = (rp_stb & ~STB_DYN) | newb;
if (uptr->flags & UNIT_WPRT)
    rp_sta = rp_sta | STA_SUWP;
if ((uptr->flags & UNIT_ATT) == 0)
    rp_stb = rp_stb | STB_SUFU | STB_SUNR;
else if (sim_is_active (uptr)) {
    f = (uptr->FUNC) & STA_M_FUNC;
    if ((f == FN_SEEK) || (f == FN_RECAL))
        rp_stb = rp_stb | STB_SUSU | STB_SUNR;
    }
else if (uptr->CYL >= RP_NUMCY)
    rp_sta = rp_sta | STA_SUSI;
if ((rp_sta & STA_EFLGS) || (rp_stb & STB_EFLGS))
    rp_sta = rp_sta | STA_ERR;
if (((rp_sta & (STA_ERR | STA_DON)) && (rp_sta & STA_IED)) ||
    ((rp_stb & STB_ATTN) && (rp_sta & STA_IEA)))
    SET_INT (RP);
else CLR_INT (RP);
return;
}
コード例 #15
0
t_stat ttpi_svc (UNIT *uptr)
{
int32 c, out;

sim_activate (uptr, KBD_WAIT (uptr->wait, lfc_poll));   /* continue poll */
ttp_sta = ttp_sta & ~STA_FR;                            /* clear break */
if ((c = sim_poll_kbd ()) < SCPE_KFLAG)                 /* no char or error? */
    return c;
ttp_sta = ttp_sta & ~STA_PF;                            /* clear parity err */
if (ttp_kchp)                                           /* overrun? */
    ttp_sta = ttp_sta | STA_OVR;
if (ttp_karm)
    SET_INT (v_TTP);
if (c & SCPE_BREAK) {                                   /* break? */
    ttp_sta = ttp_sta | STA_FR;                         /* framing error */
    uptr->buf = 0;                                      /* no character */
    }
else {
    out = c & 0x7F;                                     /* echo is 7b */
    c = sim_tt_inpcvt (c, TT_GET_MODE (uptr->flags));
    if (TT_GET_MODE (uptr->flags) != TT_MODE_8B)        /* not 8b mode? */
        c = pas_par (ttp_cmd, c);                       /* apply parity */
    uptr->buf = c;                                      /* save char */
    uptr->pos = uptr->pos + 1;                          /* incr count */
    ttp_kchp = 1;                                       /* char pending */
    if (ttp_cmd & CMD_ECHO) {
        out = sim_tt_outcvt (out, TT_GET_MODE (uptr->flags));
        if (c >= 0)
            sim_putchar (out);
        ttp_unit[TTO].pos = ttp_unit[TTO].pos + 1;
        }
    }
return SCPE_OK;
}
static jboolean android_view_GraphicBuffer_lockCanvas(JNIEnv* env, jobject,
        jlong wrapperHandle, jobject canvas, jobject dirtyRect) {

    GraphicBufferWrapper* wrapper =
                reinterpret_cast<GraphicBufferWrapper*>(wrapperHandle);
    if (!wrapper) {
        return JNI_FALSE;
    }

    sp<GraphicBuffer> buffer(wrapper->buffer);

    Rect rect;
    if (dirtyRect) {
        rect.left = GET_INT(dirtyRect, gRectClassInfo.left);
        rect.top = GET_INT(dirtyRect, gRectClassInfo.top);
        rect.right = GET_INT(dirtyRect, gRectClassInfo.right);
        rect.bottom = GET_INT(dirtyRect, gRectClassInfo.bottom);
    } else {
        rect.set(Rect(buffer->getWidth(), buffer->getHeight()));
    }

    void* bits = NULL;
    status_t status = buffer->lock(LOCK_CANVAS_USAGE, rect, &bits);

    if (status) return JNI_FALSE;
    if (!bits) {
        buffer->unlock();
        return JNI_FALSE;
    }

    ssize_t bytesCount = buffer->getStride() * bytesPerPixel(buffer->getPixelFormat());

    SkBitmap bitmap;
    bitmap.setInfo(SkImageInfo::Make(buffer->getWidth(), buffer->getHeight(),
                                     convertPixelFormat(buffer->getPixelFormat()),
                                     kPremul_SkAlphaType),
                   bytesCount);

    if (buffer->getWidth() > 0 && buffer->getHeight() > 0) {
        bitmap.setPixels(bits);
    } else {
        bitmap.setPixels(NULL);
    }

    SET_INT(canvas, gCanvasClassInfo.mSurfaceFormat, buffer->getPixelFormat());
    INVOKEV(canvas, gCanvasClassInfo.setNativeBitmap, reinterpret_cast<jlong>(&bitmap));

    SkRect clipRect;
    clipRect.set(rect.left, rect.top, rect.right, rect.bottom);
    SkCanvas* nativeCanvas = GraphicsJNI::getNativeCanvas(env, canvas);
    nativeCanvas->clipRect(clipRect);

    if (dirtyRect) {
        INVOKEV(dirtyRect, gRectClassInfo.set,
                int(rect.left), int(rect.top), int(rect.right), int(rect.bottom));
    }

    return JNI_TRUE;
}
コード例 #17
0
ファイル: id_dp.c プロジェクト: B-Rich/simh
void dp_done (uint32 flg)
{
dp_sta = (dp_sta | STC_IDL | flg) & ~STA_BSY;           /* set flag, idle */
SET_INT (v_DPC);                                        /* unmaskable intr */
if (flg)                                                /* if err, stop ch */
    sch_stop (dp_dib.sch);
return;
}
コード例 #18
0
ファイル: cfgparse.c プロジェクト: miksago/icecast
static void _parse_encode(instance_t *instance,xmlDocPtr doc, xmlNodePtr node)
{
    instance->encode = 1;
    do {
        if (node == NULL) break;
        if (xmlIsBlankNode(node)) continue;

        if (strcmp(node->name, "nominal-bitrate") == 0)
            SET_INT(instance->nom_br);
        else if (strcmp(node->name, "minimum-bitrate") == 0)
            SET_INT(instance->min_br);
        else if (strcmp(node->name, "maximum-bitrate") == 0)
            SET_INT(instance->max_br);
        else if (strcmp(node->name, "quality") == 0)
            SET_FLOAT(instance->quality);
        else if (strcmp(node->name, "samplerate") == 0)
            SET_INT(instance->samplerate);
        else if (strcmp(node->name, "channels") == 0)
            SET_INT(instance->channels);
        else if (strcmp(node->name, "managed") == 0)
            SET_INT(instance->managed);
        else if (strcmp(node->name, "flush-samples") == 0)
            SET_INT(instance->max_samples_ppage);
    } while ((node = node->next));
    if (instance->max_samples_ppage == 0)
        instance->max_samples_ppage = instance->samplerate;
    if (instance->max_samples_ppage < instance->samplerate/100)
        instance->max_samples_ppage = instance->samplerate/100;
}
コード例 #19
0
void txcs_wr (int32 data)
{
    if ((data & CSR_IE) == 0)
        CLR_INT (TTO);
    else if ((tto_csr & (CSR_DONE + CSR_IE)) == CSR_DONE)
        SET_INT (TTO);
    tto_csr = (tto_csr & ~TTOCSR_RW) | (data & TTOCSR_RW);
    return;
}
コード例 #20
0
ファイル: window.c プロジェクト: DimondTheCat/xray
static void set_scroll( void )
{
   int i;

   if ( !inscroll ) {
      i = ( int )( 1000.0 * ( double ) pos / ( double ) filesize );
      SET_INT( ctl[ 10 ], i );
   }
}
コード例 #21
0
ファイル: h316_dp.c プロジェクト: alexchenfeng/UNIXV6
t_stat dp_done (uint32 req, uint32 flg)
{
dp_xip = 0;                                             /* clear xfr in prog */
dp_sta = (dp_sta | flg) & ~(STA_BUSY | STA_MBZ);        /* clear busy */
if (req || dp_defint)                                   /* if req, set intr */
    SET_INT (INT_DP);
dp_defint = 0;                                          /* clr def intr */
return SCPE_OK;
}
コード例 #22
0
ファイル: convolve.c プロジェクト: DimondTheCat/xray
static void create_controls( ConvolveInst *inst )
{
   const LWDisplayMetrics *dm;
   int x, y, dx, dy, w, i, pw, ph;


   /* create a control */

   ctl[ 0 ] = FLOAT_CTL( panf, panel, "" );

   /* find out how much vertical space the panel wants for drawing its
      own decorations */

   ph = PAN_GETH( panf, panel );
   ph -= CON_H( ctl[ 0 ] );

   /* create the rest of the controls */

   for ( i = 1; i < 9; i++ )
      ctl[ i ] = FLOAT_CTL( panf, panel, "" );

   ctl[ 9 ] = WPOPUP_CTL( panf, panel, "Presets", preset, 150 );

   /* position all of the controls */

   x  = CON_X( ctl[ 0 ] );
   y  = CON_Y( ctl[ 0 ] );
   dx = CON_HOTW( ctl[ 0 ] ) + 8;
   dy = CON_HOTH( ctl[ 0 ] ) + 4;

   for ( i = 1; i < 9; i++ )
      MOVE_CON( ctl[ i ], x + dx * ( i % 3 ), y + dy * ( i / 3 ));

   w = CON_W( ctl[ 9 ] );
   MOVE_CON( ctl[ 9 ], x + 3 * dx - w, y + 10 * dy / 3 );

   /* now that we know how much room the controls will take up, set the
      height of the panel and center it */

   ph += CON_Y( ctl[ 9 ] );
   ph += CON_HOTH( ctl[ 9 ] );
   PAN_SETH( panf, panel, ph - 6 );

   pw = PAN_GETW( panf, panel );
   dm = panf->drawFuncs->dispMetrics();
   MOVE_PAN( panf, panel, ( dm->width - pw ) / 2, ( dm->height - ph ) / 2 );

   /* initialize the controls */

   set_kernctl( inst );
   SET_INT( ctl[ 9 ], pindex );

   /* set the control event callbacks */

   CON_SETEVENT( ctl[ 9 ], handle_preset, inst );
}
コード例 #23
0
ファイル: id_dp.c プロジェクト: B-Rich/simh
t_stat dp_detach (UNIT *uptr)
{
uint32 u = uptr - dp_dev.units;

if (!(uptr->flags & UNIT_ATT))                          /* attached? */
    return SCPE_OK;
if (dpd_arm[u])                                         /* if arm, intr */
    SET_INT (v_DPC + u + 1);
return detach_unit (uptr);
}
コード例 #24
0
ファイル: keyscanner.c プロジェクト: numist/is31io7326_clone
void keyscanner_main(void)
{
    /* TODO: low power mode:
     *   When all keys reported up:
     *     DDR_PP = 0x11; PORT_PP = 0x00;
     *     Guarantee wake on TWI / any PORT_OD pin FALLING
     *     Sleep
     */
    for (uint8_t pp = 0; pp < 8; ++pp) {
        uint8_t pp_bitmask = _BV(pp);

        _delay_ms(0.5);

        DDR_PP = 0x00 ^ pp_bitmask;
        PORT_PP = 0xFF ^ pp_bitmask;

        _delay_ms(0.5);

        uint8_t od_bits = PIN_OD;
        /*
         * Rollover conditions exist if:
         *  * Multiple OD pins are pulled low AND
         *  * Multiple PP pins are pulled low
         */
        uint8_t nPp = popCount(~PIN_PP);
        uint8_t nOd = popCount(~od_bits);
        // Most of the time the keyboard will not be a rollover state
        if (__builtin_expect(nPp > 1 && nOd > 1, 0)) {
            continue;
        }

        // Debounce key state
        uint8_t changes = debounce(od_bits, db + pp);
        // Most of the time there will be no new key events
        if (__builtin_expect(changes == 0, 1)) {
            continue;
        }

        DISABLE_INTERRUPTS({
            key_t key;
            key.dataNumber = 0; // Set by I²C code (ringbuf.count != 0)
            key.pp = pp;

            for (int8_t od = 0; od < 8; od++) {
                // Fewer than half the keys are expected to be down for each scanline
                if (__builtin_expect(bit_is_set(changes, od), 0)) {
                    key.keyState = bit_is_clear(db[pp].state, od);
                    key.od = od;
                    ringbuf_append(key.val);
                }
            }

            SET_INT(0);
        });
    }
コード例 #25
0
ファイル: enna_config.c プロジェクト: enna-project/enna
static void
cfg_main_section_save (const char *section)
{
    char *filters;

    SET_STRING(theme);
    SET_STRING(engine);
    SET_STRING(verbosity);
    SET_STRING(log_file);

    SET_INT(idle_timeout);
    SET_INT(fullscreen);
    SET_INT(slideshow_delay);

    SET_BOOL(display_mouse);

    SET_TUPLE(music_filters, "music_ext");
    SET_TUPLE(video_filters, "video_ext");
    SET_TUPLE(photo_filters, "photo_ext");
}
コード例 #26
0
static jboolean android_view_TextureView_lockCanvas(JNIEnv* env, jobject,
        jlong nativeWindow, jobject canvas, jobject dirtyRect) {

    if (!nativeWindow) {
        return JNI_FALSE;
    }

    ANativeWindow_Buffer buffer;

    Rect rect;
    if (dirtyRect) {
        rect.left = GET_INT(dirtyRect, gRectClassInfo.left);
        rect.top = GET_INT(dirtyRect, gRectClassInfo.top);
        rect.right = GET_INT(dirtyRect, gRectClassInfo.right);
        rect.bottom = GET_INT(dirtyRect, gRectClassInfo.bottom);
    } else {
        rect.set(Rect(0x3FFF, 0x3FFF));
    }

    sp<ANativeWindow> window((ANativeWindow*) nativeWindow);
    int32_t status = native_window_lock(window.get(), &buffer, &rect);
    if (status) return JNI_FALSE;

    ssize_t bytesCount = buffer.stride * bytesPerPixel(buffer.format);

    SkBitmap bitmap;
    bitmap.setConfig(convertPixelFormat(buffer.format), buffer.width, buffer.height, bytesCount);

    if (buffer.format == WINDOW_FORMAT_RGBX_8888) {
        bitmap.setIsOpaque(true);
    }

    if (buffer.width > 0 && buffer.height > 0) {
        bitmap.setPixels(buffer.bits);
    } else {
        bitmap.setPixels(NULL);
    }

    SET_INT(canvas, gCanvasClassInfo.mSurfaceFormat, buffer.format);

    SkCanvas* nativeCanvas = SkNEW_ARGS(SkCanvas, (bitmap));
    swapCanvasPtr(env, canvas, nativeCanvas);

    SkRect clipRect;
    clipRect.set(rect.left, rect.top, rect.right, rect.bottom);
    nativeCanvas->clipRect(clipRect);

    if (dirtyRect) {
        INVOKEV(dirtyRect, gRectClassInfo.set,
                int(rect.left), int(rect.top), int(rect.right), int(rect.bottom));
    }

    return JNI_TRUE;
}
コード例 #27
0
t_stat ttp_set_break (UNIT *uptr, int32 val, char *cptr, void *desc)
{
if (ttp_dev.flags & DEV_DIS)
    return SCPE_NOFNC;
ttp_sta = ttp_sta | STA_FR;
if (ttp_karm)                                           /* if armed, intr */
    SET_INT (v_TTP);
sim_cancel (&ttp_unit[TTI]);                            /* restart TT poll */
sim_activate (&ttp_unit[TTI], ttp_unit[TTI].wait);
return SCPE_OK;
}
コード例 #28
0
ファイル: pdp18b_tt1.c プロジェクト: alexchenfeng/UNIXV6
void ttox_clr_done (int32 ln)
{
ttox_done = ttox_done & ~(1 << ln);
if (ttox_done) {
    SET_INT (TTO1);
    }
else {
    CLR_INT (TTO1);
    }
return;
}
コード例 #29
0
// HandleList():
void HandleList( LWControl *con, void *data ) {
  int index, column, other;
  GET_IVEC( rint->list, index, column, other );

  if( index >= (int)rint->swaps.NumElements() ) {
    index = ((int)rint->swaps.NumElements()) - 1;
    SET_IVEC( rint->list, index, 1, 0 );
  } else {
    if( index != -1 ) {
      int x = CON_MOUSEX( con );
      int y = CON_MOUSEY( con );

      if( x < list_column_widths[0] + 8 )
        rint->swaps[ index ]->SetUse( !rint->swaps[ index ]->GetUse() );
    }
  }

  if( index == -1 ) {
    SET_STR( rint->path, "", 0 );
    SET_FLOAT( rint->weight, 1.0 );
    SET_INT( rint->enable, 1 );

    GHOST_CON( rint->path   );
    GHOST_CON( rint->weight );
    GHOST_CON( rint->enable );
  } else {
    char * string = (char *)rint->swaps[ index ]->GetFullPath();
    if( string == NULL ) {
      SET_STR( rint->path, "", 0 );
    } else {
      SET_STR( rint->path, string, strlen( string ) );
    }

    SET_FLOAT( rint->weight, rint->swaps[ index ]->GetWeight() );
    SET_INT( rint->enable,   rint->swaps[ index ]->GetUse() );

    UNGHOST_CON( rint->path   );
    UNGHOST_CON( rint->weight );
    UNGHOST_CON( rint->enable );
  }
}
コード例 #30
0
ファイル: pdp11_stddev.c プロジェクト: samrocks69/cs450
t_stat clk_svc (UNIT *uptr)
{
int32 t;

clk_csr = clk_csr | CSR_DONE;                           /* set done */
if ((clk_csr & CSR_IE) || clk_fie) SET_INT (CLK);
t = sim_rtcn_calb (clk_tps, TMR_CLK);                   /* calibrate clock */
sim_activate (&clk_unit, t);                            /* reactivate unit */
tmr_poll = t;                                           /* set timer poll */
tmxr_poll = t;                                          /* set mux poll */
return SCPE_OK;
}