本文整理汇总了C++中de_dbg函数的典型用法代码示例。如果您正苦于以下问题:C++ de_dbg函数的具体用法?C++ de_dbg怎么用?C++ de_dbg使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了de_dbg函数的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: do_vorbis_comment_block
static void do_vorbis_comment_block(deark *c, lctx *d, dbuf *f, i64 pos1)
{
i64 pos = pos1;
i64 n;
i64 ncomments;
i64 k;
de_ucstring *s = NULL;
n = dbuf_getu32le_p(f, &pos);
if(pos+n > f->len) goto done;
s = ucstring_create(c);
dbuf_read_to_ucstring_n(f, pos, n, DE_DBG_MAX_STRLEN, s, 0, DE_ENCODING_UTF8);
de_dbg(c, "vendor: \"%s\"", ucstring_getpsz_d(s));
pos += n;
ncomments = dbuf_getu32le_p(f, &pos);
de_dbg(c, "number of comments: %d", (int)ncomments);
for(k=0; k<ncomments; k++) {
if(pos+4 > f->len) goto done;
n = dbuf_getu32le_p(f, &pos);
if(pos+n > f->len) goto done;
ucstring_empty(s);
dbuf_read_to_ucstring_n(f, pos, n, DE_DBG_MAX_STRLEN, s, 0, DE_ENCODING_UTF8);
de_dbg(c, "comment[%d]: \"%s\"", (int)k, ucstring_getpsz_d(s));
pos += n;
}
done:
ucstring_destroy(s);
}
开发者ID:jsummers,项目名称:deark,代码行数:31,代码来源:ogg.c
示例2: handler_tRNS
static void handler_tRNS(deark *c, lctx *d, struct handler_params *hp)
{
i64 r, g, b;
if(d->color_type==0) {
if(hp->dlen<2) return;
r = de_getu16be(hp->dpos);
de_dbg(c, "transparent color gray shade: %d", (int)r);
}
else if(d->color_type==2) {
if(hp->dlen<6) return;
r = de_getu16be(hp->dpos);
g = de_getu16be(hp->dpos+2);
b = de_getu16be(hp->dpos+4);
de_dbg(c, "transparent color: (%d,%d,%d)", (int)r, (int)g, (int)b);
}
else if(d->color_type==3) {
i64 i;
u8 a;
de_dbg(c, "number of alpha values: %d", (int)hp->dlen);
if(c->debug_level<2) return;
for(i=0; i<hp->dlen && i<256; i++) {
a = de_getbyte(hp->dpos+i);
de_dbg2(c, "alpha[%3d] = %d", (int)i, (int)a);
}
}
}
开发者ID:jsummers,项目名称:deark,代码行数:28,代码来源:png.c
示例3: do_read_developer_area
static void do_read_developer_area(deark *c, lctx *d, i64 pos)
{
i64 num_tags;
i64 i;
i64 tag_id, tag_data_pos, tag_data_size;
de_dbg(c, "developer area at %d", (int)pos);
if(pos > c->infile->len - 2) {
de_warn(c, "Bad developer area offset: %u", (unsigned int)pos);
return;
}
de_dbg_indent(c, 1);
num_tags = de_getu16le(pos);
de_dbg(c, "number of tags: %d", (int)num_tags);
for(i=0; i<num_tags; i++) {
if(i>=200) break;
tag_id = de_getu16le(pos + 2 + 10*i);
tag_data_pos = de_getu32le(pos + 2 + 10*i + 2);
tag_data_size = de_getu32le(pos + 2 + 10*i + 6);
de_dbg(c, "tag #%d: id=%d, pos=%d, size=%d", (int)i, (int)tag_id,
(int)tag_data_pos, (int)tag_data_size);
if(tag_id==20) {
// Tag 20 seems to contain Photoshop resources, though this is unconfirmed.
de_dbg_indent(c, 1);
// TODO: We could retrieve the pixel density settings from the Photoshop data,
// but it's not clear whether they are ever useful.
de_fmtutil_handle_photoshop_rsrc(c, c->infile, tag_data_pos, tag_data_size, 0x0);
de_dbg_indent(c, -1);
}
}
de_dbg_indent(c, -1);
}
开发者ID:jsummers,项目名称:deark,代码行数:34,代码来源:tga.c
示例4: handler_IHDR
static void handler_IHDR(deark *c, lctx *d, struct handler_params *hp)
{
i64 w, h;
u8 n;
const char *name;
if(hp->dlen<13) return;
w = de_getu32be(hp->dpos);
h = de_getu32be(hp->dpos+4);
de_dbg_dimensions(c, w, h);
n = de_getbyte(hp->dpos+8);
de_dbg(c, "depth: %d bits/sample", (int)n);
d->color_type = de_getbyte(hp->dpos+9);
switch(d->color_type) {
case 0: name="grayscale"; break;
case 2: name="truecolor"; break;
case 3: name="palette"; break;
case 4: name="grayscale+alpha"; break;
case 6: name="truecolor+alpha"; break;
default: name="?";
}
de_dbg(c, "color type: %d (%s)", (int)d->color_type, name);
n = de_getbyte(hp->dpos+12);
de_dbg(c, "interlaced: %d", (int)n);
}
开发者ID:jsummers,项目名称:deark,代码行数:28,代码来源:png.c
示例5: do_header
static int do_header(deark *c, lctx *d, i64 pos)
{
de_dbg(c, "header at %d", (int)pos);
de_dbg_indent(c, 1);
d->nlumps = de_getu32le(pos+4);
de_dbg(c, "#lumps: %d", (int)d->nlumps);
d->dir_pos = de_getu32le(pos+8);
de_dbg(c, "dir pos: %d", (int)d->dir_pos);
de_dbg_indent(c, -1);
return 1;
}
开发者ID:jsummers,项目名称:deark,代码行数:11,代码来源:wad.c
示例6: handler_sPLT
static void handler_sPLT(deark *c, lctx *d, struct handler_params *hp)
{
struct de_stringreaderdata *srd = NULL;
i64 pos = hp->dpos;
i64 nbytes_to_scan;
u8 depth;
i64 nentries;
i64 stride;
i64 i;
nbytes_to_scan = hp->dlen;
if(nbytes_to_scan>80) nbytes_to_scan=80;
srd = dbuf_read_string(c->infile, pos, nbytes_to_scan, 79, DE_CONVFLAG_STOP_AT_NUL,
DE_ENCODING_LATIN1);
if(!srd->found_nul) goto done;
de_dbg(c, "palette name: \"%s\"", ucstring_getpsz(srd->str));
pos += srd->bytes_consumed;
if(pos >= hp->dpos+hp->dlen) goto done;
depth = de_getbyte(pos++);
de_dbg(c, "depth: %d", (int)depth);
if(depth!=8 && depth!=16) goto done;
stride = (depth==8) ? 6 : 10;
nentries = (hp->dpos+hp->dlen-pos)/stride;
de_dbg(c, "number of entries: %d", (int)nentries);
if(c->debug_level<2) goto done;
for(i=0; i<nentries; i++) {
unsigned int cr, cg, cb, ca, cf;
if(depth==8) {
cr = (unsigned int)de_getbyte(pos);
cg = (unsigned int)de_getbyte(pos+1);
cb = (unsigned int)de_getbyte(pos+2);
ca = (unsigned int)de_getbyte(pos+3);
cf = (unsigned int)de_getu16be(pos+4);
de_dbg2(c, "pal[%3d] = (%3u,%3u,%3u,A=%u) F=%u",
(int)i, cr, cg, cb, ca, cf);
}
else {
cr = (unsigned int)de_getu16be(pos);
cg = (unsigned int)de_getu16be(pos+2);
cb = (unsigned int)de_getu16be(pos+4);
ca = (unsigned int)de_getu16be(pos+6);
cf = (unsigned int)de_getu16be(pos+8);
de_dbg2(c, "pal[%3d] = (%5u,%5u,%5u,A=%u) F=%u",
(int)i, cr, cg, cb, ca, cf);
}
pos += stride;
}
done:
de_destroy_stringreaderdata(c, srd);
}
开发者ID:jsummers,项目名称:deark,代码行数:54,代码来源:png.c
示例7: handler_acTL
static void handler_acTL(deark *c, lctx *d, struct handler_params *hp)
{
unsigned int n;
i64 pos = hp->dpos;
if(hp->dlen<8) return;
n = (unsigned int)de_getu32be_p(&pos);
de_dbg(c, "num frames: %u", n);
n = (unsigned int)de_getu32be_p(&pos);
de_dbg(c, "num plays: %u%s", n, (n==0)?" (infinite)":"");
}
开发者ID:jsummers,项目名称:deark,代码行数:11,代码来源:png.c
示例8: handler_caNv
static void handler_caNv(deark *c, lctx *d, struct handler_params *hp)
{
i64 x0, x1;
if(hp->dlen<16) return;
x0 = de_geti32be(hp->dpos);
x1 = de_geti32be(hp->dpos+4);
de_dbg(c, "caNv dimensions: %dx%d", (int)x0, (int)x1);
x0 = de_geti32be(hp->dpos+8);
x1 = de_geti32be(hp->dpos+12);
de_dbg(c, "caNv position: %d,%d", (int)x0, (int)x1);
}
开发者ID:jsummers,项目名称:deark,代码行数:12,代码来源:png.c
示例9: do_read_vst_headers
// This .vst (TrueVista) decoder is based on guesswork, on the limited information
// in the TGA spec, and on the behavior of XnView. It may not be correct.
static int do_read_vst_headers(deark *c, lctx *d)
{
int retval = 0;
de_dbg(c, "header at %d", 0);
de_dbg_indent(c, 1);
d->id_field_len = (i64)de_getbyte(0);
if(d->id_field_len==0) {
// ??? XnView seems to do something like this.
d->id_field_len=18;
}
d->cmpr_type = TGA_CMPR_NONE;
d->cmpr_name = "none";
d->main_image.width = de_getu16le(12);
d->main_image.height = de_getu16le(14);
de_dbg_dimensions(c, d->main_image.width, d->main_image.height);
d->pixel_depth = (i64)de_getbyte(16);
de_dbg(c, "pixel depth: %d", (int)d->pixel_depth);
if(d->pixel_depth==8) {
d->color_map_type = 1;
d->color_type = TGA_CLRTYPE_PALETTE;
d->clrtype_name = "palette";
}
else {
d->color_type = TGA_CLRTYPE_TRUECOLOR;
d->clrtype_name = "truecolor";
}
if(d->color_type==TGA_CLRTYPE_PALETTE) {
d->cmap_start = 0;
d->cmap_length = 256;
d->cmap_depth = 24;
}
do_read_image_descriptor(c, d);
de_dbg_indent(c, -1);
if(!de_good_image_dimensions(c, d->main_image.width, d->main_image.height)) goto done;
retval = 1;
done:
return retval;
}
开发者ID:jsummers,项目名称:deark,代码行数:51,代码来源:tga.c
示例10: do_picture_metafile
static void do_picture_metafile(deark *c, lctx *d, struct para_info *pinfo)
{
i64 pos = pinfo->thisparapos;
i64 cbHeader, cbSize;
cbHeader = de_getu16le(pos+30);
de_dbg(c, "cbHeader: %d", (int)cbHeader);
cbSize = de_getu32le(pos+32);
de_dbg(c, "cbSize: %d", (int)cbSize);
if(cbHeader+cbSize <= pinfo->thisparalen) {
dbuf_create_file_from_slice(c->infile, pos+cbHeader, cbSize, "wmf", NULL, 0);
}
}
开发者ID:jsummers,项目名称:deark,代码行数:15,代码来源:wri.c
示例11: do_paragraph
static void do_paragraph(deark *c, lctx *d, struct para_info *pinfo)
{
if(pinfo->papflags&0x10) {
de_dbg(c, "picture at %d, len=%d", (int)pinfo->thisparapos,
(int)pinfo->thisparalen);
de_dbg_indent(c, 1);
do_picture(c, d, pinfo);
de_dbg_indent(c, -1);
}
else {
de_dbg(c, "text paragraph at %d, len=%d", (int)pinfo->thisparapos,
(int)pinfo->thisparalen);
do_text_paragraph(c, d, pinfo);
}
}
开发者ID:jsummers,项目名称:deark,代码行数:15,代码来源:wri.c
示例12: do_decode_rle
static int do_decode_rle(deark *c, lctx *d, i64 pos1, dbuf *unc_pixels)
{
u8 b;
i64 count;
i64 k;
u8 buf[8];
i64 pos = pos1;
while(1) {
if(pos >= c->infile->len) break;
if(unc_pixels->len >= d->main_image.img_size_in_bytes) break;
b = de_getbyte(pos);
pos++;
if(b & 0x80) { // RLE block
count = (i64)(b - 0x80) + 1;
de_read(buf, pos, d->bytes_per_pixel);
pos += d->bytes_per_pixel;
for(k=0; k<count; k++) {
dbuf_write(unc_pixels, buf, d->bytes_per_pixel);
}
}
else { // uncompressed block
count = (i64)(b) + 1;
dbuf_copy(c->infile, pos, count * d->bytes_per_pixel, unc_pixels);
pos += count * d->bytes_per_pixel;
}
}
de_dbg(c, "decompressed %d bytes to %d bytes", (int)(pos-pos1), (int)unc_pixels->len);
return 1;
}
开发者ID:jsummers,项目名称:deark,代码行数:33,代码来源:tga.c
注:本文中的de_dbg函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论