X11-PngViewer
view release on metacpan or search on metacpan
Revision history for Xll-PngViewer
0.02 Fri Feb 15 17:14:00 2019
Patches to XS to allow older environments to build
0.01 Thu Feb 14 21:00:00 2019
Initial release.
lib/X11/PngViewer.pm
PngViewer.xs
Changes
MANIFEST
Makefile.PL
t/X11-PngViewer.t
typemap
README
META.yml Module YAML meta-data (added by MakeMaker)
META.json Module JSON meta-data (added by MakeMaker)
],
"dynamic_config" : 1,
"generated_by" : "ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150010",
"license" : [
"perl_5"
],
"meta-spec" : {
"url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
"version" : 2
},
"name" : "X11-PngViewer",
"no_index" : {
"directory" : [
"t",
"inc"
]
},
"prereqs" : {
"build" : {
"requires" : {
"MIME::Base64" : "0",
Test::NeedsDisplay: '0'
configure_requires:
Devel::CheckLib: '0'
ExtUtils::MakeMaker: '0'
dynamic_config: 1
generated_by: 'ExtUtils::MakeMaker version 7.34, CPAN::Meta::Converter version 2.150010'
license: perl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
version: '1.4'
name: X11-PngViewer
no_index:
directory:
- t
- inc
requires:
DynaLoader: '0'
base: '0'
perl: '5.006'
strict: '0'
warnings: '0'
Makefile.PL view on Meta::CPAN
#! /usr/bin/perl
use ExtUtils::MakeMaker;
use Devel::CheckLib;
check_lib_or_exit( lib => 'X11', header => [ 'X11/Xlib.h', 'X11/Xutil.h', 'X11/Xatom.h' ] );
check_lib_or_exit( lib => 'png', header => 'png.h' );
WriteMakefile(
NAME => 'X11::PngViewer',
VERSION_FROM => 'lib/X11/PngViewer.pm',
LIBS => ['-lX11 -lpng'],
LICENSE => 'Perl_5',
PL_FILES => {},
MIN_PERL_VERSION => 5.006,
CONFIGURE_REQUIRES => {
'Devel::CheckLib' => 0,
'ExtUtils::MakeMaker' => 0,
},
BUILD_REQUIRES => {
'MIME::Base64' => 0,
PngViewer.xs view on Meta::CPAN
void DESTROY(viewer *self) {
XFlush(self->display);
XFreeCursor(self->display, *self->cursor);
free(self->cursor);
XFreeGC(self->display, *self->gc);
XCloseDisplay(self->display);
free(self->gc);
free(self);
}
typedef viewer *X11__PngViewer;
MODULE = X11::PngViewer PACKAGE = X11::PngViewer
PROTOTYPES: ENABLE
X11::PngViewer
new(SV *class_name)
CODE:
RETVAL = new();
OUTPUT:
RETVAL
X11::PngViewer
show(self, png_contents)
X11::PngViewer self
SV *png_contents
CODE:
RETVAL = show(self, SvPV_nolen(png_contents), (int)SvLEN(png_contents));
OUTPUT:
RETVAL
NAME
X11::PngViewer - Png Viewer in X11
VERSION
Version 0.09
SYNOPSIS
use X11::PngViewer();
my $viewer = X11::PngViewer->new();
my $directory = File::HomeDir->my_pictures();
my $handle = DirHandle->new($directory) or die "No slideshow from $directory:$!";
while(my $entry = $handle->read()) {
if ($entry =~ /[.]png/smx) {
$viewer->show(File::Slurper::read_binary(File::Spec->catfile($directory, $entry)));
sleep 1;
}
}
DIAGNOSTICS
Cannot connect to X server
The module was unable to connect to a X11 server. Check the contents
of the DISPLAY environment variable.
CONFIGURATION AND ENVIRONMENT
X11::PngViewer will use the DISPLAY variable to try to connect to an X
Server.
DEPENDENCIES
X11::PngViewer requires no non-core Perl modules
INCOMPATIBILITIES
None reported.
BUGS AND LIMITATIONS
No bugs have been reported.
Please report any bugs or feature requests to
lib/X11/PngViewer.pm view on Meta::CPAN
package X11::PngViewer;
use strict;
use warnings;
use base qw(DynaLoader);
our $VERSION = '0.10';
bootstrap X11::PngViewer $VERSION;
1;
__END__
=head1 NAME
X11::PngViewer - Png Viewer in X11
=head1 VERSION
Version 0.09
=head1 SYNOPSIS
use X11::PngViewer();
use File::HomeDir();
use DirHandle();
use File::Spec();
my $viewer = X11::PngViewer->new();
my $directory = File::HomeDir->my_pictures();
my $handle = DirHandle->new($directory) or die "No slideshow from $directory:$!";
while(my $entry = $handle->read()) {
if ($entry =~ /[.]png/smx) {
$viewer->show(File::Slurper::read_binary(File::Spec->catfile($directory, $entry)));
sleep 1;
}
}
=head1 DESCRIPTION
lib/X11/PngViewer.pm view on Meta::CPAN
=over
=item C<< Cannot connect to X server >>
The module was unable to connect to a X11 server. Check the contents of the DISPLAY environment variable.
=back
=head1 CONFIGURATION AND ENVIRONMENT
X11::PngViewer will use the DISPLAY variable to try to connect to an X Server.
=head1 DEPENDENCIES
X11::PngViewer requires no non-core Perl modules
=head1 INCOMPATIBILITIES
None reported.
=head1 BUGS AND LIMITATIONS
No bugs have been reported.
Please report any bugs or feature requests to
t/X11-PngViewer.t view on Meta::CPAN
# Before 'make install' is performed this script should be runnable with
# 'make test'. After 'make install' it should work as 'perl X11-PngViewer.t'
#########################
# change 'tests => 1' to 'tests => last_test_to_print';
use strict;
use warnings;
use Test::NeedsDisplay;
use MIME::Base64();
use Test::More tests => 57;
BEGIN { use_ok('X11::PngViewer') };
#########################
# Insert your test code below, the Test::More module is use()ed here so read
# its man page ( perldoc Test::More ) for help writing this test script.
#
my $sleep_time = 0;
my $viewer = X11::PngViewer->new();
ok($viewer, "Created X11::PngViewer object");
foreach ( 1 .. 5 ) {
ok(ref $viewer->show(MIME::Base64::decode_base64(<<'_B64_OUT_')) eq 'X11::PngViewer', "Successfully displayed 16-bit/color RGB, non-interlaced (duckduckgo)");
iVBORw0KGgoAAAANSUhEUgAAAVcAAAEJEAIAAAD/Ry+LAAAkbHpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjarZxplhw3sqX/YxW9BMzDcgAYcE7voJff30VkUSRFsSS9pywykhEe7g6Y2R0M8HLn//3f6/4P/43Uvcul9Tpq9fyXRx5x8kv3n/8+r8Hn9/f7r7Sv38KP7zs/vn6NvCZe0+eDej6vYfJ++eMLLX+9v35837X9+SX2rx...
_B64_OUT_
sleep $sleep_time if ($sleep_time);
ok(ref $viewer->show(MIME::Base64::decode_base64(<<'_B64_OUT_')) eq 'X11::PngViewer', "Successfully displayed 8-bit/color RGBA, non-interlaced (camel book)");
iVBORw0KGgoAAAANSUhEUgAAANwAAAEgCAYAAADffR1XAAApg3pUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjarZxpkhy3sqX/YxW9BIwOYDkYzd4Oevn9HWRRLEqk7N1rTYosKiszAoP7GRwe5c7//Z/r/g+/eo/mcqnNupnnV+65x8E/mv/8+nwNPr+/36+9vr4Xfn3dxR//jHxNfE2fb9j5ev/g9fLzAzV/vT5/fd3VrzvE9nWhr2...
_B64_OUT_
sleep $sleep_time if ($sleep_time);
ok(ref $viewer->show(MIME::Base64::decode_base64(<<'_B64_OUT_')) eq 'X11::PngViewer', "Successfully displayed 8-bit gray+alpha, non-interlaced (tux)");
iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAQAAAD2e2DtAAAABGdBTUEAAYagMeiWXwAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAABIAAAASABGyWs+AAAAanRFWHRSYXcgcHJvZmlsZSB0eXBlIEFQUDEACkFQUDEKICAgICAgMzQKNDk0OTJhMDAwODAwMDAwMDAxMDAzMTAxMDIwMDA3MDAwMDAwMWEwMDAwMDAwMDAwMDAwMDQ3NmY2Zj...
_B64_OUT_
sleep $sleep_time if ($sleep_time);
ok(ref $viewer->show(MIME::Base64::decode_base64(<<'_B64_OUT_')) eq 'X11::PngViewer', "Successfully displayed 8-bit gray, non-interlaced (bsd daemon)");
iVBORw0KGgoAAAANSUhEUgAAALUAAAEACAAAAADQSGgHAAAABGdBTUEAAYagMeiWXwAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAABuvAAAbrwFeGpEcAAAizUlEQVR42u2dCXiTVdbHT/K+2ZOmTZt0S/clbZou6Zq2adqmTbek+yIIuKDIIAI6oKC4jeKu4+i4jTrqqAi0ZVE2QR11HEfH9ZOZURFExVEE2VyQQpb73ftmaQJd0iZg53lyfR...
_B64_OUT_
sleep $sleep_time if ($sleep_time);
ok(ref $viewer->show(MIME::Base64::decode_base64(<<'_B64_OUT_')) eq 'X11::PngViewer', "Successfully displayed 4-bit gray, non-interlaced (postgresql elephant)");
iVBORw0KGgoAAAANSUhEUgAAAPgAAAEABAAAAAB+/AkWAAAABGdBTUEAAYagMeiWXwAAAAJiS0dEAA86Mj6jAAAACXBIWXMAAABIAAAASABGyWs+AAATjklEQVR42u1dfYxdR3V/u7bjjyTVu/ftt3fTN9chfDV41w4BgZrsYjnqB7BrSAyolDWNk6C0kh2FENFANxZVaQh0E6pUAVI2QQjzvbEIogkp643SoihyN6QtIcHJlkBJoNirxM...
_B64_OUT_
sleep $sleep_time if ($sleep_time);
ok(ref $viewer->show(MIME::Base64::decode_base64(<<'_B64_OUT_')) eq 'X11::PngViewer', "Successfully displayed 8-bit/color RGB, non-interlaced (openldap worm)");
iVBORw0KGgoAAAANSUhEUgAAARsAAAGQCAIAAAAROFNtAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAKhgAACoYB5rIENAAAgABJREFUeNrs/XecJVl234n9zr03Ip5P7yuzsrxv39M9Pd0z0+OAwR...
_B64_OUT_
sleep $sleep_time if ($sleep_time);
ok(ref $viewer->show(MIME::Base64::decode_base64(<<'_B64_OUT_')) eq 'X11::PngViewer', "Successfully displayed 16-bit grayscale, interlaced (mariadb-seal)");
iVBORw0KGgoAAAANSUhEUgAAAZAAAAEtEAAAAAEkF4VuAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH4wIOCCIEaNc0XgAAIABJREFUeNrsXXVcVMsX/9IpLKiYIIKKgmBLmNiBLXa3PJ+NPOPngs/C1qcoNnaLgmIHStiEoIAoigKCNBLCsr8/7naxu+wuC9zv+zy5d/ZOnDlzZs6ZOKNCp0PuUJVHoiGtuN9VZEmJrQ77ObpIDp...
_B64_OUT_
sleep $sleep_time if ($sleep_time);
ok(ref $viewer->show(MIME::Base64::decode_base64(<<'_B64_OUT_')) eq 'X11::PngViewer', "Successfully displayed 16-bit/color RGBA, interlaced (metacpan)");
iVBORw0KGgoAAAANSUhEUgAAAUYAAABcEAYAAAE1evBsAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH4wIOCQApi3hEPAAAIABJREFUeNrtXXdgHMXVn9ndU7NxwQbjfurG2IbYwio2xnenk+w7WQQwDhBCCQmdhEBophgbQv1ICAk9lIRuEohl6VSuuSFLsjBgAzbqboBxwU3Ckm5nvj8ek9WVvb2mZs/vn7tts7NT3rz35hVEKa...
_B64_OUT_
sleep $sleep_time if ($sleep_time);
ok(ref $viewer->show(MIME::Base64::decode_base64(<<'_B64_OUT_')) eq 'X11::PngViewer', "Successfully displayed 16-bit gray+alpha, non-interlaced (rsyslog)");
iVBORw0KGgoAAAANSUhEUgAAAMcAAABDEAQAAADSvQXAAAAajElEQVR42u1deXQUZRL/9RyZI8wkMSRMAigSAoIoBES8EFFARRPDLvpWUd56IS4ag67rqsuq63NFdw2I+FyP56IiHqghCFndhQU5FIEQghySECSMSUbDkcSQQCbpb/+o19szPV/PdM/0hKD53qs3R3d/9R1VX9VXVV+1AAgCwBh9RiqR7tNaTyw4jHg+1nu6Aw7peixz0o...
_B64_OUT_
sleep $sleep_time if ($sleep_time);
ok(ref $viewer->show(MIME::Base64::decode_base64(<<'_B64_OUT_')) eq 'X11::PngViewer', "Successfully displayed 8-bit colormap, non-interlaced (postfix mouse)");
iVBORw0KGgoAAAANSUhEUgAAAIIAAABbCAMAAACI7K0oAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAilBMVEX////5+/jy9PHg4t/Hycadn5y9v7zT1dLp6+iRk5BCREEPEQ4bHBlgYl9vcW6EhoOtr6ynqaY0NjN7fXooKicAAgCztbJSU1AqJxxlYkSZj2PSyo337a...
_B64_OUT_
sleep $sleep_time if ($sleep_time);
ok(ref $viewer->show(MIME::Base64::decode_base64(<<'_B64_OUT_')) eq 'X11::PngViewer', "Successfully displayed 4-bit colormap, non-interlaced (redhat)");
iVBORw0KGgoAAAANSUhEUgAAAXoAAAD6BAMAAABdSZHPAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAHlBMVEX///+qqqpVVVUAAAD/qqqqqlVVAACqAAD/AACqVVUZksLIAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB+MCDwc2GOGYnx...
_B64_OUT_
sleep $sleep_time if ($sleep_time);
}
X11::PngViewer T_PTROBJ
( run in 0.381 second using v1.01-cache-2.11-cpan-0a6323c29d9 )