aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/include/sfx_time.h
diff options
context:
space:
mode:
authorJordi Vilalta Prat2009-02-15 06:10:59 +0000
committerJordi Vilalta Prat2009-02-15 06:10:59 +0000
commitfa6e10e9cec163845aa29e7940c86e9c9ab8a2bc (patch)
treece87338830cc8c149e1de545246bcefe4f45da00 /engines/sci/include/sfx_time.h
parent7c148ddf021c990fa866b7600f979aac9a5b26c9 (diff)
downloadscummvm-rg350-fa6e10e9cec163845aa29e7940c86e9c9ab8a2bc.tar.gz
scummvm-rg350-fa6e10e9cec163845aa29e7940c86e9c9ab8a2bc.tar.bz2
scummvm-rg350-fa6e10e9cec163845aa29e7940c86e9c9ab8a2bc.zip
Import the SCI engine sources from the FreeSCI Glutton branch (it doesn't compile yet)
svn-id: r38192
Diffstat (limited to 'engines/sci/include/sfx_time.h')
-rw-r--r--engines/sci/include/sfx_time.h93
1 files changed, 93 insertions, 0 deletions
diff --git a/engines/sci/include/sfx_time.h b/engines/sci/include/sfx_time.h
new file mode 100644
index 0000000000..a7b65eae20
--- /dev/null
+++ b/engines/sci/include/sfx_time.h
@@ -0,0 +1,93 @@
+/***************************************************************************
+ sfx_time.h Copyright (C) 2003,04 Christoph Reichenbach
+
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public Licence as
+ published by the Free Software Foundaton; either version 2 of the
+ Licence, or (at your option) any later version.
+
+ It is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ merchantibility or fitness for a particular purpose. See the
+ GNU General Public Licence for more details.
+
+ You should have received a copy of the GNU General Public Licence
+ along with this program; see the file COPYING. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+
+
+ Please contact the maintainer for any program-related bug reports or
+ inquiries.
+
+ Current Maintainer:
+
+ Christoph Reichenbach (CR) <jameson@linuxgames.com>
+
+***************************************************************************/
+
+#ifndef _SFX_TIME_H_
+#define _SFX_TIME_H_
+
+typedef struct {
+ long secs;
+ long usecs;
+ int frame_rate;
+ int frame_offset;
+ /* Total time: secs + usecs + frame_offset/frame_rate */
+} sfx_timestamp_t;
+
+
+sfx_timestamp_t
+sfx_new_timestamp(long secs, long usecs, int frame_rate);
+/* Creates a new mutable timestamp
+** Parameters: (long x long) (secs, usecs): Initial timestamp
+** (int) frame_rate: Frame rate, for increasing the time stamp
+*/
+
+sfx_timestamp_t
+sfx_timestamp_add(sfx_timestamp_t timestamp, int frames);
+/* Adds a number of frames to a timestamp
+** Parameters: (sfx_timestampt_t *) timestamp: The timestamp to update
+** (int) frames: Number of frames to add
+** Returns : (sfx_timestamp_t) The increased timestamp
+*/
+
+sfx_timestamp_t
+sfx_timestamp_renormalise(sfx_timestamp_t timestamp, int new_freq);
+/* Translates a timestamp to a new base frame frequency
+** Parameters: (sfx_timestamp_t *) timestamp: The timestamp to normalise
+** (int) new_freq: The new frequency to normalise to
+** Returns : (sfx_timestamp_t) The re-normalised timestamp
+** The translation looses accuracy in the order of magnitude of milliseconds
+** for "usual" sampling frequencies.
+*/
+
+int
+sfx_timestamp_frame_diff(sfx_timestamp_t a, sfx_timestamp_t b);
+/* Computes the difference (# of frames) between two timestamps
+** Parameters: (sfx_timestamp) a: See below
+** (sfx_timestamp) b: See below
+** Returns : (int) a-b
+*/
+
+long
+sfx_timestamp_usecs_diff(sfx_timestamp_t a, sfx_timestamp_t b);
+/* Computes the difference (# of microseconds) between two timestamps
+** Parameters: (sfx_timestamp) a: See below
+** (sfx_timestamp) b: See below
+** Returns : (long) a-b
+*/
+
+void
+sfx_timestamp_gettime(sfx_timestamp_t *timestamp, long *secs, long *usecs);
+/* Determines the time described by a given timestamp
+** Parameters: (sfx_timestamp_t *) timestamp: Timestamp to read from
+** Returns : (int * x int *) (secs, usecs): Seconds and microseconds since
+** the epoch described there
+*/
+
+
+
+#endif /* !defined(_SFX_TIME_H_) */