diff settings.c @ 44:c50cb59dbb19 src

Add dvd menu language selection api. from Michael Roitzsch <mroi@users.sourceforge.net>
author jcdutton
date Sat, 15 Jun 2002 02:10:18 +0000
parents 3c1df0cb3aee
children e74cba5129a6
line wrap: on
line diff
--- a/settings.c	Thu Jun 06 15:03:09 2002 +0000
+++ b/settings.c	Sat Jun 15 02:10:18 2002 +0000
@@ -87,3 +87,34 @@
   return S_OK;
 }
 
+static dvdnav_status_t set_language_register(dvdnav_t *this, char *code, int reg) {
+  if(!this)
+    return S_ERR;
+    
+  if(!code[0] || !code[1]) {
+    printerr("Passed illegal language code");
+    return S_ERR;
+  }
+  
+  if(!this->vm) {
+    printerr("VM not yet initialised");
+    return S_ERR;
+  }
+  
+  pthread_mutex_lock(&this->vm_lock);
+  this->vm->state.registers.SPRM[reg] = (code[0] << 8) | code[1];
+  pthread_mutex_unlock(&this->vm_lock);
+  return S_OK;
+}
+
+dvdnav_status_t dvdnav_menu_language_select(dvdnav_t *this, char *code) {
+  return set_language_register(this, code, 0);
+}
+
+dvdnav_status_t dvdnav_audio_language_select(dvdnav_t *this, char *code) {
+  return set_language_register(this, code, 16);
+}
+
+dvdnav_status_t dvdnav_spu_language_select(dvdnav_t *this, char *code) {
+  return set_language_register(this, code, 18);
+}