From 4d26da545d8df85917b06cd603ffa6e92fd431e5 Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Sat, 20 Dec 2008 01:20:40 +0000 Subject: * ReCommit the OpenID patch with a few less dependencies. * Removes all references to ASP.NET (System.Web.UI,*) * Removes all references to System.Web.Mobile --- OpenSim/Framework/OpenJpeg/bio.cs | 138 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 OpenSim/Framework/OpenJpeg/bio.cs (limited to 'OpenSim/Framework/OpenJpeg/bio.cs') diff --git a/OpenSim/Framework/OpenJpeg/bio.cs b/OpenSim/Framework/OpenJpeg/bio.cs new file mode 100644 index 0000000..4f095ad --- /dev/null +++ b/OpenSim/Framework/OpenJpeg/bio.cs @@ -0,0 +1,138 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace OpenSim.Framework.OpenJpeg +{ + public static class bio + { + + public static opj_bio bio_create() + { + opj_bio bio = new opj_bio(); + return bio; + } + + public static void bio_destroy(opj_bio bio) + { + // not needed on C# + } + + public static int bio_numbytes(opj_bio bio) + { + return (bio.bp - bio.start); + } + + public static void bio_init_enc(opj_bio bio, sbyte bp, int len) + { + bio.start = (byte)bp; + bio.end = (byte)(bp + (byte)len); + bio.bp = (byte)bp; + bio.buf = 0; + bio.ct = 8; + } + + public static void bio_init_dec(opj_bio bio, sbyte bp, int len) + { + bio.start = (byte)bp; + bio.end = (byte)(bp + len); + bio.bp = (byte)bp; + bio.buf = 0; + bio.ct = 0; + } + + public static void bio_write(opj_bio bio, int v, int n) + { + for (int i = n - 1; i >= 0; i--) + bio_putbit(bio, (v >> i) & 1); + } + + public static int bio_read(opj_bio bio, int n) + { + int v = 0; + for (int i = n - 1; i >= 0; i--) + v += bio_getbit(bio) << i; + + return v; + } + + public static int bio_flush(opj_bio bio) + { + bio.ct = 0; + if (bio_byteout(bio) != 0) + return 1; + + if (bio.ct == 7) + { + bio.ct = 0; + if (bio_byteout(bio) != 0) + return 1; + } + return 0; + } + + public static int bio_inalign(opj_bio bio) + { + bio.ct = 0; + if ((bio.buf & 0xff) == 0xff) + { + if (bio_bytein(bio) != 0) + return 1; + bio.ct = 0; + } + return 0; + } + + private static int bio_bytein(opj_bio bio) + { + bio.buf = (bio.buf << 8) & 0xffff; + bio.ct = bio.buf == 0xff00 ? 7 : 8; + if (bio.bp >= bio.end) + return 1; + bio.buf |= bio.bp++; + + return 0; + } + + private static int bio_byteout(opj_bio bio) + { + bio.buf = (bio.buf << 8) & 0xffff; + bio.ct = bio.buf == 0xff00 ? 7 : 8; + if (bio.bp >= bio.end) + return 1; + + bio.bp = (byte)(bio.buf >> 8); + bio.bp++; + return 0; + } + + private static void bio_putbit(opj_bio bio, int b) + { + if (bio.ct == 0) + bio_byteout(bio); + + bio.ct--; + bio.buf |= (byte)(b << bio.ct); + + } + + private static int bio_getbit(opj_bio bio) + { + if (bio.ct == 0) + bio_bytein(bio); + bio.ct--; + + return (int)((bio.buf >> bio.ct) & 1); + } + + } + + public struct opj_bio + { + public byte start; + public byte end; + public byte bp; + public uint buf; + public int ct; + } +} -- cgit v1.1