diff --git a/DSFML/import/dsfml/audio/soundrecorder.d b/DSFML/import/dsfml/audio/soundrecorder.d index fa0e4161..c329574f 100644 --- a/DSFML/import/dsfml/audio/soundrecorder.d +++ b/DSFML/import/dsfml/audio/soundrecorder.d @@ -30,12 +30,12 @@ import dsfml.audio.soundbuffer; import dsfml.system.alloc; import dsfml.system.common; -import dsfml.system.sleep; + import dsfml.system.linkedlist; -import dsfml.system.mutex; import dsfml.system.lock; -//import dsfml.system.thread; + import core.thread; +import core.sync.mutex; /** * SoundRecorder is an interface for capturing sound data. @@ -252,7 +252,7 @@ private: { while (m_flag) { - sleep(0.05f); + Thread.sleep(50_000_0); // 50ms // if samples are available if (!m_list.empty) { diff --git a/DSFML/import/dsfml/audio/soundstream.d b/DSFML/import/dsfml/audio/soundstream.d index 73b29b68..f7c7dd54 100644 --- a/DSFML/import/dsfml/audio/soundstream.d +++ b/DSFML/import/dsfml/audio/soundstream.d @@ -31,10 +31,9 @@ import dsfml.system.common; import dsfml.system.vector3; import dsfml.system.linkedlist; import dsfml.system.lock; -import dsfml.system.mutex; -import dsfml.system.sleep; -//import dsfml.system.thread; + import core.thread; +import core.sync.mutex; import dsfml.audio.sound; import dsfml.audio.soundsource; @@ -251,7 +250,7 @@ private: SoundStream temp = s_instances[id]; //if no samples are available but streaming is not stopped, we sleep the thread while (temp.m_samples.empty && temp.m_flag) - sleep(0.01f); + Thread.sleep(10_000_0); // 10ms scope Lock l = new Lock(temp.m_mutex); if (!temp.m_samples.empty) @@ -294,7 +293,7 @@ private: m_samples.enqueue(new Data(data, ret)); } } - sleep(0.1f); + Thread.sleep(100_000_0); // 100ms } } diff --git a/DSFML/import/dsfml/system/all.d b/DSFML/import/dsfml/system/all.d index c92a0845..6668bbaa 100644 --- a/DSFML/import/dsfml/system/all.d +++ b/DSFML/import/dsfml/system/all.d @@ -36,11 +36,6 @@ version (linux) public import - dsfml.system.clock, dsfml.system.lock, - dsfml.system.mutex, - dsfml.system.randomizer, - dsfml.system.sleep, -// dsfml.system.thread, // thread isn't used anywhere in the library and D threading is nice, so the user can safely use standard threads dsfml.system.vector2, dsfml.system.vector3; diff --git a/DSFML/import/dsfml/system/clock.d b/DSFML/import/dsfml/system/clock.d deleted file mode 100644 index 87476990..00000000 --- a/DSFML/import/dsfml/system/clock.d +++ /dev/null @@ -1,101 +0,0 @@ -/* -* DSFML - SFML Library wrapper for the D programming language. -* Copyright (C) 2008 Julien Dagorn (sirjulio13@gmail.com) -* Copyright (C) 2010 Andreas Hollandt -* -* This software is provided 'as-is', without any express or -* implied warranty. In no event will the authors be held -* liable for any damages arising from the use of this software. -* -* Permission is granted to anyone to use this software for any purpose, -* including commercial applications, and to alter it and redistribute -* it freely, subject to the following restrictions: -* -* 1. The origin of this software must not be misrepresented; -* you must not claim that you wrote the original software. -* If you use this software in a product, an acknowledgment -* in the product documentation would be appreciated but -* is not required. -* -* 2. Altered source versions must be plainly marked as such, -* and must not be misrepresented as being the original software. -* -* 3. This notice may not be removed or altered from any -* source distribution. -*/ - -module dsfml.system.clock; - -import dsfml.system.common; - -/** - * Utility class for manipulating time - */ -class Clock : DSFMLObject -{ - /** - * Default constructor - */ - this() - { - super(sfClock_Create()); - } - - /** - * Destructor - */ - override void dispose() - { - sfClock_Destroy(m_ptr); - } - - /** - * Return the time elapsed since the last reset - * Returns: - * Elapsed Time in seconds - */ - float getElapsedTime() - { - return sfClock_GetTime(m_ptr); - } - - /** - * Restart the timer - */ - void reset() - { - sfClock_Reset(m_ptr); - } - -private: - -// External ==================================================================== - - - extern (C) - { - typedef void* function() pf_sfClock_Create; - typedef void function(void*) pf_sfClock_Destroy; - typedef float function(void*) pf_sfClock_GetTime; - typedef void function(void*) pf_sfClock_Reset; - - static pf_sfClock_Create sfClock_Create; - static pf_sfClock_Destroy sfClock_Destroy; - static pf_sfClock_GetTime sfClock_GetTime; - static pf_sfClock_Reset sfClock_Reset; - - static this() - { - debug - DllLoader dll = DllLoader.load("csfml-system-d"); - else - DllLoader dll = DllLoader.load("csfml-system"); - - sfClock_Create = cast(pf_sfClock_Create)dll.getSymbol("sfClock_Create"); - sfClock_Destroy = cast(pf_sfClock_Destroy)dll.getSymbol("sfClock_Destroy"); - sfClock_GetTime = cast(pf_sfClock_GetTime)dll.getSymbol("sfClock_GetTime"); - sfClock_Reset = cast(pf_sfClock_Reset)dll.getSymbol("sfClock_Reset"); - } - } -} - diff --git a/DSFML/import/dsfml/system/lock.d b/DSFML/import/dsfml/system/lock.d index 034911d4..6c1e96f5 100644 --- a/DSFML/import/dsfml/system/lock.d +++ b/DSFML/import/dsfml/system/lock.d @@ -26,7 +26,7 @@ module dsfml.system.lock; -import dsfml.system.mutex; +import core.sync.mutex; /** * Encapsulation of an critical section. Unlocking is guaranteed when the Lock goes out of scope, even on exception. diff --git a/DSFML/import/dsfml/system/mutex.d b/DSFML/import/dsfml/system/mutex.d deleted file mode 100644 index 1171e206..00000000 --- a/DSFML/import/dsfml/system/mutex.d +++ /dev/null @@ -1,98 +0,0 @@ -/* -* DSFML - SFML Library wrapper for the D programming language. -* Copyright (C) 2008 Julien Dagorn (sirjulio13@gmail.com) -* Copyright (C) 2010 Andreas Hollandt -* -* This software is provided 'as-is', without any express or -* implied warranty. In no event will the authors be held -* liable for any damages arising from the use of this software. -* -* Permission is granted to anyone to use this software for any purpose, -* including commercial applications, and to alter it and redistribute -* it freely, subject to the following restrictions: -* -* 1. The origin of this software must not be misrepresented; -* you must not claim that you wrote the original software. -* If you use this software in a product, an acknowledgment -* in the product documentation would be appreciated but -* is not required. -* -* 2. Altered source versions must be plainly marked as such, -* and must not be misrepresented as being the original software. -* -* 3. This notice may not be removed or altered from any -* source distribution. -*/ - -module dsfml.system.mutex; - -import dsfml.system.common; - -/** -* Provide portable implementation of Mutual Exclusion object. -* -* Uses CriticalSection on Windows and pthread mutexes on linux. -*/ -final class Mutex : DSFMLObject -{ - /** - * Constructor - */ - this() - { - super(sfMutex_Create()); - } - - override void dispose() - { - sfMutex_Destroy(m_ptr); - } - - /** - * Lock the mutex - * - * Can be called multiples times, but each lock must be unlocked with unlock() - */ - void lock() - { - sfMutex_Lock(m_ptr); - } - - /** - * Unlock the mutex - */ - void unlock() - { - sfMutex_Unlock(m_ptr); - } - -private: - -// External ==================================================================== - - extern (C) - { - typedef void* function() pf_sfMutex_Create; - typedef void function(void*) pf_sfMutex_Destroy; - typedef void function(void*) pf_sfMutex_Lock; - typedef void function(void*) pf_sfMutex_Unlock; - - static pf_sfMutex_Create sfMutex_Create; - static pf_sfMutex_Destroy sfMutex_Destroy; - static pf_sfMutex_Lock sfMutex_Lock; - static pf_sfMutex_Unlock sfMutex_Unlock; - } - - static this() - { - debug - DllLoader dll = DllLoader.load("csfml-system-d"); - else - DllLoader dll = DllLoader.load("csfml-system"); - - sfMutex_Create = cast(pf_sfMutex_Create)dll.getSymbol("sfMutex_Create"); - sfMutex_Destroy = cast(pf_sfMutex_Destroy)dll.getSymbol("sfMutex_Destroy"); - sfMutex_Lock = cast(pf_sfMutex_Lock)dll.getSymbol("sfMutex_Lock"); - sfMutex_Unlock = cast(pf_sfMutex_Unlock)dll.getSymbol("sfMutex_Unlock"); - } -} diff --git a/DSFML/import/dsfml/system/randomizer.d b/DSFML/import/dsfml/system/randomizer.d deleted file mode 100644 index 09c663ce..00000000 --- a/DSFML/import/dsfml/system/randomizer.d +++ /dev/null @@ -1,134 +0,0 @@ -/* -* DSFML - SFML Library wrapper for the D programming language. -* Copyright (C) 2008 Julien Dagorn (sirjulio13@gmail.com) -* Copyright (C) 2010 Andreas Hollandt -* -* This software is provided 'as-is', without any express or -* implied warranty. In no event will the authors be held -* liable for any damages arising from the use of this software. -* -* Permission is granted to anyone to use this software for any purpose, -* including commercial applications, and to alter it and redistribute -* it freely, subject to the following restrictions: -* -* 1. The origin of this software must not be misrepresented; -* you must not claim that you wrote the original software. -* If you use this software in a product, an acknowledgment -* in the product documentation would be appreciated but -* is not required. -* -* 2. Altered source versions must be plainly marked as such, -* and must not be misrepresented as being the original software. -* -* 3. This notice may not be removed or altered from any -* source distribution. -*/ - -module dsfml.system.randomizer; - -import dsfml.system.common; - -/** -* Randomizer is an utility class for generating pseudo-random -* numbers -* -* Examples: -* ----------------------------------------------------------- -* int randI = Randomizer.Random(1, 100); -* float randF = Randomizer.Random(1.0, 10.0) -* ----------------------------------------------------------- -*/ -class Randomizer -{ - /** - * Set the seed for the generator. Using a known seed - * allows you to reproduce the same sequence of random number - * - * Params: - * seed = Number to use as the seed - * - */ - static void setSeed(uint seed) - { - sfRandom_SetSeed(seed); - } - - /** - * Get the seed used to generate random numbers the generator. - * - * Returns: - * Current seed - */ - static uint getSeed() - { - return sfRandom_GetSeed(); - } - - /** - * Get a random float number in a given range - * - * Params: - * begin = Start of the range - * end = End of the range - * Returns: - * Random number in [Begin, End] - */ - static float random(float begin, float end) - { - return sfRandom_Float(begin, end); - } - - /** - * Get a random integral number in a given range - * - * Params: - * begin = Start of the range - * end = End of the range - * Returns: - * Random number in [Begin, End] - */ - static int random(int begin, int end) - { - return sfRandom_Int(begin, end); - } - - -private: - - /* - * Prevent instanciation - */ - this() - { - - } - -// External ==================================================================== - - extern (C) - { - typedef void function(uint) pf_sfRandom_SetSeed; - typedef uint function() pf_sfRandom_GetSeed; - typedef float function(float, float) pf_sfRandom_Float; - typedef int function(int, int) pf_sfRandom_Int; - - static pf_sfRandom_SetSeed sfRandom_SetSeed; - static pf_sfRandom_GetSeed sfRandom_GetSeed; - static pf_sfRandom_Float sfRandom_Float; - static pf_sfRandom_Int sfRandom_Int; - } - - static this() - { - debug - DllLoader dll = DllLoader.load("csfml-system-d"); - else - DllLoader dll = DllLoader.load("csfml-system"); - - sfRandom_SetSeed = cast(pf_sfRandom_SetSeed)dll.getSymbol("sfRandom_SetSeed"); - sfRandom_GetSeed = cast(pf_sfRandom_GetSeed)dll.getSymbol("sfRandom_GetSeed"); - sfRandom_Float = cast(pf_sfRandom_Float)dll.getSymbol("sfRandom_Float"); - sfRandom_Int = cast(pf_sfRandom_Int)dll.getSymbol("sfRandom_Int"); - } -} - diff --git a/DSFML/import/dsfml/system/sleep.d b/DSFML/import/dsfml/system/sleep.d deleted file mode 100644 index b72881b2..00000000 --- a/DSFML/import/dsfml/system/sleep.d +++ /dev/null @@ -1,58 +0,0 @@ -/* -* DSFML - SFML Library wrapper for the D programming language. -* Copyright (C) 2008 Julien Dagorn (sirjulio13@gmail.com) -* Copyright (C) 2010 Andreas Hollandt -* -* This software is provided 'as-is', without any express or -* implied warranty. In no event will the authors be held -* liable for any damages arising from the use of this software. -* -* Permission is granted to anyone to use this software for any purpose, -* including commercial applications, and to alter it and redistribute -* it freely, subject to the following restrictions: -* -* 1. The origin of this software must not be misrepresented; -* you must not claim that you wrote the original software. -* If you use this software in a product, an acknowledgment -* in the product documentation would be appreciated but -* is not required. -* -* 2. Altered source versions must be plainly marked as such, -* and must not be misrepresented as being the original software. -* -* 3. This notice may not be removed or altered from any -* source distribution. -*/ - -module dsfml.system.sleep; - -import dsfml.system.common; - -extern(C) -{ - typedef void function(float) pf_sfSleep; - - private static const __gshared pf_sfSleep sfSleep; -} - -static this() -{ - debug - DllLoader dll = DllLoader.load("csfml-system-d"); - else - DllLoader dll = DllLoader.load("csfml-system"); - - - sfSleep = cast(pf_sfSleep)dll.getSymbol("sfSleep"); -} - -/** -* Make the current thread sleep for a given time -* -* Params: -* duration = Time to sleep, in seconds -*/ -void sleep(float duration) -{ - sfSleep(duration); -}