summaryrefslogtreecommitdiff
path: root/src/xine-engine/xine_interface.c
diff options
context:
space:
mode:
authorGuenter Bartsch <guenter@users.sourceforge.net>2002-09-14 19:04:07 +0000
committerGuenter Bartsch <guenter@users.sourceforge.net>2002-09-14 19:04:07 +0000
commit9093c3bda6e027e05cf0d26e58247bec8c848f2e (patch)
tree8ca790f78eee29f0c98c3f836b0b0a207bee5a43 /src/xine-engine/xine_interface.c
parent393381ca2c252dc5675a45fb88e1ac60dad68713 (diff)
downloadxine-lib-9093c3bda6e027e05cf0d26e58247bec8c848f2e.tar.gz
xine-lib-9093c3bda6e027e05cf0d26e58247bec8c848f2e.tar.bz2
latest xine_config api changes as proposed by james
CVS patchset: 2664 CVS date: 2002/09/14 19:04:07
Diffstat (limited to 'src/xine-engine/xine_interface.c')
-rw-r--r--src/xine-engine/xine_interface.c66
1 files changed, 34 insertions, 32 deletions
diff --git a/src/xine-engine/xine_interface.c b/src/xine-engine/xine_interface.c
index 0b2532141..d1e68099c 100644
--- a/src/xine-engine/xine_interface.c
+++ b/src/xine-engine/xine_interface.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: xine_interface.c,v 1.11 2002/09/13 18:25:23 guenter Exp $
+ * $Id: xine_interface.c,v 1.12 2002/09/14 19:04:08 guenter Exp $
*
* convenience/abstraction layer, functions to implement
* libxine's public interface
@@ -159,49 +159,50 @@ int xine_config_register_bool (xine_p self,
/*
* helper function:
*
- * copy current config entry data to public struct
- * and return it
+ * copy current config entry data to user-provided memory
+ * and return status
*/
-xine_cfg_entry_t *xine_config_get_current_entry (xine_p this) {
+static int xine_config_get_current_entry (xine_p this,
+ xine_cfg_entry_t *entry) {
config_values_t *config = this->config;
if (!config->cur)
- return NULL;
-
- config->public_entry.key = config->cur->key;
- config->public_entry.type = config->cur->type;
-
- config->public_entry.unknown_value = config->cur->unknown_value;
- config->public_entry.str_value = config->cur->str_value;
- config->public_entry.str_default = config->cur->str_default;
- config->public_entry.str_sticky = config->cur->str_sticky;
- config->public_entry.num_value = config->cur->num_value;
- config->public_entry.num_default = config->cur->num_default;
- config->public_entry.range_min = config->cur->range_min;
- config->public_entry.range_max = config->cur->range_max;
- config->public_entry.enum_values = config->cur->enum_values;
-
- config->public_entry.description = config->cur->description;
- config->public_entry.help = config->cur->help;
- config->public_entry.callback = config->cur->callback;
- config->public_entry.callback_data = config->cur->callback_data;
- config->public_entry.exp_level = config->cur->exp_level;
-
- return &config->public_entry;
+ return 0;
+
+ entry->key = config->cur->key;
+ entry->type = config->cur->type;
+
+ entry->unknown_value = config->cur->unknown_value;
+ entry->str_value = config->cur->str_value;
+ entry->str_default = config->cur->str_default;
+ entry->str_sticky = config->cur->str_sticky;
+ entry->num_value = config->cur->num_value;
+ entry->num_default = config->cur->num_default;
+ entry->range_min = config->cur->range_min;
+ entry->range_max = config->cur->range_max;
+ entry->enum_values = config->cur->enum_values;
+
+ entry->description = config->cur->description;
+ entry->help = config->cur->help;
+ entry->callback = config->cur->callback;
+ entry->callback_data = config->cur->callback_data;
+ entry->exp_level = config->cur->exp_level;
+
+ return 1;
}
/*
* get first config item
*/
-xine_cfg_entry_t *xine_config_get_first_entry (xine_p this) {
+int xine_config_get_first_entry (xine_p this, xine_cfg_entry_t *entry) {
config_values_t *config = this->config;
config->cur = config->first;
- return xine_config_get_current_entry (this);
+ return xine_config_get_current_entry (this, entry);
}
@@ -209,13 +210,13 @@ xine_cfg_entry_t *xine_config_get_first_entry (xine_p this) {
* get next config item (iterate through the items)
* this will return NULL when called after returning the last item
*/
-xine_cfg_entry_t *xine_config_get_next_entry (xine_p this) {
+int xine_config_get_next_entry (xine_p this, xine_cfg_entry_t *entry) {
config_values_t *config = this->config;
config->cur = config->cur->next;
- return xine_config_get_current_entry (this);
+ return xine_config_get_current_entry (this, entry);
}
@@ -223,13 +224,14 @@ xine_cfg_entry_t *xine_config_get_next_entry (xine_p this) {
* search for a config entry by key
*/
-xine_cfg_entry_t *xine_config_lookup_entry (xine_p this, const char *key) {
+int xine_config_lookup_entry (xine_p this, const char *key,
+ xine_cfg_entry_t *entry) {
config_values_t *config = this->config;
config->cur = config->lookup_entry (config, key);
- return xine_config_get_current_entry (this);
+ return xine_config_get_current_entry (this, entry);
}