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