X11-PngViewer

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

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.

MANIFEST  view on Meta::CPAN

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)

META.json  view on Meta::CPAN

   ],
   "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",

META.yml  view on Meta::CPAN

  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

README  view on Meta::CPAN

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;
            }
        }
        

README  view on Meta::CPAN


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);
}

typemap  view on Meta::CPAN

X11::PngViewer        T_PTROBJ



( run in 0.381 second using v1.01-cache-2.11-cpan-0a6323c29d9 )