diff gui/ui/gtk/menu.c @ 34387:0ba85cad4c7e

Add audio CD playback support to the X11/GTK GUI. (The Win32 GUI already had this support. Add missing - although already used - user event evPlayCD here as well as internal event ivSetCDTrack - although it's unused - for consistency.)
author ib
date Sat, 31 Dec 2011 12:38:52 +0000
parents e8e4e6f9b7ac
children a56707da37cd
line wrap: on
line diff
--- a/gui/ui/gtk/menu.c	Sat Dec 31 12:20:08 2011 +0000
+++ b/gui/ui/gtk/menu.c	Sat Dec 31 12:38:52 2011 +0000
@@ -66,6 +66,10 @@
 #include "gui/ui/pixmaps/empty.xpm"
 #include "gui/ui/pixmaps/loadeaf.xpm"
 #include "gui/ui/pixmaps/title.xpm"
+#ifdef CONFIG_CDDA
+#include "gui/ui/pixmaps/cd.xpm"
+#include "gui/ui/pixmaps/playcd.xpm"
+#endif
 #ifdef CONFIG_VCD
 #include "gui/ui/pixmaps/vcd.xpm"
 #include "gui/ui/pixmaps/playvcd.xpm"
@@ -404,6 +408,8 @@
 GtkWidget * AspectMenu;
 GtkWidget * VCDSubMenu;
 GtkWidget * VCDTitleMenu;
+GtkWidget * CDSubMenu;
+GtkWidget * CDTitleMenu;
 
 GtkWidget * create_PopUpMenu( void )
 {
@@ -425,6 +431,9 @@
   AddSeparator( Menu );
    SubMenu=AddSubMenu( window1, (const char*)open_xpm, Menu,MSGTR_MENU_Open );
     AddMenuItem( window1, (const char*)file2_xpm, SubMenu,MSGTR_MENU_PlayFile"    ", evLoadPlay );
+#ifdef CONFIG_CDDA
+    AddMenuItem( window1, (const char*)playcd_xpm, SubMenu,MSGTR_MENU_PlayCD, evPlayCD );
+#endif
 #ifdef CONFIG_VCD
     AddMenuItem( window1, (const char*)playvcd_xpm, SubMenu,MSGTR_MENU_PlayVCD, evPlayVCD );
 #endif
@@ -450,6 +459,27 @@
 //    AddMenuItem( SubMenu,MSGTR_MENU_NormalSize"      ", evNormalSize );
 //    AddMenuItem( SubMenu,MSGTR_MENU_DoubleSize, evDoubleSize );
 //    AddMenuItem( SubMenu,MSGTR_MENU_FullScreen, evFullScreen );
+#ifdef CONFIG_CDDA
+   CDSubMenu=AddSubMenu( window1, (const char*)cd_xpm, Menu,MSGTR_MENU_CD );
+    AddMenuItem( window1, (const char*)playcd_xpm, CDSubMenu,MSGTR_MENU_PlayDisc,evPlayCD );
+    AddSeparator( CDSubMenu );
+    CDTitleMenu=AddSubMenu( window1, (const char*)title_xpm, CDSubMenu,MSGTR_MENU_Titles );
+    if ( guiInfo.Tracks )
+     {
+      char tmp[32]; int i;
+      for ( i=1;i <= guiInfo.Tracks;i++ )
+       {
+        snprintf( tmp,32,MSGTR_MENU_Title,i );
+    //AddMenuItem( CDTitleMenu,tmp,( i << 16 ) + ivSetCDTrack );
+        AddMenuItem(window1, (const char*)empty_xpm, CDTitleMenu,tmp,( i << 16 ) + ivSetCDTrack );
+       }
+     }
+     else
+      {
+       MenuItem=AddMenuItem( window1, (const char*)empty_xpm, CDTitleMenu,MSGTR_MENU_None,evNone );
+       gtk_widget_set_sensitive( MenuItem,FALSE );
+      }
+#endif
 #ifdef CONFIG_VCD
    VCDSubMenu=AddSubMenu( window1, (const char*)vcd_xpm, Menu,MSGTR_MENU_VCD );
     AddMenuItem( window1, (const char*)playvcd_xpm, VCDSubMenu,MSGTR_MENU_PlayDisc,evPlayVCD );