# PIKA - Photo and Image Kooker Application # Copyright (C) 1995 Spencer Kimball and Peter Mattis # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # "Perlized" from C source by Manish Singh sub buffers_get_list { $blurb = 'Retrieve a complete listing of the available buffers.'; $help = <<'HELP'; This procedure returns a complete listing of available named buffers. HELP &mitch_pdb_misc('2005', '2.4'); @inargs = ( { name => 'filter', type => 'string', null_ok => 1, desc => 'An optional regular expression used to filter the list' } ); @outargs = ( { name => 'buffer_list', type => 'strv', desc => 'The list of buffer names' } ); %invoke = ( code => <<'CODE' { buffer_list = pika_container_get_filtered_name_array (pika->named_buffers, filter); } CODE ); } sub buffer_rename { $blurb = 'Renames a named buffer.'; $help = 'This procedure renames a named buffer.'; &mitch_pdb_misc('2005', '2.4'); @inargs = ( { name => 'buffer_name', type => 'string', non_empty => 1, desc => 'The buffer name' }, { name => 'new_name', type => 'string', non_empty => 1, desc => 'The buffer\'s new name' } ); @outargs = ( { name => 'real_name', type => 'string', desc => 'The real name given to the buffer' } ); %invoke = ( code => <<'CODE' { PikaBuffer *buffer = pika_pdb_get_buffer (pika, buffer_name, error); if (buffer) { pika_object_set_name (PIKA_OBJECT (buffer), new_name); real_name = g_strdup (pika_object_get_name (buffer)); } else success = FALSE; } CODE ); } sub buffer_delete { $blurb = 'Deletes a named buffer.'; $help = 'This procedure deletes a named buffer.'; $author = $copyright = 'David Gowers '; $date = '2005'; $since = '2.4'; @inargs = ( { name => 'buffer_name', type => 'string', non_empty => 1, desc => 'The buffer name' } ); %invoke = ( code => <<'CODE' { PikaBuffer *buffer = pika_pdb_get_buffer (pika, buffer_name, error); if (buffer) success = pika_container_remove (pika->named_buffers, PIKA_OBJECT (buffer)); else success = FALSE; } CODE ); } sub buffer_get_width { $blurb = "Retrieves the specified buffer's width."; $help = "This procedure retrieves the specified named buffer's width."; &mitch_pdb_misc('2005', '2.4'); @inargs = ( { name => 'buffer_name', type => 'string', non_empty => 1, desc => 'The buffer name' } ); @outargs = ( { name => 'width', type => 'int32', desc => "The buffer width" } ); %invoke = ( code => <<'CODE' { PikaBuffer *buffer = pika_pdb_get_buffer (pika, buffer_name, error); if (buffer) width = pika_buffer_get_width (buffer); else success = FALSE; } CODE ); } sub buffer_get_height { $blurb = "Retrieves the specified buffer's height."; $help = "This procedure retrieves the specified named buffer's height."; &mitch_pdb_misc('2005', '2.4'); @inargs = ( { name => 'buffer_name', type => 'string', non_empty => 1, desc => 'The buffer name' } ); @outargs = ( { name => 'height', type => 'int32', desc => "The buffer height" } ); %invoke = ( code => <<'CODE' { PikaBuffer *buffer = pika_pdb_get_buffer (pika, buffer_name, error); if (buffer) height = pika_buffer_get_height (buffer); else success = FALSE; } CODE ); } sub buffer_get_bytes { $blurb = "Retrieves the specified buffer's bytes."; $help = "This procedure retrieves the specified named buffer's bytes."; &mitch_pdb_misc('2005', '2.4'); @inargs = ( { name => 'buffer_name', type => 'string', non_empty => 1, desc => 'The buffer name' } ); @outargs = ( { name => 'bytes', type => 'int32', desc => "The buffer bpp" } ); %invoke = ( code => <<'CODE' { PikaBuffer *buffer = pika_pdb_get_buffer (pika, buffer_name, error); if (buffer) { const Babl *format = pika_buffer_get_format (buffer); bytes = babl_format_get_bytes_per_pixel (format); } else success = FALSE; } CODE ); } sub buffer_get_image_type { $blurb = "Retrieves the specified buffer's image type."; $help = "This procedure retrieves the specified named buffer's image type."; &mitch_pdb_misc('2005', '2.4'); @inargs = ( { name => 'buffer_name', type => 'string', non_empty => 1, desc => 'The buffer name' } ); @outargs = ( { name => 'image_type', type => 'enum PikaImageBaseType', desc => "The buffer image type" } ); %invoke = ( code => <<'CODE' { PikaBuffer *buffer = pika_pdb_get_buffer (pika, buffer_name, error); if (buffer) image_type = pika_babl_format_get_image_type (pika_buffer_get_format (buffer)); else success = FALSE; } CODE ); } @headers = qw( "gegl/pika-babl-compat.h" "core/pika.h" "core/pikabuffer.h" "core/pikacontainer.h" "core/pikacontainer-filter.h" "pikapdb-utils.h"); @procs = qw(buffers_get_list buffer_rename buffer_delete buffer_get_width buffer_get_height buffer_get_bytes buffer_get_image_type); %exports = (app => [@procs], lib => [@procs]); $desc = 'Buffer procedures'; $doc_title = 'pikabuffer'; $doc_short_desc = 'Functions for manipulating cut buffers.'; $doc_long_desc = 'Functions related to named cut buffers.'; 1;