Author: duncan
Date: Wed Jan 10 19:11:44 2007
New Revision: 8960

Added:
   branches/rel-1/freevo/contrib/freevused/midlet/res/entry.png   (contents, 
props changed)
Modified:
   branches/rel-1/freevo/contrib/freevused/midlet/midlet/freevused.jad
   branches/rel-1/freevo/contrib/freevused/midlet/midlet/freevused.jar
   branches/rel-1/freevo/contrib/freevused/midlet/src/BrowseForm.java
   branches/rel-1/freevo/contrib/freevused/midlet/src/Browser.java
   branches/rel-1/freevo/contrib/freevused/midlet/src/ControlForm.java
   branches/rel-1/freevo/contrib/freevused/midlet/src/Controller.java
   branches/rel-1/freevo/contrib/freevused/midlet/src/MoreActionsForm.java
   branches/rel-1/freevo/contrib/freevused/midlet/src/NumericForm.java
   branches/rel-1/freevo/contrib/freevused/midlet/src/TextForm.java
   
branches/rel-1/freevo/contrib/freevused/midlet/src/bemused/BemusedProtocol.java
   branches/rel-1/freevo/contrib/freevused/midlet/src/bemused/Command.java
   branches/rel-1/freevo/src/event.py
   branches/rel-1/freevo/src/menu.py
   branches/rel-1/freevo/src/plugins/freevused.py

Log:
[ 1631746 ] New version of Freevused 1.4
Patch from Gorka Olaizola applied


Modified: branches/rel-1/freevo/contrib/freevused/midlet/midlet/freevused.jad
==============================================================================
--- branches/rel-1/freevo/contrib/freevused/midlet/midlet/freevused.jad 
(original)
+++ branches/rel-1/freevo/contrib/freevused/midlet/midlet/freevused.jad Wed Jan 
10 19:11:44 2007
@@ -10,4 +10,4 @@
 MIDlet-1: Freevused, icon.png, Main
 Nokia-MIDlet-Category: Application
 MIDlet-Jar-URL: freevused.jar
-MIDlet-Jar-Size: 68335
+MIDlet-Jar-Size: 69869

Modified: branches/rel-1/freevo/contrib/freevused/midlet/midlet/freevused.jar
==============================================================================
Binary files. No diff available.

Added: branches/rel-1/freevo/contrib/freevused/midlet/res/entry.png
==============================================================================
Binary file. No diff available.

Modified: branches/rel-1/freevo/contrib/freevused/midlet/src/BrowseForm.java
==============================================================================
--- branches/rel-1/freevo/contrib/freevused/midlet/src/BrowseForm.java  
(original)
+++ branches/rel-1/freevo/contrib/freevused/midlet/src/BrowseForm.java  Wed Jan 
10 19:11:44 2007
@@ -19,37 +19,47 @@
 public class BrowseForm extends List implements CommandListener  {
 
        Controller controller;
-       Command menuSelectCommand;
-       Command menuSubmenuCommand;
-       Command menuMainCommand;
+
+       Command moreCommand;
+       Command numericCommand;
+       Command textCommand;
+       Command mainCommand;
+
+       Command submenuCommand;
+       Command refreshCommand;
        Command menuBackCommand;
-       Command menuQuitCommand;
+
        Image folderImage;
        Image fileImage;
        
        public BrowseForm(Controller controller) {
-               super("Browser", List.IMPLICIT);
+               super("Menu", List.IMPLICIT);
                this.controller = controller;
                setCommandListener(this);
-               
-               menuSelectCommand = new Command("Select", Command.ITEM, 1);
-               addCommand(menuSelectCommand);
-               
-               menuSubmenuCommand = new Command("Submenu", "Submenu", 
Command.ITEM, 2);
-               addCommand(menuSubmenuCommand);
 
-               menuMainCommand = new Command("Mainmenu", "Go to Main", 
Command.ITEM, 3);
-               addCommand(menuMainCommand);
-               
-               menuBackCommand = new Command("Back", Command.BACK, 1);
+               menuBackCommand = new Command("Back Menu", Command.CANCEL, 0);
                addCommand(menuBackCommand);
 
-               menuQuitCommand = new Command("Quit", "Quit Browser", 
Command.SCREEN, 1);
-               addCommand(menuQuitCommand);
+               submenuCommand = new Command("Submenu", "Options submenu", 
Command.SCREEN, 2);
+               addCommand(submenuCommand);
+
+               refreshCommand = new Command("Refresh", "Refresh menu", 
Command.SCREEN, 2);
+               addCommand(refreshCommand);
                
+               mainCommand = new Command("Main", "Main actions", 
Command.SCREEN, 2);
+               addCommand(mainCommand);
+
+               numericCommand = new Command("Numeric", "Numeric keys", 
Command.SCREEN, 2);
+               addCommand(numericCommand);
+               
+               moreCommand = new Command("More", "More actions", 
Command.SCREEN, 2);
+               addCommand(moreCommand);
+
+               textCommand = new Command("Text", "Send Text", Command.SCREEN, 
2);
+               addCommand(textCommand);
                
                try {
-                       folderImage = Image.createImage("/folder.png");
+                       folderImage = Image.createImage("/entry.png");
                        fileImage = Image.createImage("/file.png");
                } catch (IOException e) {
                        // no image found... hm
@@ -58,47 +68,48 @@
        
        void updateDirList(String[] dirs, boolean dirChanged) {
                
-               int n, i, index = 0;
-               
-               for (n=0; n < dirs.length; ++n) {
-                       String name = dirs[n];
-                       if (index < size()) {
-                               set(index, name, folderImage);
-                       }
-                       else {
-                               insert(index, name, folderImage);
-                       }
+               int index = 0;
+
+               index = size();
+               while ( index-- > 0 )
+                   delete(index);
+
+               for (index=0; index < dirs.length; index++) {
+                       String name = dirs[index];
+                       insert(index, name, folderImage);
                        setFont(index, Font.getFont(Font.FACE_SYSTEM, 
Font.STYLE_PLAIN, Font.SIZE_SMALL));
-                       index++;
                }
                
-               // setTitle
-               // setTitle(controller.protocol.fileBrowser.activeDir());
-
-               // if we just changed dir, set selected item to the first again 
        
-               /*
-               if (size() > 0 && dirChanged) {
-                       setSelectedIndex(0, true);
-               }
-               */
        }
        
        public void commandAction(Command cmd, Displayable display) {
                if (cmd == menuBackCommand) {
                        controller.protocol.fileBrowser.menuBack();
                }
-               else if (cmd == menuSelectCommand) {
-                       controller.protocol.fileBrowser.menuSelect();
+               else if (cmd == refreshCommand) {
+                       controller.protocol.fileBrowser.requestMenu();
                }
-               else if (cmd == menuSubmenuCommand) {
+               else if (cmd == submenuCommand) {
                        controller.protocol.fileBrowser.menuSubmenu();
                }
-               else if (cmd == menuMainCommand) {
-                       controller.protocol.fileBrowser.menuMain();
-               }
-               else if (cmd == menuQuitCommand) {
+               else if (cmd == mainCommand) {
                        controller.showController();
                }
+               else if (cmd == numericCommand) {
+                       controller.showNumericForm();
+               }
+               else if (cmd == moreCommand) {
+                       controller.showMoreActions();
+               }
+               else if (cmd == textCommand) {
+                       controller.showTextForm();
+               }
+               else if (cmd == List.SELECT_COMMAND) {
+            String str = Integer.toString(getSelectedIndex(), 10);
+                   controller.protocol.fileBrowser.sendMenuItemSelected(str);
+               }
+
+
        }
 
 }

Modified: branches/rel-1/freevo/contrib/freevused/midlet/src/Browser.java
==============================================================================
--- branches/rel-1/freevo/contrib/freevused/midlet/src/Browser.java     
(original)
+++ branches/rel-1/freevo/contrib/freevused/midlet/src/Browser.java     Wed Jan 
10 19:11:44 2007
@@ -53,8 +53,8 @@
                return files;
        }
        
-       public void readDir() {
-               protocol.readDir(activeDir);
+       public void requestMenu() {
+               protocol.requestMenu();
        }
        
        public int fetchIndex(String jumpTo) {
@@ -127,22 +127,6 @@
        }
 */     
        
-       public void changeDir(String dir) {
-               activeDir = activeDir.equals("") ? dir : activeDir + "\\" + dir;
-               readDir();
-       }
-
-       public void moveDirUp() {
-               int lastSlash = 0, newLastSlash = 0;
-               while (newLastSlash > -1) {
-                       lastSlash = newLastSlash;
-                       newLastSlash = activeDir.indexOf("\\", lastSlash + 1);
-               }
-               activeDir = activeDir.substring(0, lastSlash);
-               if (activeDir.indexOf("\\", 0) == -1) activeDir = "";
-               readDir();
-       }
-       
        private static void quicksort(String[] data) {
                quicksort(data, 0, data.length-1);
        }
@@ -172,12 +156,14 @@
                data[y] = tmp;
        }
 
-       public void menuSelect() {
-               protocol.play();
+       public void sendMenuItemSelected(String idx) {
+               protocol.sendMenuItemSelected( idx );
+               requestMenu();
        }
 
        public void menuSubmenu() {
                protocol.submenu();
+           requestMenu();
        }
 
        public void menuMain() {
@@ -186,6 +172,7 @@
 
        public void menuBack() {
                protocol.stop();
+               requestMenu();
        }
 
 }

Modified: branches/rel-1/freevo/contrib/freevused/midlet/src/ControlForm.java
==============================================================================
--- branches/rel-1/freevo/contrib/freevused/midlet/src/ControlForm.java 
(original)
+++ branches/rel-1/freevo/contrib/freevused/midlet/src/ControlForm.java Wed Jan 
10 19:11:44 2007
@@ -80,11 +80,12 @@
 
                textCommand = new Command("Text", "Send Text", Command.SCREEN, 
2);
                addCommand(textCommand);
-               
-               /*
-               browseCommand = new Command("Browse", "Browse Menu", 
Command.SCREEN, 1);
+
+               browseCommand = new Command("Browse", "Browse Menu", 
Command.SCREEN, 2);
                addCommand(browseCommand); 
 
+               /*
+
                shutdownCommand = new Command("Shutdown", "System shutdown", 
Command.SCREEN, 5);
                addCommand(shutdownCommand);
 
@@ -163,10 +164,10 @@
                else if (cmd == numericCommand) {
                        controller.showNumericForm();
                }
-               /*
                else if (cmd == browseCommand) {
-                       controller.showBrowser();
+                       controller.showBrowseForm();
                }
+               /*
                else if (cmd == playlistCommand) {
                        controller.showPlaylist();
                }

Modified: branches/rel-1/freevo/contrib/freevused/midlet/src/Controller.java
==============================================================================
--- branches/rel-1/freevo/contrib/freevused/midlet/src/Controller.java  
(original)
+++ branches/rel-1/freevo/contrib/freevused/midlet/src/Controller.java  Wed Jan 
10 19:11:44 2007
@@ -73,12 +73,12 @@
                Display.getDisplay(owner).setCurrent(numericForm);
        }
 
-       public void showBrowser() {
+       public void showBrowseForm() {
                showBrowser(true);
        }
 
        public void showBrowser(boolean refresh) {
-               if (refresh) protocol.fileBrowser.readDir();
+               if (refresh) protocol.fileBrowser.requestMenu();
                Display.getDisplay(owner).setCurrent(browseForm);
        }
 
@@ -119,7 +119,7 @@
                        display.setCurrent(searchForm);
                }
                
-               //browseForm.updateDirList(protocol.fileBrowser.dirs(), 
protocol.fileBrowser.dirChanged());
+               browseForm.updateDirList(protocol.fileBrowser.dirs(), 
protocol.fileBrowser.dirChanged());
        }
 
        MusicPlayer getPlayer() {

Modified: 
branches/rel-1/freevo/contrib/freevused/midlet/src/MoreActionsForm.java
==============================================================================
--- branches/rel-1/freevo/contrib/freevused/midlet/src/MoreActionsForm.java     
(original)
+++ branches/rel-1/freevo/contrib/freevused/midlet/src/MoreActionsForm.java     
Wed Jan 10 19:11:44 2007
@@ -35,6 +35,7 @@
        Command textCommand;
        Command mainCommand;
        Command numericCommand;
+       Command browseCommand;
        
        StringItem titleItem;
        StringItem statusItem;
@@ -67,12 +68,15 @@
                mainCommand = new Command("Main", "Main actions", 
Command.CANCEL, 0);
                addCommand(mainCommand);
                
-               numericCommand = new Command("Numeric", "Numeric keys", 
Command.SCREEN, 2);
-               addCommand(numericCommand);
+               browseCommand = new Command("Browse", "Browse Menu", 
Command.SCREEN, 2);
+               addCommand(browseCommand);
 
                textCommand = new Command("Text", "Send Text", Command.SCREEN, 
2);
                addCommand(textCommand);
 
+               numericCommand = new Command("Numeric", "Numeric keys", 
Command.SCREEN, 2);
+               addCommand(numericCommand);
+
        }
        
        public void commandAction(Command cmd, Displayable d) {
@@ -94,6 +98,9 @@
                else if (cmd == numericCommand) {
                        controller.showNumericForm();
                }
+               else if (cmd == browseCommand) {
+                       controller.showBrowseForm();
+               }
        }
 
        public void commandAction(Command cmd, Item item) {

Modified: branches/rel-1/freevo/contrib/freevused/midlet/src/NumericForm.java
==============================================================================
--- branches/rel-1/freevo/contrib/freevused/midlet/src/NumericForm.java 
(original)
+++ branches/rel-1/freevo/contrib/freevused/midlet/src/NumericForm.java Wed Jan 
10 19:11:44 2007
@@ -35,6 +35,7 @@
        Command textCommand;
        Command mainCommand;
        Command moreCommand;
+       Command browseCommand;
        
        StringItem titleItem;
        StringItem statusItem;
@@ -70,9 +71,13 @@
                moreCommand = new Command("More", "More actions", 
Command.SCREEN, 2);
                addCommand(moreCommand);
 
+               browseCommand = new Command("Browse", "Browse Menu", 
Command.SCREEN, 2);
+               addCommand(browseCommand);
+
                textCommand = new Command("Text", "Send Text", Command.SCREEN, 
2);
                addCommand(textCommand);
 
+
        }
        
        public void commandAction(Command cmd, Displayable d) {
@@ -94,6 +99,9 @@
                else if (cmd == textCommand) {
                        controller.showTextForm();
                }
+               else if (cmd == browseCommand) {
+                       controller.showBrowseForm();
+               }
        }
 
        public void commandAction(Command cmd, Item item) {

Modified: branches/rel-1/freevo/contrib/freevused/midlet/src/TextForm.java
==============================================================================
--- branches/rel-1/freevo/contrib/freevused/midlet/src/TextForm.java    
(original)
+++ branches/rel-1/freevo/contrib/freevused/midlet/src/TextForm.java    Wed Jan 
10 19:11:44 2007
@@ -26,6 +26,7 @@
        Command sendCommand;
        Command moreCommand;
        Command numericCommand;
+       Command browseCommand;
 
        TextBox textBox;
 
@@ -37,11 +38,14 @@
                sendCommand = new Command("Send", "Send text to Freevo", 
Command.SCREEN, 0);
                addCommand(sendCommand);
 
+               numericCommand = new Command("Numeric", "Numeric keys", 
Command.SCREEN, 2);
+               addCommand(numericCommand);
+
                moreCommand = new Command("More", "More actions", 
Command.SCREEN, 2);
                addCommand(moreCommand);
 
-               numericCommand = new Command("Numeric", "Numeric keys", 
Command.SCREEN, 2);
-               addCommand(numericCommand);
+               browseCommand = new Command("Browse", "Browse Menu", 
Command.SCREEN, 2);
+               addCommand(browseCommand);
                
                mainCommand = new Command("Main", "Main actions", 
Command.CANCEL, 0);
                addCommand(mainCommand);
@@ -65,6 +69,9 @@
                else if (cmd == numericCommand) {
                        controller.showNumericForm();
                }
+               else if (cmd == browseCommand) {
+                       controller.showBrowseForm();
+               }
        }
 
 }

Modified: 
branches/rel-1/freevo/contrib/freevused/midlet/src/bemused/BemusedProtocol.java
==============================================================================
--- 
branches/rel-1/freevo/contrib/freevused/midlet/src/bemused/BemusedProtocol.java 
    (original)
+++ 
branches/rel-1/freevo/contrib/freevused/midlet/src/bemused/BemusedProtocol.java 
    Wed Jan 10 19:11:44 2007
@@ -297,15 +297,12 @@
                appendCommand(new Command(action));
        }
 
-       public void readDir(String dir) {
-           /*
-               int len = dir.length();
-               byte[] command = new byte[2];
+       public void sendMenuItemSelected(String idx) {
+               appendCommand(new Command("MITM", idx));
+       }
 
-               command[0] = (byte) (len / 256);
-               command[1] = (byte) (len % 256);
-               appendCommand(new Command("DLST", new String(command) + dir));
-               */
+       public void requestMenu() {
+               appendCommand(new Command("MSND"));
        }
 
 }

Modified: 
branches/rel-1/freevo/contrib/freevused/midlet/src/bemused/Command.java
==============================================================================
--- branches/rel-1/freevo/contrib/freevused/midlet/src/bemused/Command.java     
(original)
+++ branches/rel-1/freevo/contrib/freevused/midlet/src/bemused/Command.java     
Wed Jan 10 19:11:44 2007
@@ -81,6 +81,10 @@
                                writeString(output, strArg);
                                output.flush();
                        }
+                       else if (name.equals("MITM")) {
+                               writeString(output, strArg);
+                               output.flush();
+                       }
                        else if (name.equals("MSND")) {
                                output.flush();
                                readMenu(input, target);
@@ -113,7 +117,7 @@
                                lastByte = input.readByte();
                        }
                        if ( curItemBufPos > 0 ) {
-                               String curItemStr = new String(curItemBuf, 0, 
curItemBufPos - 1, "UTF-8");
+                               String curItemStr = new String(curItemBuf, 0, 
curItemBufPos, "UTF-8");
                                dirList.addElement(curItemStr);
                        }
                        lastByte = input.readByte();

Modified: branches/rel-1/freevo/src/event.py
==============================================================================
--- branches/rel-1/freevo/src/event.py  (original)
+++ branches/rel-1/freevo/src/event.py  Wed Jan 10 19:11:44 2007
@@ -635,3 +635,5 @@
 RECORD_START     = Event('RECORD_START')
 RECORD_STOP      = Event('RECORD_STOP')
 
+MENU_PROCESS_END = Event('MENU_PROCESS_END')
+

Modified: branches/rel-1/freevo/src/menu.py
==============================================================================
--- branches/rel-1/freevo/src/menu.py   (original)
+++ branches/rel-1/freevo/src/menu.py   Wed Jan 10 19:11:44 2007
@@ -785,6 +785,8 @@
         if not menu.choices:
             menu.selected = self.all_items[0]
 
+        rc.post_event(MENU_PROCESS_END)
+ 
         # make sure we are in context 'menu'
         rc.set_context(self.event_context)
 

Modified: branches/rel-1/freevo/src/plugins/freevused.py
==============================================================================
--- branches/rel-1/freevo/src/plugins/freevused.py      (original)
+++ branches/rel-1/freevo/src/plugins/freevused.py      Wed Jan 10 19:11:44 2007
@@ -61,6 +61,10 @@
 #
 # Changelog
 #
+# 1.4
+#
+# - Added menu browsing in the phone screen
+#
 # 1.3
 #
 # - Cosmetic improvements
@@ -113,6 +117,7 @@
 import plugin
 import rc
 import event as em
+import menu
 
 import plugin
 
@@ -121,7 +126,7 @@
 except:
     print String(_("ERROR")+": "+_("You need pybluez 
(http://org.csail.mit.edu/pybluez/) to run \"freevused\" plugin."))
 
-import thread
+import thread, time
 
 class PluginInterface(plugin.DaemonPlugin):
     """
@@ -195,11 +200,16 @@
         self.port        = 0
         self.data        = ''
         self.osd_message_status = None
+        self.menuw       = None
+
+        self.menu_isfresh = False
+        self.menu_client_waiting = False
+        self.playing = False
 
         if hasattr(config, 'FVUSED_BIND_TIMEOUT'):
             self.bind_timeout = config.FVUSED_BIND_TIMEOUT
         else:
-            self.bind_timeoute = 30
+            self.bind_timeout = 30
 
         if hasattr(config, 'FVUSED_OSD_MESSAGE'):
             self.osd_message = config.FVUSED_OSD_MESSAGE
@@ -243,20 +253,55 @@
                   'NUM9': '9'
         }
 
-        self.poll_menu_only = True
+        self.poll_menu_only = False
 
         self.rc = rc.get_singleton()
 
 
         thread.start_new_thread(self.bluetoothListener, ())
 
+    def poll(self):
+        if self.menu_client_waiting:
+            if self.playing:
+                if self.menuw:
+                    menupage = self.menuw.menustack[-1]
+                    if hasattr(menupage, 'is_submenu') and menupage.is_submenu:
+                        menuitem = self.menuw.menustack[-2].selected
+                        self.sendMessage('Playing %s' % menuitem.name)
+                    else:
+                        menuitem = menupage.selected
+                        self.sendMessage('Playing %s' % menuitem.name)
+                            
+                    self.menu_client_waiting = False
+            else:
+                self.sendMenu()
+                self.menu_client_waiting = False
+            self.menu_isfresh = False
+
     def eventhandler(self, event, menuw=None):
         _debug_("Saw %s" % event)
+
         if event == em.VIDEO_START:
             self.osd_message_status = self.osd_message
             self.osd_message = False
+            self.playing = True
+            self.menu_isfresh = True
+
         elif event == em.VIDEO_END:
             self.osd_message = self.osd_message_status
+            self.playing = False
+
+        elif event == em.PLAY_START:
+            self.playing = True
+            self.menu_isfresh = True
+
+        elif event == em.STOP:
+            self.playing = False
+
+        elif event == em.MENU_PROCESS_END:
+            if isinstance(menuw, menu.MenuWidget):
+                self.menuw = menuw
+                self.menu_isfresh = True
 
         return False
 
@@ -306,7 +351,7 @@
                 _debug_('Event Translation: "%s" -> "%s"' % (str_cmd, command))
                 self.rc.post_event(em.Event(command))
 
-        if str_cmd == 'TEXT':
+        elif str_cmd == 'TEXT':
             str_arg = self.data[4:]
             for letter in str_arg:
                 command = self.rc.key_event_mapper(letter)
@@ -314,6 +359,26 @@
                     _debug_('Event with arg Translation: "%s" -> "%s %s"' % 
(self.data, command, letter))
                     self.rc.post_event(command)
 
+        elif str_cmd == 'MSND':
+            self.menu_client_waiting = True
+
+        elif str_cmd == 'MITM':
+            str_arg = self.data[4:]
+            try:
+                pos = int(str_arg)
+
+                menu = self.menuw.menustack[-1]
+                max  = len(menu.choices)
+                if pos < max:
+                    menu.selected = menu.choices[pos]
+                    self.rc.post_event(em.MENU_SELECT)
+                else:
+                    _debug_('Menu index too high!: %s (max=%s)' % (pos, max-1))
+
+            except ValueError:
+                _debug_('Menu index sent: %s' % str_arg)
+                pass
+
         else:
             command = self.rc.key_event_mapper(self.cmds.get(self.data, ''))
             if command:
@@ -358,8 +423,19 @@
         try:
             if self.client_sock and data:
                 self.client_sock.send(data)
-                _debug_("Menu name sended: %s" % data)
+                _debug_("Data sent: %s" % data)
         except bluetooth.BluetoothError, e:
             self.isconnected = False
             _debug_("broken tooth: %s" % str(e))
 
+
+    def sendMenu(self):
+        if self.menuw:
+            menu = self.menuw.menustack[-1]
+            for item in menu.choices:
+                self.btSend(item.name + '\n')
+
+        self.btSend('\0')
+
+    def sendMessage(self, msg):
+        self.btSend(msg + '\n\0')

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to