descent freespace
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 20
XML::Descent 0.0.4
XML::Descent is a Perl module for recursive descent XML parsing. more>>
XML::Descent is a Perl module for recursive descent XML parsing.
SYNOPSIS
use XML::Descent;
# Create parser
my $p = XML::Descent->new({
Input => $xml
});
# Setup handlers
$p->on(folder => sub {
my ($elem, $attr) = @_;
$p->on(url => sub {
my ($elem, $attr) = @_;
my $link = {
name => $attr->{name},
url => $p->text()
};
$p->stash(link => $link);
});
my $folder = $p->walk();
$folder->{name} = $attr->{name};
$p->stash(folder => $folder);
});
# Parse
my $res = $p->walk();
The conventional models for parsing XML are either DOM (a data structure representing the entire document tree is created) or SAX (callbacks are issued for each element in the XML).
XML grammar is recursive - so its nice to be able to write recursive parsers for it. XML::Descent allows such parsers to be created.
Typically a new XML::Descent is created and handlers are defined for elements were interested in
my $p = XML::Descent->new({ Input => $xml });
$p->on(link => sub {
my ($elem, $attr) = @_;
print "Found link: ", $attr->{url}, "n";
$p->walk(); # recurse
});
$p->walk(); # parse
A handler provides a convenient lexical scope that lasts until the closing tag of the element that triggered the handler is reached.
When called at the top level the parsing methods walk(), text() and xml() parse the whole XML document. When called recursively within a handler they parse the portion of the document nested inside node that triggered the handler.
New handlers may be defined within a handler and their scope will be limited to the XML inside the node that triggered the handler.
<<lessSYNOPSIS
use XML::Descent;
# Create parser
my $p = XML::Descent->new({
Input => $xml
});
# Setup handlers
$p->on(folder => sub {
my ($elem, $attr) = @_;
$p->on(url => sub {
my ($elem, $attr) = @_;
my $link = {
name => $attr->{name},
url => $p->text()
};
$p->stash(link => $link);
});
my $folder = $p->walk();
$folder->{name} = $attr->{name};
$p->stash(folder => $folder);
});
# Parse
my $res = $p->walk();
The conventional models for parsing XML are either DOM (a data structure representing the entire document tree is created) or SAX (callbacks are issued for each element in the XML).
XML grammar is recursive - so its nice to be able to write recursive parsers for it. XML::Descent allows such parsers to be created.
Typically a new XML::Descent is created and handlers are defined for elements were interested in
my $p = XML::Descent->new({ Input => $xml });
$p->on(link => sub {
my ($elem, $attr) = @_;
print "Found link: ", $attr->{url}, "n";
$p->walk(); # recurse
});
$p->walk(); # parse
A handler provides a convenient lexical scope that lasts until the closing tag of the element that triggered the handler is reached.
When called at the top level the parsing methods walk(), text() and xml() parse the whole XML document. When called recursively within a handler they parse the portion of the document nested inside node that triggered the handler.
New handlers may be defined within a handler and their scope will be limited to the XML inside the node that triggered the handler.
Download (0.009MB)
Added: 2007-07-31 License: Perl Artistic License Price:
815 downloads
Parse::RecDescent 1.94
Parse::RecDescent is a Perl module to generate Recursive-Descent Parsers. more>>
Parse::RecDescent is a Perl module to generate Recursive-Descent Parsers.
SYNOPSIS
use Parse::RecDescent;
# Generate a parser from the specification in $grammar:
$parser = new Parse::RecDescent ($grammar);
# Generate a parser from the specification in $othergrammar
$anotherparser = new Parse::RecDescent ($othergrammar);
# Parse $text using rule startrule (which must be
# defined in $grammar):
$parser->startrule($text);
# Parse $text using rule otherrule (which must also
# be defined in $grammar):
$parser->otherrule($text);
# Change the universal token prefix pattern
# (the default is: s*):
$Parse::RecDescent::skip = [ t]+;
# Replace productions of existing rules (or create new ones)
# with the productions defined in $newgrammar:
$parser->Replace($newgrammar);
# Extend existing rules (or create new ones)
# by adding extra productions defined in $moregrammar:
$parser->Extend($moregrammar);
# Global flags (useful as command line arguments under -s):
$::RD_ERRORS # unless undefined, report fatal errors
$::RD_WARN # unless undefined, also report non-fatal problems
$::RD_HINT # if defined, also suggestion remedies
$::RD_TRACE # if defined, also trace parsers behaviour
$::RD_AUTOSTUB # if defined, generates "stubs" for undefined rules
$::RD_AUTOACTION # if defined, appends specified action to productions
Parse::RecDescent incrementally generates top-down recursive-descent text parsers from simple yacc-like grammar specifications.
Main features:
- Regular expressions or literal strings as terminals (tokens),
- Multiple (non-contiguous) productions for any rule,
- Repeated and optional subrules within productions,
- Full access to Perl within actions specified as part of the grammar,
- Simple automated error reporting during parser generation and parsing,
- The ability to commit to, uncommit to, or reject particular productions during a parse,
- The ability to pass data up and down the parse tree ("down" via subrule argument lists, "up" via subrule return values)
- Incremental extension of the parsing grammar (even during a parse),
- Precompilation of parser objects,
- User-definable reduce-reduce conflict resolution via "scoring" of matching productions.
<<lessSYNOPSIS
use Parse::RecDescent;
# Generate a parser from the specification in $grammar:
$parser = new Parse::RecDescent ($grammar);
# Generate a parser from the specification in $othergrammar
$anotherparser = new Parse::RecDescent ($othergrammar);
# Parse $text using rule startrule (which must be
# defined in $grammar):
$parser->startrule($text);
# Parse $text using rule otherrule (which must also
# be defined in $grammar):
$parser->otherrule($text);
# Change the universal token prefix pattern
# (the default is: s*):
$Parse::RecDescent::skip = [ t]+;
# Replace productions of existing rules (or create new ones)
# with the productions defined in $newgrammar:
$parser->Replace($newgrammar);
# Extend existing rules (or create new ones)
# by adding extra productions defined in $moregrammar:
$parser->Extend($moregrammar);
# Global flags (useful as command line arguments under -s):
$::RD_ERRORS # unless undefined, report fatal errors
$::RD_WARN # unless undefined, also report non-fatal problems
$::RD_HINT # if defined, also suggestion remedies
$::RD_TRACE # if defined, also trace parsers behaviour
$::RD_AUTOSTUB # if defined, generates "stubs" for undefined rules
$::RD_AUTOACTION # if defined, appends specified action to productions
Parse::RecDescent incrementally generates top-down recursive-descent text parsers from simple yacc-like grammar specifications.
Main features:
- Regular expressions or literal strings as terminals (tokens),
- Multiple (non-contiguous) productions for any rule,
- Repeated and optional subrules within productions,
- Full access to Perl within actions specified as part of the grammar,
- Simple automated error reporting during parser generation and parsing,
- The ability to commit to, uncommit to, or reject particular productions during a parse,
- The ability to pass data up and down the parse tree ("down" via subrule argument lists, "up" via subrule return values)
- Incremental extension of the parsing grammar (even during a parse),
- Precompilation of parser objects,
- User-definable reduce-reduce conflict resolution via "scoring" of matching productions.
Download (0.12MB)
Added: 2006-09-23 License: Perl Artistic License Price:
1131 downloads
Beyond The Red Line Demo
Beyond the Red Line is a stand-alone total conversion for the award-winning Freespace 2. more>>
Beyond the Red Line project is a stand-alone total conversion for the award-winning Freespace 2 released by Volition and Interplay for the PC. It is based on the popular new tv-show Battlestar Galactica. No, not the one from the 70s.
Will I need Freespace 2 to play it?
No, Beyond the Red Line is a stand-alone conversion and will not require Freespace 2. All you need for playing will be included in the download.
Is it free?
Absolutely. The game is made by fans for the fans, no profit is being made from any part of the project. Although we could use some pizzas and coke to keep our mortal bodies running.
That about covers it... a BSG total conversion of FS2 that has just released a demo version. it plays really well and looks amazing. a must for any BSG fan.
Enhancements:
- This demo contains spoilers for the second season of BSG, so if you havent seen that season yet you should pass on this game for now.
<<lessWill I need Freespace 2 to play it?
No, Beyond the Red Line is a stand-alone conversion and will not require Freespace 2. All you need for playing will be included in the download.
Is it free?
Absolutely. The game is made by fans for the fans, no profit is being made from any part of the project. Although we could use some pizzas and coke to keep our mortal bodies running.
That about covers it... a BSG total conversion of FS2 that has just released a demo version. it plays really well and looks amazing. a must for any BSG fan.
Enhancements:
- This demo contains spoilers for the second season of BSG, so if you havent seen that season yet you should pass on this game for now.
Download (MB)
Added: 2007-04-23 License: Freeware Price:
925 downloads
XML::Xerces::DOMParse 1.7.0
XML::Xerces::DOMParse is a Perl module for parsing DOMs. more>>
XML::Xerces::DOMParse is a Perl module for parsing DOMs.
SYNOPSIS
# Here;s an example that reads in an XML file from the
# command line and then removes all formatting, re-adds
# formatting and then prints the DOM back to a file.
use XML::Xerces;
use XML::Xerces::DOMParse;
my $parser = new XML::Xerces::DOMParser ();
$parser->parse ($ARGV[0]);
my $doc = $parser->getDocument ();
XML::Xerces::DOMParse::unformat ($doc);
XML::Xerces::DOMParse::format ($doc);
XML::Xerces::DOMParse::print (*STDOUT, $doc);
Use this module in conjunction with XML::Xerces. Once you have read an XML file into a DOM tree in memory, this module provides routines for recursive descent parsing of the DOM tree. It also provides three concrete and useful functions to format, unformat and print DOM trees, all which are built on the more general parsing functions.
<<lessSYNOPSIS
# Here;s an example that reads in an XML file from the
# command line and then removes all formatting, re-adds
# formatting and then prints the DOM back to a file.
use XML::Xerces;
use XML::Xerces::DOMParse;
my $parser = new XML::Xerces::DOMParser ();
$parser->parse ($ARGV[0]);
my $doc = $parser->getDocument ();
XML::Xerces::DOMParse::unformat ($doc);
XML::Xerces::DOMParse::format ($doc);
XML::Xerces::DOMParse::print (*STDOUT, $doc);
Use this module in conjunction with XML::Xerces. Once you have read an XML file into a DOM tree in memory, this module provides routines for recursive descent parsing of the DOM tree. It also provides three concrete and useful functions to format, unformat and print DOM trees, all which are built on the more general parsing functions.
Download (0.13MB)
Added: 2007-06-15 License: Perl Artistic License Price:
861 downloads
Into Cerberon :: Descent Into Doom 0.0.3
Into Cerberon :: Descent Into Doom is a Descent style mod for Doom3. more>>
Into Cerberon :: Descent Into Doom is a Descent style mod for Doom3.
Into Cerberon is a mod for Doom 3 that will bring the six-degrees-of-freedom action of the classic FPS game series Descent into the high-powered graphics engine of Doom 3.
<<lessInto Cerberon is a mod for Doom 3 that will bring the six-degrees-of-freedom action of the classic FPS game series Descent into the high-powered graphics engine of Doom 3.
Download (42MB)
Added: 2006-12-06 License: Freeware Price:
1054 downloads
JetPAG 0.6.1
JetPAG is a powerful recursive-descent parser and lexical analyzer optimizing generator. more>>
JetPAG is full-LL(k) optimizing parser and lexical analyzer generator. It is focused on high usability, efficiency and readability of generated code. JetPAG performs full L(k) analysis and tails is with powerful optimizations resulting a grammatically powerfull, resource-efficient and fast recognizers.
JetPAG is suitable for a wide spectrum of applications ranging from simple stand-alone small interpreters to high-end full-featured parser interpreter kits suitable for integration with larger applications. Generated recognizers are guaranteed to be faster than most current recurisve-descent generated ones. Provided documentation and tutorials in the website allow acquiring skill in JetPAG to be a matter of minutes.
Enhancements:
- Many bugs were fixed.
- The analysis engines were vastly improved with smarter optimizations.
- Easier grammars and several new practical options were introduced.
- Importing and exporting token types for use among several grammars is supported.
- Improvements were made to the code generator.
<<lessJetPAG is suitable for a wide spectrum of applications ranging from simple stand-alone small interpreters to high-end full-featured parser interpreter kits suitable for integration with larger applications. Generated recognizers are guaranteed to be faster than most current recurisve-descent generated ones. Provided documentation and tutorials in the website allow acquiring skill in JetPAG to be a matter of minutes.
Enhancements:
- Many bugs were fixed.
- The analysis engines were vastly improved with smarter optimizations.
- Easier grammars and several new practical options were introduced.
- Importing and exporting token types for use among several grammars is supported.
- Improvements were made to the code generator.
Download (MB)
Added: 2007-02-08 License: GPL (GNU General Public License) Price:
988 downloads
GD::Simple 2.35
GD::Simple module is a simplified interface to GD library. more>>
GD::Simple module is a simplified interface to GD library.
SYNOPSIS
use GD::Simple;
# create a new image
$img = GD::Simple->new(400,250);
# draw a red rectangle with blue borders
$img->bgcolor(red);
$img->fgcolor(blue);
$img->rectangle(10,10,50,50);
# draw an empty rectangle with green borders
$img->bgcolor(undef);
$img->fgcolor(green);
$img->rectangle(30,30,100,100);
# move to (80,80) and draw a green line to (100,190)
$img->moveTo(80,80);
$img->lineTo(100,190);
# draw a solid orange ellipse
$img->moveTo(110,100);
$img->bgcolor(orange);
$img->fgcolor(orange);
$img->ellipse(40,40);
# draw a black filled arc
$img->moveTo(150,150);
$img->fgcolor(black);
$img->arc(50,50,0,100,gdNoFill|gdEdged);
# draw a string at (10,180) using the default
# built-in font
$img->moveTo(10,180);
$img->string(This is very simple);
# draw a string at (280,210) using 20 point
# times italic, angled upward 90 degrees
$img->moveTo(280,210);
$img->font(Times:italic);
$img->fontsize(20);
$img->angle(-90);
$img->string(This is very fancy);
# some turtle graphics
$img->moveTo(300,100);
$img->penSize(3,3);
$img->angle(0);
$img->line(20); # 20 pixels going to the right
$img->turn(30); # set turning angle to 30 degrees
$img->line(20); # 20 pixel line
$img->line(20);
$img->line(20);
$img->turn(-90); # set turning angle to -90 degrees
$img->line(50); # 50 pixel line
# draw a cyan polygon edged in blue
my $poly = new GD::Polygon;
$poly->addPt(150,100);
$poly->addPt(199,199);
$poly->addPt(100,199);
$img->bgcolor(cyan);
$img->fgcolor(blue);
$img->penSize(1,1);
$img->polygon($poly);
# convert into png data
print $img->png;
GD::Simple is a subclass of the GD library that shortens many of the long GD method calls by storing information about the pen color, size and position in the GD object itself. It also adds a small number of "turtle graphics" style calls for those who prefer to work in polar coordinates. In addition, the library allows you to use symbolic names for colors, such as "chartreuse", and will manage the colors for you.
The Pen
GD::Simple maintains a "pen" whose settings are used for line- and shape-drawing operations. The pen has the following properties:
fgcolor
The pen foreground color is the color of lines and the borders of filled and unfilled shapes.
bgcolor
The pen background color is the color of the contents of filled shapes.
pensize
The pen size is the width of the pen. Larger sizes draw thicker lines.
position
The pen position is its current position on the canvas in (X,Y) coordinates.
angle
When drawing in turtle mode, the pen angle determines the current direction of lines of relative length.
turn
When drawing in turtle mode, the turn determines the clockwise or counterclockwise angle that the pen will turn before drawing the next line.
font
The font to use when drawing text. Both built-in bitmapped fonts and TrueType fonts are supported.
fontsize
The size of the font to use when drawing with TrueType fonts.
One sets the position and properties of the pen and then draws. As the drawing progresses, the position of the pen is updated.
Methods
GD::Simple introduces a number of new methods, a few of which have the same name as GD::Image methods, and hence change their behavior. In addition to these new methods, GD::Simple objects support all of the GD::Image methods. If you make a method call that isnt directly supported by GD::Simple, it refers the request to the underlying GD::Image object. Hence one can load a JPEG image into GD::Simple and declare it to be TrueColor by using this call, which is effectively inherited from GD::Image:
my $img = GD::Simple->newFromJpeg(./myimage.jpg,1);
The rest of this section describes GD::Simple-specific methods.
$img->moveTo($x,$y)
This call changes the position of the pen without drawing. It moves the pen to position ($x,$y) on the drawing canvas.
$img->move($dx,$dy)
$img->move($dr)
This call changes the position of the pen without drawing. When called with two arguments it moves the pen $dx pixels to the right and $dy pixels downward. When called with one argument it moves the pen $dr pixels along the vector described by the current pen angle.
$img->lineTo($x,$y)
The lineTo() call simultaneously draws and moves the pen. It draws a line from the current pen position to the position defined by ($x,$y) using the current pen size and color. After drawing, the position of the pen is updated to the new position.
$img->line($dx,$dy)
$img->line($dr)
The line() call simultaneously draws and moves the pen. When called with two arguments it draws a line from the current position of the pen to the position $dx pixels to the right and $dy pixels down. When called with one argument, it draws a line $dr pixels long along the angle defined by the current pen angle.
$img->clear
This method clears the canvas by painting over it with the current background color.
$img->rectangle($x1,$y1,$x2,$y2)
This method draws the rectangle defined by corners ($x1,$y1), ($x2,$y2). The rectangles edges are drawn in the foreground color and its contents are filled with the background color. To draw a solid rectangle set bgcolor equal to fgcolor. To draw an unfilled rectangle (transparent inside), set bgcolor to undef.
$img->ellipse($width,$height)
This method draws the ellipse centered at the current location with width $width and height $height. The ellipses border is drawn in the foreground color and its contents are filled with the background color. To draw a solid ellipse set bgcolor equal to fgcolor. To draw an unfilled ellipse (transparent inside), set bgcolor to undef.
$img->arc($cx,$cy,$width,$height,$start,$end [,$style])
This method draws filled and unfilled arcs. See GD for a description of the arguments. To draw a solid arc (such as a pie wedge) set bgcolor equal to fgcolor. To draw an unfilled arc, set bgcolor to undef.
$img->polygon($poly)
This method draws filled and unfilled polygon using the current settings of fgcolor for the polygon border and bgcolor for the polygon fill color. See GD for a description of creating polygons. To draw a solid polygon set bgcolor equal to fgcolor. To draw an unfilled polygon, set bgcolor to undef.
$img->polyline($poly)
This method draws polygons without closing the first and last vertices (similar to GD::Image->unclosedPolygon()). It uses the fgcolor to draw the line.
$img->string($string)
This method draws the indicated string starting at the current position of the pen. The pen is moved to the end of the drawn string. Depending on the font selected with the font() method, this will use either a bitmapped GD font or a TrueType font. The angle of the pen will be consulted when drawing the text. For TrueType fonts, any angle is accepted. For GD bitmapped fonts, the angle can be either 0 (draw horizontal) or -90 (draw upwards).
For consistency between the TrueType and GD font behavior, the string is always drawn so that the current position of the pen corresponds to the bottom left of the first character of the text. This is different from the GD behavior, in which the first character of bitmapped fonts hangs down from the pen point.
This method returns a polygon indicating the bounding box of the rendered text. If an error occurred (such as invalid font specification) it returns undef and an error message in $@.
$metrics = $img->fontMetrics
($metrics,$width,$height) = GD::Simple->fontMetrics($font,$fontsize,$string)
This method returns information about the current font, most commonly a TrueType font. It can be invoked as an instance method (on a previously-created GD::Simple object) or as a class method (on the GD::Simple class).
When called as an instance method, fontMetrics() takes no arguments and returns a single hash reference containing the metrics that describe the currently selected font and size. The hash reference contains the following information:
xheight the base height of the font from the bottom to the top of
a lowercase m
ascent the length of the upper stem of the lowercase d
descent the length of the lower step of the lowercase j
lineheight the distance from the bottom of the j to the top of
the d
leading the distance between two adjacent lines
($delta_x,$delta_y)= $img->stringBounds($string)
This method indicates the X and Y offsets (which may be negative) that will occur when the given string is drawn using the current font, fontsize and angle. When the string is drawn horizontally, it gives the width and height of the strings bounding box.
$delta_x = $img->stringWidth($string)
This method indicates the width of the string given the current font, fontsize and angle. It is the same as ($img->stringBounds($string))[0]
($x,$y) = $img->curPos
Return the current position of the pen. Set the current position using moveTo().
$font = $img->font([$newfont] [,$newsize])
Get or set the current font. Fonts can be GD::Font objects, TrueType font file paths, or fontconfig font patterns like "Times:italic" (see fontconfig). The latter feature requires that you have the fontconfig library installed and are using libgd version 2.0.33 or higher.
As a shortcut, you may pass two arguments to set the font and the fontsize simultaneously. The fontsize is only valid when drawing with TrueType fonts.
$size = $img->fontsize([$newfontsize])
Get or set the current font size. This is only valid for TrueType fonts.
$size = $img->penSize([$newpensize])
Get or set the current pen width for use during line drawing operations.
$angle = $img->angle([$newangle])
Set the current angle for use when calling line() or move() with a single argument.
Here is an example of using turn() and angle() together to draw an octagon. The first line drawn is the downward-slanting top right edge. The last line drawn is the horizontal top of the octagon.
$img->moveTo(200,50);
$img->angle(0);
$img->turn(360/8);
for (1..8) { $img->line(50) }
$angle = $img->turn([$newangle])
Get or set the current angle to turn prior to drawing lines. This value is only used when calling line() or move() with a single argument. The turning angle will be applied to each call to line() or move() just before the actual drawing occurs.
Angles are in degrees. Positive values turn the angle clockwise.
$color = $img->fgcolor([$newcolor])
Get or set the pens foreground color. The current pen color can be set by (1) using an (r,g,b) triple; (2) using a previously-allocated color from the GD palette; or (3) by using a symbolic color name such as "chartreuse." The list of color names can be obtained using color_names().
$color = $img->bgcolor([$newcolor])
Get or set the pens background color. The current pen color can be set by (1) using an (r,g,b) triple; (2) using a previously-allocated color from the GD palette; or (3) by using a symbolic color name such as "chartreuse." The list of color names can be obtained using color_names().
$index = $img->translate_color(@args)
Translates a color into a GD palette or TrueColor index. You may pass either an (r,g,b) triple or a symbolic color name. If you pass a previously-allocated index, the method will return it unchanged.
$index = $img->alphaColor(@args,$alpha)
Creates an alpha color. You may pass either an (r,g,b) triple or a symbolic color name, followed by an integer indicating its opacity. The opacity value ranges from 0 (fully opaque) to 127 (fully transparent).
@names = GD::Simple->color_names
$translate_table = GD::Simple->color_names
Called in a list context, color_names() returns the list of symbolic color names recognized by this module. Called in a scalar context, the method returns a hash reference in which the keys are the color names and the values are array references containing [r,g,b] triples.
$gd = $img->gd
Return the internal GD::Image object. Usually you will not need to call this since all GD methods are automatically referred to this object.
($red,$green,$blue) = GD::Simple->HSVtoRGB($hue,$saturation,$value)
Convert a Hue/Saturation/Value (HSV) color into an RGB triple. The hue, saturation and value are integers from 0 to 255.
($hue,$saturation,$value) = GD::Simple->RGBtoHSV($hue,$saturation,$value)
Convert a Red/Green/Blue (RGB) value into a Hue/Saturation/Value (HSV) triple. The hue, saturation and value are integers from 0 to 255.
COLORS
This script will create an image showing all the symbolic colors.
#!/usr/bin/perl
use strict;
use GD::Simple;
my @color_names = GD::Simple->color_names;
my $cols = int(sqrt(@color_names));
my $rows = int(@color_names/$cols)+1;
my $cell_width = 100;
my $cell_height = 50;
my $legend_height = 16;
my $width = $cols * $cell_width;
my $height = $rows * $cell_height;
my $img = GD::Simple->new($width,$height);
$img->font(gdSmallFont);
for (my $c=0; $cfgcolor($color);
$img->rectangle(@topleft,@botright);
$img->moveTo($topleft[0]+2,$botright[1]+$legend_height-2);
$img->fgcolor(black);
$img->string($color);
}
}
print $img->png;
<<lessSYNOPSIS
use GD::Simple;
# create a new image
$img = GD::Simple->new(400,250);
# draw a red rectangle with blue borders
$img->bgcolor(red);
$img->fgcolor(blue);
$img->rectangle(10,10,50,50);
# draw an empty rectangle with green borders
$img->bgcolor(undef);
$img->fgcolor(green);
$img->rectangle(30,30,100,100);
# move to (80,80) and draw a green line to (100,190)
$img->moveTo(80,80);
$img->lineTo(100,190);
# draw a solid orange ellipse
$img->moveTo(110,100);
$img->bgcolor(orange);
$img->fgcolor(orange);
$img->ellipse(40,40);
# draw a black filled arc
$img->moveTo(150,150);
$img->fgcolor(black);
$img->arc(50,50,0,100,gdNoFill|gdEdged);
# draw a string at (10,180) using the default
# built-in font
$img->moveTo(10,180);
$img->string(This is very simple);
# draw a string at (280,210) using 20 point
# times italic, angled upward 90 degrees
$img->moveTo(280,210);
$img->font(Times:italic);
$img->fontsize(20);
$img->angle(-90);
$img->string(This is very fancy);
# some turtle graphics
$img->moveTo(300,100);
$img->penSize(3,3);
$img->angle(0);
$img->line(20); # 20 pixels going to the right
$img->turn(30); # set turning angle to 30 degrees
$img->line(20); # 20 pixel line
$img->line(20);
$img->line(20);
$img->turn(-90); # set turning angle to -90 degrees
$img->line(50); # 50 pixel line
# draw a cyan polygon edged in blue
my $poly = new GD::Polygon;
$poly->addPt(150,100);
$poly->addPt(199,199);
$poly->addPt(100,199);
$img->bgcolor(cyan);
$img->fgcolor(blue);
$img->penSize(1,1);
$img->polygon($poly);
# convert into png data
print $img->png;
GD::Simple is a subclass of the GD library that shortens many of the long GD method calls by storing information about the pen color, size and position in the GD object itself. It also adds a small number of "turtle graphics" style calls for those who prefer to work in polar coordinates. In addition, the library allows you to use symbolic names for colors, such as "chartreuse", and will manage the colors for you.
The Pen
GD::Simple maintains a "pen" whose settings are used for line- and shape-drawing operations. The pen has the following properties:
fgcolor
The pen foreground color is the color of lines and the borders of filled and unfilled shapes.
bgcolor
The pen background color is the color of the contents of filled shapes.
pensize
The pen size is the width of the pen. Larger sizes draw thicker lines.
position
The pen position is its current position on the canvas in (X,Y) coordinates.
angle
When drawing in turtle mode, the pen angle determines the current direction of lines of relative length.
turn
When drawing in turtle mode, the turn determines the clockwise or counterclockwise angle that the pen will turn before drawing the next line.
font
The font to use when drawing text. Both built-in bitmapped fonts and TrueType fonts are supported.
fontsize
The size of the font to use when drawing with TrueType fonts.
One sets the position and properties of the pen and then draws. As the drawing progresses, the position of the pen is updated.
Methods
GD::Simple introduces a number of new methods, a few of which have the same name as GD::Image methods, and hence change their behavior. In addition to these new methods, GD::Simple objects support all of the GD::Image methods. If you make a method call that isnt directly supported by GD::Simple, it refers the request to the underlying GD::Image object. Hence one can load a JPEG image into GD::Simple and declare it to be TrueColor by using this call, which is effectively inherited from GD::Image:
my $img = GD::Simple->newFromJpeg(./myimage.jpg,1);
The rest of this section describes GD::Simple-specific methods.
$img->moveTo($x,$y)
This call changes the position of the pen without drawing. It moves the pen to position ($x,$y) on the drawing canvas.
$img->move($dx,$dy)
$img->move($dr)
This call changes the position of the pen without drawing. When called with two arguments it moves the pen $dx pixels to the right and $dy pixels downward. When called with one argument it moves the pen $dr pixels along the vector described by the current pen angle.
$img->lineTo($x,$y)
The lineTo() call simultaneously draws and moves the pen. It draws a line from the current pen position to the position defined by ($x,$y) using the current pen size and color. After drawing, the position of the pen is updated to the new position.
$img->line($dx,$dy)
$img->line($dr)
The line() call simultaneously draws and moves the pen. When called with two arguments it draws a line from the current position of the pen to the position $dx pixels to the right and $dy pixels down. When called with one argument, it draws a line $dr pixels long along the angle defined by the current pen angle.
$img->clear
This method clears the canvas by painting over it with the current background color.
$img->rectangle($x1,$y1,$x2,$y2)
This method draws the rectangle defined by corners ($x1,$y1), ($x2,$y2). The rectangles edges are drawn in the foreground color and its contents are filled with the background color. To draw a solid rectangle set bgcolor equal to fgcolor. To draw an unfilled rectangle (transparent inside), set bgcolor to undef.
$img->ellipse($width,$height)
This method draws the ellipse centered at the current location with width $width and height $height. The ellipses border is drawn in the foreground color and its contents are filled with the background color. To draw a solid ellipse set bgcolor equal to fgcolor. To draw an unfilled ellipse (transparent inside), set bgcolor to undef.
$img->arc($cx,$cy,$width,$height,$start,$end [,$style])
This method draws filled and unfilled arcs. See GD for a description of the arguments. To draw a solid arc (such as a pie wedge) set bgcolor equal to fgcolor. To draw an unfilled arc, set bgcolor to undef.
$img->polygon($poly)
This method draws filled and unfilled polygon using the current settings of fgcolor for the polygon border and bgcolor for the polygon fill color. See GD for a description of creating polygons. To draw a solid polygon set bgcolor equal to fgcolor. To draw an unfilled polygon, set bgcolor to undef.
$img->polyline($poly)
This method draws polygons without closing the first and last vertices (similar to GD::Image->unclosedPolygon()). It uses the fgcolor to draw the line.
$img->string($string)
This method draws the indicated string starting at the current position of the pen. The pen is moved to the end of the drawn string. Depending on the font selected with the font() method, this will use either a bitmapped GD font or a TrueType font. The angle of the pen will be consulted when drawing the text. For TrueType fonts, any angle is accepted. For GD bitmapped fonts, the angle can be either 0 (draw horizontal) or -90 (draw upwards).
For consistency between the TrueType and GD font behavior, the string is always drawn so that the current position of the pen corresponds to the bottom left of the first character of the text. This is different from the GD behavior, in which the first character of bitmapped fonts hangs down from the pen point.
This method returns a polygon indicating the bounding box of the rendered text. If an error occurred (such as invalid font specification) it returns undef and an error message in $@.
$metrics = $img->fontMetrics
($metrics,$width,$height) = GD::Simple->fontMetrics($font,$fontsize,$string)
This method returns information about the current font, most commonly a TrueType font. It can be invoked as an instance method (on a previously-created GD::Simple object) or as a class method (on the GD::Simple class).
When called as an instance method, fontMetrics() takes no arguments and returns a single hash reference containing the metrics that describe the currently selected font and size. The hash reference contains the following information:
xheight the base height of the font from the bottom to the top of
a lowercase m
ascent the length of the upper stem of the lowercase d
descent the length of the lower step of the lowercase j
lineheight the distance from the bottom of the j to the top of
the d
leading the distance between two adjacent lines
($delta_x,$delta_y)= $img->stringBounds($string)
This method indicates the X and Y offsets (which may be negative) that will occur when the given string is drawn using the current font, fontsize and angle. When the string is drawn horizontally, it gives the width and height of the strings bounding box.
$delta_x = $img->stringWidth($string)
This method indicates the width of the string given the current font, fontsize and angle. It is the same as ($img->stringBounds($string))[0]
($x,$y) = $img->curPos
Return the current position of the pen. Set the current position using moveTo().
$font = $img->font([$newfont] [,$newsize])
Get or set the current font. Fonts can be GD::Font objects, TrueType font file paths, or fontconfig font patterns like "Times:italic" (see fontconfig). The latter feature requires that you have the fontconfig library installed and are using libgd version 2.0.33 or higher.
As a shortcut, you may pass two arguments to set the font and the fontsize simultaneously. The fontsize is only valid when drawing with TrueType fonts.
$size = $img->fontsize([$newfontsize])
Get or set the current font size. This is only valid for TrueType fonts.
$size = $img->penSize([$newpensize])
Get or set the current pen width for use during line drawing operations.
$angle = $img->angle([$newangle])
Set the current angle for use when calling line() or move() with a single argument.
Here is an example of using turn() and angle() together to draw an octagon. The first line drawn is the downward-slanting top right edge. The last line drawn is the horizontal top of the octagon.
$img->moveTo(200,50);
$img->angle(0);
$img->turn(360/8);
for (1..8) { $img->line(50) }
$angle = $img->turn([$newangle])
Get or set the current angle to turn prior to drawing lines. This value is only used when calling line() or move() with a single argument. The turning angle will be applied to each call to line() or move() just before the actual drawing occurs.
Angles are in degrees. Positive values turn the angle clockwise.
$color = $img->fgcolor([$newcolor])
Get or set the pens foreground color. The current pen color can be set by (1) using an (r,g,b) triple; (2) using a previously-allocated color from the GD palette; or (3) by using a symbolic color name such as "chartreuse." The list of color names can be obtained using color_names().
$color = $img->bgcolor([$newcolor])
Get or set the pens background color. The current pen color can be set by (1) using an (r,g,b) triple; (2) using a previously-allocated color from the GD palette; or (3) by using a symbolic color name such as "chartreuse." The list of color names can be obtained using color_names().
$index = $img->translate_color(@args)
Translates a color into a GD palette or TrueColor index. You may pass either an (r,g,b) triple or a symbolic color name. If you pass a previously-allocated index, the method will return it unchanged.
$index = $img->alphaColor(@args,$alpha)
Creates an alpha color. You may pass either an (r,g,b) triple or a symbolic color name, followed by an integer indicating its opacity. The opacity value ranges from 0 (fully opaque) to 127 (fully transparent).
@names = GD::Simple->color_names
$translate_table = GD::Simple->color_names
Called in a list context, color_names() returns the list of symbolic color names recognized by this module. Called in a scalar context, the method returns a hash reference in which the keys are the color names and the values are array references containing [r,g,b] triples.
$gd = $img->gd
Return the internal GD::Image object. Usually you will not need to call this since all GD methods are automatically referred to this object.
($red,$green,$blue) = GD::Simple->HSVtoRGB($hue,$saturation,$value)
Convert a Hue/Saturation/Value (HSV) color into an RGB triple. The hue, saturation and value are integers from 0 to 255.
($hue,$saturation,$value) = GD::Simple->RGBtoHSV($hue,$saturation,$value)
Convert a Red/Green/Blue (RGB) value into a Hue/Saturation/Value (HSV) triple. The hue, saturation and value are integers from 0 to 255.
COLORS
This script will create an image showing all the symbolic colors.
#!/usr/bin/perl
use strict;
use GD::Simple;
my @color_names = GD::Simple->color_names;
my $cols = int(sqrt(@color_names));
my $rows = int(@color_names/$cols)+1;
my $cell_width = 100;
my $cell_height = 50;
my $legend_height = 16;
my $width = $cols * $cell_width;
my $height = $rows * $cell_height;
my $img = GD::Simple->new($width,$height);
$img->font(gdSmallFont);
for (my $c=0; $cfgcolor($color);
$img->rectangle(@topleft,@botright);
$img->moveTo($topleft[0]+2,$botright[1]+$legend_height-2);
$img->fgcolor(black);
$img->string($color);
}
}
print $img->png;
Download (0.25MB)
Added: 2007-07-23 License: Perl Artistic License Price:
825 downloads
FLAT::Legacy::FA::RE 0.1
FLAT::Legacy::FA::RE is a regular expression base class. more>>
FLAT::Legacy::FA::RE is a regular expression base class.
SYNOPSIS
use FLAT::Legacy::FA::RE;
use FLAT::Legacy::FA::NFA;
my $re = RE->new();
$re->set_re(a|b|(hi)*);
my $nfa = $re->to_nfa();
print $nfa->info(); # see stuff on NFA
my $dfa = $nfa->to_dfa();
print $dfa->info(); # see stuff on DFA
my @removed = $dfa->minimize();
print $dfa->info(); # see stuff on minimized DFA
print "Removed ".($#removed+1)." statesn";
This module implements a regular expression parser, and supports the conversion of a RE to a deterministic finite automata. A homegrown recursive descent parser is used to build the parse tree, and the method used to conver the regular expression to a DFA uses no intermediate NFA.
Recursive Descent-safe Regex Grammar:
R -> O
O -> CO
O -> | CO | epsilon
C -> SC
C -> .SC | epsilon
S -> LS
S -> *S | epsilon
L -> a | b | c |..| 0 | 1 | 2 |..| (R) | epsilon
Terminal symbols: a,b,c,..,z,0,1,2,..,9,|,*,(,)
NOTE: Concatenation operator, ., is not a terminal symbol and should not be included in the regex
FAQ: Q: Does this support Perl regular expressions?
A: No, just the regular expression using the terminal symbols listed above.
<<lessSYNOPSIS
use FLAT::Legacy::FA::RE;
use FLAT::Legacy::FA::NFA;
my $re = RE->new();
$re->set_re(a|b|(hi)*);
my $nfa = $re->to_nfa();
print $nfa->info(); # see stuff on NFA
my $dfa = $nfa->to_dfa();
print $dfa->info(); # see stuff on DFA
my @removed = $dfa->minimize();
print $dfa->info(); # see stuff on minimized DFA
print "Removed ".($#removed+1)." statesn";
This module implements a regular expression parser, and supports the conversion of a RE to a deterministic finite automata. A homegrown recursive descent parser is used to build the parse tree, and the method used to conver the regular expression to a DFA uses no intermediate NFA.
Recursive Descent-safe Regex Grammar:
R -> O
O -> CO
O -> | CO | epsilon
C -> SC
C -> .SC | epsilon
S -> LS
S -> *S | epsilon
L -> a | b | c |..| 0 | 1 | 2 |..| (R) | epsilon
Terminal symbols: a,b,c,..,z,0,1,2,..,9,|,*,(,)
NOTE: Concatenation operator, ., is not a terminal symbol and should not be included in the regex
FAQ: Q: Does this support Perl regular expressions?
A: No, just the regular expression using the terminal symbols listed above.
Download (0.032MB)
Added: 2007-07-25 License: Perl Artistic License Price:
821 downloads
StoCS 1.2
StoCS is a script to control free space on disk and to maintain free space at a configurable level. more>>
StoCS is a service to control freespace on disk, mantain free space in a configurable level.
Works with three thresholds:
WARN: do a configurable action (dialog, message, alarm, ecc)
FDEL: deletion limit
LOWL: dimension to reach after deletion
If define must be LOWL < WARN < FDEL
Threshold unit can be:
Total number of file and/or subdiectory
Total dimension of controlle folder (Byte,Kbyte,Mbyte,ecc)
% of fre space on unit
Max age of files and/or subdirs (in this case LOWL is not used because all that exeeds is deleted)
Can work with a config file or wih command line parameters. Command line parameters overwrites config file values. Does not implements loop. Therefore you must use cron os similar.
Installation example
Copy stocs in /usr/local/bin
Copy stocs.conf in /usr/local/etc
Add to a cron.hourly (or a crontab):
/bin/su user -c "/usr/local/bin/stocs
-c /usr/local/stc/stocs.conf
&> /var/log/stocs.log"
In this case stocs runs every hour, using the configuration in stocs.conf, the output is written to log file /var/log/stocs.log
<<lessWorks with three thresholds:
WARN: do a configurable action (dialog, message, alarm, ecc)
FDEL: deletion limit
LOWL: dimension to reach after deletion
If define must be LOWL < WARN < FDEL
Threshold unit can be:
Total number of file and/or subdiectory
Total dimension of controlle folder (Byte,Kbyte,Mbyte,ecc)
% of fre space on unit
Max age of files and/or subdirs (in this case LOWL is not used because all that exeeds is deleted)
Can work with a config file or wih command line parameters. Command line parameters overwrites config file values. Does not implements loop. Therefore you must use cron os similar.
Installation example
Copy stocs in /usr/local/bin
Copy stocs.conf in /usr/local/etc
Add to a cron.hourly (or a crontab):
/bin/su user -c "/usr/local/bin/stocs
-c /usr/local/stc/stocs.conf
&> /var/log/stocs.log"
In this case stocs runs every hour, using the configuration in stocs.conf, the output is written to log file /var/log/stocs.log
Download (0.010MB)
Added: 2005-11-04 License: GPL (GNU General Public License) Price:
1449 downloads
StrBio 1.0
StrBio is a set of Java classes useful for development of software for computational structural biology research. more>>
StrBio is a set of Java classes and libraries useful for development of software for computational structural biology research.
They are licenced under the LGPL.
he strbio.org classes are the basis for several published research projects, including the Pred2ary secondary structure prediction program and the ASTRAL database of protein domain sequences.
The most interesting structural biology applications included are:
Pred2ary protein secondary structure prediction
JThread protein fold prediction
ConvertProtein for interconversion of protein file formats (FASTA, PDB, MSF, ALN, CASP, DSSP, HSSP, YAPF)
Filters to exchange data with commonly used molecular biology applications (e.g., BLAST, MinArea, MODELLER)
MakeRAF tool to create the Rapid Access Format sequence maps for the ASTRAL database.
Other more general-purpose functionality that is included:
Neural network library, including Scaled Conjugate Gradient or Steepest Descent optimization
Hooke and Jeeves derivative-free global optimization algorithm
Misc mathematical objects and algorithms (vectors, matrices, etc)
Efficient string formatting using Printf-based syntax (printf, atoi, atof, etc.)
<<lessThey are licenced under the LGPL.
he strbio.org classes are the basis for several published research projects, including the Pred2ary secondary structure prediction program and the ASTRAL database of protein domain sequences.
The most interesting structural biology applications included are:
Pred2ary protein secondary structure prediction
JThread protein fold prediction
ConvertProtein for interconversion of protein file formats (FASTA, PDB, MSF, ALN, CASP, DSSP, HSSP, YAPF)
Filters to exchange data with commonly used molecular biology applications (e.g., BLAST, MinArea, MODELLER)
MakeRAF tool to create the Rapid Access Format sequence maps for the ASTRAL database.
Other more general-purpose functionality that is included:
Neural network library, including Scaled Conjugate Gradient or Steepest Descent optimization
Hooke and Jeeves derivative-free global optimization algorithm
Misc mathematical objects and algorithms (vectors, matrices, etc)
Efficient string formatting using Printf-based syntax (printf, atoi, atof, etc.)
Download (12.7MB)
Added: 2005-11-14 License: LGPL (GNU Lesser General Public License) Price:
1440 downloads
funcparserlib 0.3.2
funcparserlib is a recursive descent parser library for Python based on functional combinators. more>> <<less
Added: 2009-07-27 License: MIT/X Consortium Lic... Price: FREE
downloads
Kelbt 0.12
Kelbt generates backtracking LALR parsers. more>>
Kelbt project can generate backtracking LALR parsers. Standard LALR parser generators emit an error upon encountering a conflict in the parse tables. Kelbt forges onward, generating parsers which handle conflicts by backtracking at runtime. Kelbt is able to generate a parser for any context-free grammar and therefore implements a generalized parsing method.
Kelbt is different from other backtracking LR systems in two ways. First, it elevates backtracking to the level of semantic actions by introducing a class of actions called undo actions. Undo actions are invoked as the backtracker undoes parsing and allow the user to revert any side effects of forward semantic actions. This makes it possible to backtrack over language constructs which must modify global state in preparation for handling context dependencies.
Second, Kelbt enables a user-controlled parsing strategy which approximates that of generalized recursive-descent parsing. This makes it easy for the user to resolve language ambiguities by ordering the grammar productions of a nonterminal according to their precedence. It is approximate in the sense that for most grammars the equivalent of an ordered choice parsing strategy is achieved. In cases where productions are parsed out of the order given, there is a simple grammar transformation which remedies the problem. See the CASCON paper for more details.
As a proof of concept, Kelbt has been used to write a partial C++ parser (included) which is composed of strictly a scanner, a name lookup stage and a grammar with standard semantic actions and semantic undo actions.
Enhancements:
- The -l option was added for turning off line directives in generated code.
- The class keyword was added.
- This indicates that a nonterminal or the token type is a C++ class, and should have its constructors and destructors called.
- The shortest statement was added.
- This allows one to force a shortest match of a list of items.
- The semantics of commit was changed.
- It now forces a full commit rather than a scoped commit.
- Many other improvements were made.
<<lessKelbt is different from other backtracking LR systems in two ways. First, it elevates backtracking to the level of semantic actions by introducing a class of actions called undo actions. Undo actions are invoked as the backtracker undoes parsing and allow the user to revert any side effects of forward semantic actions. This makes it possible to backtrack over language constructs which must modify global state in preparation for handling context dependencies.
Second, Kelbt enables a user-controlled parsing strategy which approximates that of generalized recursive-descent parsing. This makes it easy for the user to resolve language ambiguities by ordering the grammar productions of a nonterminal according to their precedence. It is approximate in the sense that for most grammars the equivalent of an ordered choice parsing strategy is achieved. In cases where productions are parsed out of the order given, there is a simple grammar transformation which remedies the problem. See the CASCON paper for more details.
As a proof of concept, Kelbt has been used to write a partial C++ parser (included) which is composed of strictly a scanner, a name lookup stage and a grammar with standard semantic actions and semantic undo actions.
Enhancements:
- The -l option was added for turning off line directives in generated code.
- The class keyword was added.
- This indicates that a nonterminal or the token type is a C++ class, and should have its constructors and destructors called.
- The shortest statement was added.
- This allows one to force a shortest match of a list of items.
- The semantics of commit was changed.
- It now forces a full commit rather than a scoped commit.
- Many other improvements were made.
Download (0.21MB)
Added: 2007-05-02 License: GPL (GNU General Public License) Price:
905 downloads
Common Text Transformation Library 2.08
Common Text Transformation Library is a C++ parser generator library. more>>
Common Text Transformation Library, CTTL for short, is a set of C++ classes and functions to understand and modify text data. Common Text Transformation Library implementation is based on STL classes and algorithms.
Concept of a substring plays major role in design of the text transformation library. CTTL substring is an object that interacts with fragments of text encapsulated by STL std::basic_string template class.
Template classes cttl::const_edge and cttl::edge, designed for constant and mutable data access, respectively, represent CTTL substrings. Substrings may be compared, inserted, deleted, or replaced across multiple text inputs. If content of text mutates, the substrings adjust their positions accordingly to the change. CTTL guarantees that substrings remain stable with respect to a potentially mutable text.
Within CTTL framework, a substring may be parsed with EBNF-like grammar. CTTL lexical analysis engine generates a stream of substrings corresponding to the parsed symbols. BNF and EBNF grammars can be written directly in C++.
Template meta-programming and operator overloading offer features to write C++ expressions that describe grammar rules. No additional steps of parsing, compiling, or generating source code are required. Compiled CTTL program implements LL(INF)-parser, the recursive-descent parser with infinite lookahead.
Enhancements:
- This release focuses on documentation enhancements, which include multiple documentation improvements and revisions.
- An alphabetical index of all CTTL facilities was added: http://cttl.sourceforge.net/documentation_idx.html.
<<lessConcept of a substring plays major role in design of the text transformation library. CTTL substring is an object that interacts with fragments of text encapsulated by STL std::basic_string template class.
Template classes cttl::const_edge and cttl::edge, designed for constant and mutable data access, respectively, represent CTTL substrings. Substrings may be compared, inserted, deleted, or replaced across multiple text inputs. If content of text mutates, the substrings adjust their positions accordingly to the change. CTTL guarantees that substrings remain stable with respect to a potentially mutable text.
Within CTTL framework, a substring may be parsed with EBNF-like grammar. CTTL lexical analysis engine generates a stream of substrings corresponding to the parsed symbols. BNF and EBNF grammars can be written directly in C++.
Template meta-programming and operator overloading offer features to write C++ expressions that describe grammar rules. No additional steps of parsing, compiling, or generating source code are required. Compiled CTTL program implements LL(INF)-parser, the recursive-descent parser with infinite lookahead.
Enhancements:
- This release focuses on documentation enhancements, which include multiple documentation improvements and revisions.
- An alphabetical index of all CTTL facilities was added: http://cttl.sourceforge.net/documentation_idx.html.
Download (0.16MB)
Added: 2006-11-04 License: GPL (GNU General Public License) Price:
1085 downloads
GeeXboX ISO Generator 1.0
GeeXboX ISO Generator is a tool to modify the GeeXboX in a few seconds without having to build the sources. more>>
With this package, it is easy to modify the GeeXboX in a few seconds without having to build the sources.
The generator produces an ISO image of the GeeXboX, ready to be burned on disc.
GeeXboX ISO Generator currently works under both GNU/Linux and Microsoft Windows 9x/NT/2k/XP operating systems.
Enhancements:
System:
- Updated linux to version 2.6.16.17.
- Updated BusyBox to 1.1.3.
- Updated uClibc to 2006.05.05 snapshot.
- Updated udev to version 0.92.
Toolchain:
- Introduced GCC 4.1.1 as the new compiler.
- Support for C++ in the toolchain.
- All packages are now built with big files support flag.
- Added support for non-free binary firmwares at sources build.
Player:
- Updated MPlayer to 1.0pre8.
- DVD Navigation Menus support.
- SHOUTcast and Netstream support (with content filtering on adult/subscription-only
- streams).
- Support for LIVE555 library (RTP/RTSP/SIP streaming) which provides FreeboxTV
- support for French people using the Free ISP.
- Use mp3-lib instead of FFMpeg to avoid audible glitches while seeking.
- Fix MPlayers bug which prevents AVI files with ODML index (99% of XviD files) to
- be read when idx=yes (default).
- Fix sound/subtitles issues while playing MPEG-TS streams.
- Support for multichannel AAC in MOV files.
- Playback of IFO files (DVD disc ripped on HDD for example) now works as expected.
- Set minimal cache size (5% of cache) to start playback of file very quickly.
- Fix TV channel OSD name generation with spaces in their name.
- Allows RTSP clients port forcing (for FreeboxTV users in router mode for example).
- Added support for DVD-RAM MPEG files.
Menu:
- Brand new menu item selection display (now with alpha layer).
- Added new menu that displays streams A/V properties.
- Allows metadata retrieval from MP3/OGG/FLAC audio files.
- Properties menu auto-opens and updates on audio-only media.
- Prevent user from browsing (and getting lost) in /
- Display NICs MAC address into information menu.
- Display CDROM size.
- Fixed display of disks partition size and freespace.
- Added release number information.
Audio:
- Update ALSA library and utilities to version v1.0.11.
- Added a lot of fixes for audio playback.
Video:
- Added support for different resolutions to be used through generator.
- Support for VESA with Intel i865, i910 and i915 chipsets.
Drivers:
- Added support for Serial ATA CDROM drives.
- Added support for ATAPI/IDE ZIP/LS120 drives.
- Added support for PcCard (32bits CardBus only, not 16bits PCMCIA).
- Added LCD displays support through LCD4Linux.
- Added support for most of the Gigabit NICs.
- Fix support of Nova DVB-S+ card.
- Updated LIRC to v0.8.0.
- Updated rt2400/rt2500 drivers to CVS 05.09.2006.
- Fix em8300 driver and firmware loading issues.
Networking:
- Updated djmount to version 0.53 (files are no more represented as playlist).
- Fixed bftpd FTP server write access error.
- Updated bftpd to version 1.4, and included fix for file transfers greater than 2GB.
- Update wireless tools to version 28.
Generator:
- Updated generator tools for MacOS X (support for MacIntel x86 OSX 10.4).
- Allow you to choose between multiple themes.
- Option for DVD Navigation menus to select it as a default or not.
- Option for autoplay to select it as a default or not.
- Option for SHOUTcast (radio and tv netstreams).
- Tab for video settings configuration (resolution, color depth and boot splash)
- Tab for support of LCD displays.
Miscellaneous:
- Fixed zoomed scrolling in FBI image viewer.
- Support for Microsoft Media Center Edition USB, StreamZap, Twinhan DTV, Toshiba
- VT76F and ATI Remote Wonder II remotes.
- Implemented full Digimatrix hardware support (apart from panel buttons).
- Allow multiple resolutions in themes.
- Support for VMware and QEMU (usefull for test purpose).
<<lessThe generator produces an ISO image of the GeeXboX, ready to be burned on disc.
GeeXboX ISO Generator currently works under both GNU/Linux and Microsoft Windows 9x/NT/2k/XP operating systems.
Enhancements:
System:
- Updated linux to version 2.6.16.17.
- Updated BusyBox to 1.1.3.
- Updated uClibc to 2006.05.05 snapshot.
- Updated udev to version 0.92.
Toolchain:
- Introduced GCC 4.1.1 as the new compiler.
- Support for C++ in the toolchain.
- All packages are now built with big files support flag.
- Added support for non-free binary firmwares at sources build.
Player:
- Updated MPlayer to 1.0pre8.
- DVD Navigation Menus support.
- SHOUTcast and Netstream support (with content filtering on adult/subscription-only
- streams).
- Support for LIVE555 library (RTP/RTSP/SIP streaming) which provides FreeboxTV
- support for French people using the Free ISP.
- Use mp3-lib instead of FFMpeg to avoid audible glitches while seeking.
- Fix MPlayers bug which prevents AVI files with ODML index (99% of XviD files) to
- be read when idx=yes (default).
- Fix sound/subtitles issues while playing MPEG-TS streams.
- Support for multichannel AAC in MOV files.
- Playback of IFO files (DVD disc ripped on HDD for example) now works as expected.
- Set minimal cache size (5% of cache) to start playback of file very quickly.
- Fix TV channel OSD name generation with spaces in their name.
- Allows RTSP clients port forcing (for FreeboxTV users in router mode for example).
- Added support for DVD-RAM MPEG files.
Menu:
- Brand new menu item selection display (now with alpha layer).
- Added new menu that displays streams A/V properties.
- Allows metadata retrieval from MP3/OGG/FLAC audio files.
- Properties menu auto-opens and updates on audio-only media.
- Prevent user from browsing (and getting lost) in /
- Display NICs MAC address into information menu.
- Display CDROM size.
- Fixed display of disks partition size and freespace.
- Added release number information.
Audio:
- Update ALSA library and utilities to version v1.0.11.
- Added a lot of fixes for audio playback.
Video:
- Added support for different resolutions to be used through generator.
- Support for VESA with Intel i865, i910 and i915 chipsets.
Drivers:
- Added support for Serial ATA CDROM drives.
- Added support for ATAPI/IDE ZIP/LS120 drives.
- Added support for PcCard (32bits CardBus only, not 16bits PCMCIA).
- Added LCD displays support through LCD4Linux.
- Added support for most of the Gigabit NICs.
- Fix support of Nova DVB-S+ card.
- Updated LIRC to v0.8.0.
- Updated rt2400/rt2500 drivers to CVS 05.09.2006.
- Fix em8300 driver and firmware loading issues.
Networking:
- Updated djmount to version 0.53 (files are no more represented as playlist).
- Fixed bftpd FTP server write access error.
- Updated bftpd to version 1.4, and included fix for file transfers greater than 2GB.
- Update wireless tools to version 28.
Generator:
- Updated generator tools for MacOS X (support for MacIntel x86 OSX 10.4).
- Allow you to choose between multiple themes.
- Option for DVD Navigation menus to select it as a default or not.
- Option for autoplay to select it as a default or not.
- Option for SHOUTcast (radio and tv netstreams).
- Tab for video settings configuration (resolution, color depth and boot splash)
- Tab for support of LCD displays.
Miscellaneous:
- Fixed zoomed scrolling in FBI image viewer.
- Support for Microsoft Media Center Edition USB, StreamZap, Twinhan DTV, Toshiba
- VT76F and ATI Remote Wonder II remotes.
- Implemented full Digimatrix hardware support (apart from panel buttons).
- Allow multiple resolutions in themes.
- Support for VMware and QEMU (usefull for test purpose).
Download (8.3MB)
Added: 2006-08-19 License: GPL (GNU General Public License) Price:
1175 downloads
Spirit Parser library 1.8.2
Spirit Parser library is an object-oriented, recursive descent parser generator framework. more>>
Spirit is an object oriented recursive descent parser generator framework implemented using template meta-programming techniques. Expression templates allow us to approximate the syntax of Extended Backus Normal Form[1] (EBNF) completely in C++.
Parser objects are composed through operator overloading and the result is a backtracking LL(inf) parser that is capable of parsing rather ambiguous grammars.
The Spirit framework enables a target grammar to be written exclusively in C++. Inline EBNF grammar specifications can mix freely with other C++ code and, thanks to the generative power of C++ templates, are immediately executable. In retrospect, conventional compiler-compilers or parser-generators have to perform an additional translation step from the source EBNF code to C or C++ code.
Spirit is part of Boost Libraries, a peer-reviewed, open collaborative development effort.
Enhancements:
- Fixed bug where a match is a variant.
- added Jamfile/Jamrules from CVS to spirit-1.8.1/
- added boost-build.jam from boost to spirit-1.8.1/
- disabled template multi-threading in libs/spirit/test/Jamfile
- added a boost-header-include rule (from spirit-header-include) pointing to miniboost in libs/spirit/test/Jamfile
- Fixed if_p inconsistency
<<lessParser objects are composed through operator overloading and the result is a backtracking LL(inf) parser that is capable of parsing rather ambiguous grammars.
The Spirit framework enables a target grammar to be written exclusively in C++. Inline EBNF grammar specifications can mix freely with other C++ code and, thanks to the generative power of C++ templates, are immediately executable. In retrospect, conventional compiler-compilers or parser-generators have to perform an additional translation step from the source EBNF code to C or C++ code.
Spirit is part of Boost Libraries, a peer-reviewed, open collaborative development effort.
Enhancements:
- Fixed bug where a match is a variant.
- added Jamfile/Jamrules from CVS to spirit-1.8.1/
- added boost-build.jam from boost to spirit-1.8.1/
- disabled template multi-threading in libs/spirit/test/Jamfile
- added a boost-header-include rule (from spirit-header-include) pointing to miniboost in libs/spirit/test/Jamfile
- Fixed if_p inconsistency
Download (2.27MB)
Added: 2005-04-22 License: zlib/libpng License Price:
1647 downloads
Secleted [ 0 ] software to compare
- Page: 1 of 2
- 1
- 2
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above descent freespace search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed