00001 /* 00002 /-------------------------------------------------------------------- 00003 | 00004 | $Id: plmemsrc.cpp,v 1.1 2004/05/21 21:02:52 maxx Exp $ 00005 | Memory Data Source Class 00006 | 00007 | This is a class which takes a memory region as a source of 00008 | picture data. 00009 | Original author: Patrick Strömstedt. 00010 | 00011 | Copyright (c) 1996-1998 Ulrich von Zadow 00012 | 00013 \-------------------------------------------------------------------- 00014 */ 00015 00016 #include "plstdpch.h" 00017 00018 #include "plmemsrc.h" 00019 #include "plexcept.h" 00020 00021 00022 PLMemSource::PLMemSource() 00023 : PLDataSource (NULL), // No progress notification nessesary when 00024 // reading from memory. 00025 m_pCurPos(NULL) 00026 { 00027 } 00028 00029 PLMemSource::~PLMemSource 00030 () 00031 { 00032 if (m_pCurPos) 00033 Close(); 00034 } 00035 00036 int PLMemSource::Open (unsigned char *pek, int size) 00037 { 00038 PLDataSource::Open ("Mem", size); 00039 m_pCurPos = pek; 00040 return 0; 00041 } 00042 00043 void PLMemSource::Close 00044 () 00045 { 00046 m_pCurPos = NULL; 00047 PLDataSource::Close(); 00048 } 00049 00050 00051 PLBYTE * PLMemSource::ReadNBytes 00052 ( int n 00053 ) 00054 { 00055 PLDataSource::ReadNBytes(n); 00056 00057 m_pCurPos += n; 00058 return m_pCurPos-n; 00059 } 00060 00061 00062 PLBYTE * PLMemSource::ReadEverything 00063 () 00064 { 00065 return m_pCurPos; // ;-) 00066 } 00067 00068 // Read but don't advance file pointer. 00069 PLBYTE * PLMemSource::GetBufferPtr 00070 ( int MinBytesInBuffer 00071 ) 00072 { 00073 return m_pCurPos; 00074 } 00075 00076 /* 00077 /-------------------------------------------------------------------- 00078 | 00079 | $Log: plmemsrc.cpp,v $ 00080 | Revision 1.1 2004/05/21 21:02:52 maxx 00081 | Initial Version of vuVolume, moderatly changed to make it compile on my windows and linux machine. 00082 | 00083 | Revision 1.1 2002/11/13 01:58:21 mspindle 00084 | *** empty log message *** 00085 | 00086 | Revision 1.3 2001/10/16 17:12:26 uzadow 00087 | Added support for resolution information (Luca Piergentili) 00088 | 00089 | Revision 1.2 2001/10/06 22:37:08 uzadow 00090 | Linux compatibility. 00091 | 00092 | Revision 1.1 2001/09/16 19:03:22 uzadow 00093 | Added global name prefix PL, changed most filenames. 00094 | 00095 | Revision 1.2 2001/02/04 14:31:52 uzadow 00096 | Member initialization list cleanup (Erik Hoffmann). 00097 | 00098 | Revision 1.1 2000/03/17 10:51:38 Ulrich von Zadow 00099 | no message 00100 | 00101 | 00102 \-------------------------------------------------------------------- 00103 */