ソースを参照

Skeleton for sample entity and sampler manager classes.

legacy
Sam Hocevar sam 14年前
コミット
290c8f40d7
8個のファイルの変更211行の追加0行の削除
  1. +1
    -0
      src/Makefile.am
  2. +2
    -0
      src/core.h
  3. +63
    -0
      src/sample.cpp
  4. +46
    -0
      src/sample.h
  5. +59
    -0
      src/sampler.cpp
  6. +32
    -0
      src/sampler.h
  7. +4
    -0
      win32/deushax.vcxproj
  8. +4
    -0
      win32/monsterz.vcxproj

+ 1
- 0
src/Makefile.am ファイルの表示

@@ -7,6 +7,7 @@ liblol_a_SOURCES = \
entity.cpp entity.h ticker.cpp ticker.h tileset.cpp tileset.h \
forge.cpp forge.h video.cpp video.h timer.cpp timer.h bitfield.h \
profiler.cpp profiler.h input.h input.cpp world.cpp world.h \
sample.cpp sample.h sampler.cpp sampler.h \
\
sdlinput.cpp sdlinput.h \
\


+ 2
- 0
src/core.h ファイルの表示

@@ -30,6 +30,7 @@
#include "entity.h"
#include "font.h"
#include "tileset.h"
#include "sample.h"
#include "world.h"

// Other objects
@@ -41,6 +42,7 @@
#include "ticker.h"
#include "forge.h"
#include "tiler.h"
#include "sampler.h"

#endif // __DH_CORE_H__


+ 63
- 0
src/sample.cpp ファイルの表示

@@ -0,0 +1,63 @@
//
// Lol Engine
//
// Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net>
// This program is free software; you can redistribute it and/or
// modify it under the terms of the Do What The Fuck You Want To
// Public License, Version 2, as published by Sam Hocevar. See
// http://sam.zoy.org/projects/COPYING.WTFPL for more details.
//

#if defined HAVE_CONFIG_H
# include "config.h"
#endif

#include <cstdlib>
#include <cmath>

#include <SDL.h>

#include "core.h"

/*
* Sample implementation class
*/

class SampleData
{
friend class Sample;

private:
char *name;
};

/*
* Public Sample class
*/

Sample::Sample(char const *path)
{
data = new SampleData();
data->name = strdup(path);
}

Sample::~Sample()
{
free(data->name);
delete data;
}

void Sample::TickGame(float deltams)
{
Entity::TickGame(deltams);
}

char const *Sample::GetName()
{
return data->name;
}

void Sample::Play()
{
}


+ 46
- 0
src/sample.h ファイルの表示

@@ -0,0 +1,46 @@
//
// Lol Engine
//
// Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net>
// This program is free software; you can redistribute it and/or
// modify it under the terms of the Do What The Fuck You Want To
// Public License, Version 2, as published by Sam Hocevar. See
// http://sam.zoy.org/projects/COPYING.WTFPL for more details.
//

//
// The Sample class
// ----------------
// A Sample is a unique sound sample.
//

#if !defined __DH_SAMPLE_H__
#define __DH_SAMPLE_H__

#include <stdint.h>

#include "entity.h"

class SampleData;

class Sample : public Entity
{
public:
Sample(char const *path);
virtual ~Sample();

protected:
/* Inherited from Entity */
virtual char const *GetName();
virtual void TickGame(float deltams);

public:
/* New methods */
void Play();

private:
SampleData *data;
};

#endif // __DH_SAMPLE_H__


+ 59
- 0
src/sampler.cpp ファイルの表示

@@ -0,0 +1,59 @@
//
// Lol Engine
//
// Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net>
// This program is free software; you can redistribute it and/or
// modify it under the terms of the Do What The Fuck You Want To
// Public License, Version 2, as published by Sam Hocevar. See
// http://sam.zoy.org/projects/COPYING.WTFPL for more details.
//

#if defined HAVE_CONFIG_H
# include "config.h"
#endif

#include "core.h"

/*
* Sampler implementation class
*/

static class SamplerData
{
friend class Sampler;

public:
Dict samples;
}
samplerdata;

static SamplerData * const data = &samplerdata;

/*
* Public Sampler class
*/

int Sampler::Register(char const *path)
{
int id = data->samples.MakeSlot(path);

if (!data->samples.GetEntity(id))
{
Sample *sample = new Sample(path);
data->samples.SetEntity(id, sample);
}

return id + 1; /* ID 0 is for the empty sample */
}

void Sampler::Deregister(int id)
{
data->samples.RemoveSlot(id - 1); /* ID 0 is for the empty sample */
}

void Sampler::PlaySample(int id)
{
Sample *sample = (Sample *)data->samples.GetEntity(id);
sample->Play();
}


+ 32
- 0
src/sampler.h ファイルの表示

@@ -0,0 +1,32 @@
//
// Lol Engine
//
// Copyright: (c) 2010-2011 Sam Hocevar <sam@hocevar.net>
// This program is free software; you can redistribute it and/or
// modify it under the terms of the Do What The Fuck You Want To
// Public License, Version 2, as published by Sam Hocevar. See
// http://sam.zoy.org/projects/COPYING.WTFPL for more details.
//

//
// The Sampler class
// -----------------
// The Sampler is a static class that manages samples.
//

#if !defined __DH_SAMPLER_H__
#define __DH_SAMPLER_H__

#include <stdint.h>

class Sampler
{
public:
static int Register(char const *path);
static void Deregister(int id);

static void PlaySample(int id);
};

#endif // __DH_SAMPLER_H__


+ 4
- 0
win32/deushax.vcxproj ファイルの表示

@@ -28,6 +28,8 @@
<ClInclude Include="..\src\map.h" />
<ClInclude Include="..\src\matrix.h" />
<ClInclude Include="..\src\profiler.h" />
<ClInclude Include="..\src\sample.h" />
<ClInclude Include="..\src\sampler.h" />
<ClInclude Include="..\src\scene.h" />
<ClInclude Include="..\src\sdlinput.h" />
<ClInclude Include="..\src\ticker.h" />
@@ -53,6 +55,8 @@
<ClCompile Include="..\src\layer.cpp" />
<ClCompile Include="..\src\map.cpp" />
<ClCompile Include="..\src\profiler.cpp" />
<ClCompile Include="..\src\sample.cpp" />
<ClCompile Include="..\src\sampler.cpp" />
<ClCompile Include="..\src\scene.cpp" />
<ClCompile Include="..\src\sdlinput.cpp" />
<ClCompile Include="..\src\ticker.cpp" />


+ 4
- 0
win32/monsterz.vcxproj ファイルの表示

@@ -29,6 +29,8 @@
<ClInclude Include="..\src\map.h" />
<ClInclude Include="..\src\matrix.h" />
<ClInclude Include="..\src\profiler.h" />
<ClInclude Include="..\src\sample.h" />
<ClInclude Include="..\src\sampler.h" />
<ClInclude Include="..\src\scene.h" />
<ClInclude Include="..\src\sdlinput.h" />
<ClInclude Include="..\src\ticker.h" />
@@ -55,6 +57,8 @@
<ClCompile Include="..\src\layer.cpp" />
<ClCompile Include="..\src\map.cpp" />
<ClCompile Include="..\src\profiler.cpp" />
<ClInclude Include="..\src\sample.cpp" />
<ClInclude Include="..\src\sampler.cpp" />
<ClCompile Include="..\src\scene.cpp" />
<ClCompile Include="..\src\sdlinput.cpp" />
<ClCompile Include="..\src\ticker.cpp" />


読み込み中…
キャンセル
保存