Files
Webcam/include/framework/data/registry.h
2026-06-22 11:49:35 +02:00

66 lines
1.5 KiB
C++

/* -----------------------------------------------------------------------------
GSFramework
Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */
#ifndef __NREGISTRY__
#define __NREGISTRY__
#include "metafile/nml.h"
#include "messaging/messaging.h"
namespace GS {
enum RegistryMessage
{
RegistryMsg_None = 0, ///< No message.
RegistryMsg_StartKeyChangeBatch,
RegistryMsg_KeyChange,
RegistryMsg_EndKeyChangeBatch
};
enum RegistryRValue
{
RegistryReturn_Ok = 0
};
//
struct RegistryKeyChange
{
String key;
RegistryKeyChange(const char *k) { key = String(k).TrimChar(';'); }
};
struct Registry;
/// Registry listener.
struct RegistryListener
{
virtual RegistryRValue ProcessMessage(RegistryMessage message, const Registry *from, const void *parm) = 0;
virtual ~RegistryListener() {}
};
/*
@short Registry.
@author Emmanuel Julien (ejulien@gsworks.fr)
*/
struct Registry : public Messaging::Broadcaster <RegistryMessage, RegistryListener, Registry *>, public NML::File
{
NML::Tag *CreateKey(const char *path, const Variant *value = 0, bool recursive = true);
NML::Tag *CreateKey(const char *path, const Variant &value, bool recursive = true);
bool DeleteKey(const char *path);
/// Get the float value of a given key.
float GetReal(const char *path, float default_value = 0) const;
/// Get the boolean value of a given key.
bool GetBool(const char *path, bool default_value = false) const;
};
} // GS
#endif // __NREGISTRY__