OSDN Git Service

[General] Convert sourcecode's CRLF format: DOS(WINDOWS) to Unix, to apply patches...
[csp-qt/common_source_project-fm7.git] / source / src / fifo.cpp
index 9394c0d..5caee4e 100644 (file)
-/*\r
-       Skelton for retropc emulator\r
-\r
-       Author : Takeda.Toshiya\r
-       Date   : 2014.12.19-\r
-\r
-       [ fifo buffer ]\r
-*/\r
-\r
-#include <stdlib.h>\r
-#include <malloc.h> \r
-#include "fifo.h"\r
-#include "fileio.h"\r
-\r
-FIFO::FIFO(int s)\r
-{\r
-       size = s;\r
-       buf = (int*)malloc(size * sizeof(int));\r
-       cnt = rpt = wpt = 0;\r
-}\r
-void FIFO::release()\r
-{\r
-       free(buf);\r
-}\r
-void FIFO::clear()\r
-{\r
-       cnt = rpt = wpt = 0;\r
-}\r
-void FIFO::write(int val)\r
-{\r
-       if(cnt < size) {\r
-               buf[wpt++] = val;\r
-               if(wpt >= size) {\r
-                       wpt = 0;\r
-               }\r
-               cnt++;\r
-       }\r
-}\r
-int FIFO::read()\r
-{\r
-       int val = 0;\r
-       if(cnt) {\r
-               val = buf[rpt++];\r
-               if(rpt >= size) {\r
-                       rpt = 0;\r
-               }\r
-               cnt--;\r
-       }\r
-       return val;\r
-}\r
-int FIFO::read_not_remove(int pt)\r
-{\r
-       if(pt >= 0 && pt < cnt) {\r
-               pt += rpt;\r
-               if(pt >= size) {\r
-                       pt -= size;\r
-               }\r
-               return buf[pt];\r
-       }\r
-       return 0;\r
-}\r
-int FIFO::count()\r
-{\r
-       return cnt;\r
-}\r
-bool FIFO::full()\r
-{\r
-       return (cnt == size);\r
-}\r
-bool FIFO::empty()\r
-{\r
-       return (cnt == 0);\r
-}\r
-\r
-#define STATE_VERSION  1\r
-\r
-void FIFO::save_state(void *f)\r
-{\r
-       FILEIO *state_fio = (FILEIO *)f;\r
-       \r
-       state_fio->FputUint32(STATE_VERSION);\r
-       \r
-       state_fio->FputInt32(size);\r
-       state_fio->Fwrite(buf, size * sizeof(int), 1);\r
-       state_fio->FputInt32(cnt);\r
-       state_fio->FputInt32(rpt);\r
-       state_fio->FputInt32(wpt);\r
-}\r
-\r
-bool FIFO::load_state(void *f)\r
-{\r
-       FILEIO *state_fio = (FILEIO *)f;\r
-       \r
-       if(state_fio->FgetUint32() != STATE_VERSION) {\r
-               return false;\r
-       }\r
-       if(state_fio->FgetInt32() != size) {\r
-               return false;\r
-       }\r
-       state_fio->Fread(buf, size * sizeof(int), 1);\r
-       cnt = state_fio->FgetInt32();\r
-       rpt = state_fio->FgetInt32();\r
-       wpt = state_fio->FgetInt32();\r
-       return true;\r
-}\r
-\r
+/*
+       Skelton for retropc emulator
+
+       Author : Takeda.Toshiya
+       Date   : 2014.12.19-
+
+       [ fifo buffer ]
+*/
+
+#include <stdlib.h>
+#include <malloc.h> 
+#include "fifo.h"
+#include "fileio.h"
+
+FIFO::FIFO(int s)
+{
+       size = s;
+       buf = (int*)malloc(size * sizeof(int));
+       cnt = rpt = wpt = 0;
+}
+void FIFO::release()
+{
+       free(buf);
+}
+void FIFO::clear()
+{
+       cnt = rpt = wpt = 0;
+}
+void FIFO::write(int val)
+{
+       if(cnt < size) {
+               buf[wpt++] = val;
+               if(wpt >= size) {
+                       wpt = 0;
+               }
+               cnt++;
+       }
+}
+int FIFO::read()
+{
+       int val = 0;
+       if(cnt) {
+               val = buf[rpt++];
+               if(rpt >= size) {
+                       rpt = 0;
+               }
+               cnt--;
+       }
+       return val;
+}
+int FIFO::read_not_remove(int pt)
+{
+       if(pt >= 0 && pt < cnt) {
+               pt += rpt;
+               if(pt >= size) {
+                       pt -= size;
+               }
+               return buf[pt];
+       }
+       return 0;
+}
+int FIFO::count()
+{
+       return cnt;
+}
+bool FIFO::full()
+{
+       return (cnt == size);
+}
+bool FIFO::empty()
+{
+       return (cnt == 0);
+}
+
+#define STATE_VERSION  1
+
+void FIFO::save_state(void *f)
+{
+       FILEIO *state_fio = (FILEIO *)f;
+       
+       state_fio->FputUint32(STATE_VERSION);
+       
+       state_fio->FputInt32(size);
+       state_fio->Fwrite(buf, size * sizeof(int), 1);
+       state_fio->FputInt32(cnt);
+       state_fio->FputInt32(rpt);
+       state_fio->FputInt32(wpt);
+}
+
+bool FIFO::load_state(void *f)
+{
+       FILEIO *state_fio = (FILEIO *)f;
+       
+       if(state_fio->FgetUint32() != STATE_VERSION) {
+               return false;
+       }
+       if(state_fio->FgetInt32() != size) {
+               return false;
+       }
+       state_fio->Fread(buf, size * sizeof(int), 1);
+       cnt = state_fio->FgetInt32();
+       rpt = state_fio->FgetInt32();
+       wpt = state_fio->FgetInt32();
+       return true;
+}
+