ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/CV/CV.xs
(Generate patch)

Comparing CV/CV.xs (file contents):
Revision 1.38 by root, Thu Jun 22 22:06:00 2006 UTC vs.
Revision 1.40 by root, Sat Nov 25 15:00:51 2006 UTC

243 RETVAL = magic_file (cookie, path); 243 RETVAL = magic_file (cookie, path);
244} 244}
245 OUTPUT: 245 OUTPUT:
246 RETVAL 246 RETVAL
247 247
248# missing in Gtk2 perl module 248# missing/broken in Gtk2 perl module
249
250void
251gdk_window_clear_hints (GdkWindow *window)
252 CODE:
253 gdk_window_set_geometry_hints (window, 0, 0);
249 254
250gboolean 255gboolean
251gdk_net_wm_supports (GdkAtom property) 256gdk_net_wm_supports (GdkAtom property)
252 CODE: 257 CODE:
253#if defined(GDK_WINDOWING_X11) && !defined(GDK_MULTIHEAD_SAFE) 258#if defined(GDK_WINDOWING_X11) && !defined(GDK_MULTIHEAD_SAFE)
648{ 653{
649 int i; 654 int i;
650 AV *av, *result; 655 AV *av, *result;
651 656
652 if (!SvROK (ar) || SvTYPE (SvRV (ar)) != SVt_PVAV) 657 if (!SvROK (ar) || SvTYPE (SvRV (ar)) != SVt_PVAV)
653 croak ("Not an array ref as first argument to make_histogram"); 658 croak ("Not an array ref as first argument to extract_features");
654 659
655 av = (AV *) SvRV (ar); 660 av = (AV *) SvRV (ar);
656 result = newAV (); 661 result = newAV ();
657 662
658 for (i = 0; i <= av_len (av); ++i) 663 for (i = 0; i <= av_len (av); ++i)
721 RETVAL = newRV_noinc ((SV *)result); 726 RETVAL = newRV_noinc ((SV *)result);
722} 727}
723 OUTPUT: 728 OUTPUT:
724 RETVAL 729 RETVAL
725 730
726SV *
727make_histograms (SV *ar)
728 CODE:
729{
730 int i;
731 AV *av, *result;
732
733 if (!SvROK (ar) || SvTYPE (SvRV (ar)) != SVt_PVAV)
734 croak ("Not an array ref as first argument to make_histogram");
735
736 av = (AV *) SvRV (ar);
737 result = newAV ();
738
739 for (i = 0; i <= av_len (av); ++i)
740 {
741 const int HISTSIZE = 64;
742
743 int j;
744 SV *sv = *av_fetch (av, i, 1);
745 STRLEN len;
746 char *buf = SvPVbyte (sv, len);
747
748 int tmphist[HISTSIZE];
749 float *hist;
750
751 SV *histsv = newSV (HISTSIZE * sizeof (float) + 1);
752 SvPOK_on (histsv);
753 SvCUR_set (histsv, HISTSIZE * sizeof (float));
754 hist = (float *)SvPVX (histsv);
755
756 Zero (tmphist, sizeof (tmphist), char);
757
758 for (j = len; j--; )
759 {
760 unsigned int idx
761 = ((*buf & 0xc0) >> 2)
762 | ((*buf & 0x18) >> 1)
763 | (*buf & 0x03);
764
765 ++tmphist[idx];
766 ++buf;
767 }
768
769 for (j = 0; j < HISTSIZE; ++j)
770 hist[j] = (float)tmphist[j] / (len + 1e-30);
771
772 av_push (result, histsv);
773 }
774
775 RETVAL = newRV_noinc ((SV *)result);
776}
777 OUTPUT:
778 RETVAL
779
780

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines