diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/filetypes.c | 2 | ||||
-rw-r--r-- | apps/onplay.c | 18 | ||||
-rw-r--r-- | apps/playlist_viewer.c | 34 |
3 files changed, 44 insertions, 10 deletions
diff --git a/apps/filetypes.c b/apps/filetypes.c index 02d2af282e..24dc0f2e4d 100644 --- a/apps/filetypes.c +++ b/apps/filetypes.c | |||
@@ -618,7 +618,7 @@ int filetype_list_viewers(const char* current_file) | |||
618 | int i = viewers[info.selection]; | 618 | int i = viewers[info.selection]; |
619 | snprintf(plugin, MAX_PATH, "%s/%s." ROCK_EXTENSION, | 619 | snprintf(plugin, MAX_PATH, "%s/%s." ROCK_EXTENSION, |
620 | PLUGIN_DIR, filetypes[i].plugin); | 620 | PLUGIN_DIR, filetypes[i].plugin); |
621 | plugin_load(plugin, current_file); | 621 | ret = plugin_load(plugin, current_file); |
622 | } | 622 | } |
623 | return ret; | 623 | return ret; |
624 | } | 624 | } |
diff --git a/apps/onplay.c b/apps/onplay.c index 0bb3b6ae3c..0172f96c21 100644 --- a/apps/onplay.c +++ b/apps/onplay.c | |||
@@ -1558,6 +1558,8 @@ static bool onplay_load_plugin(void *param) | |||
1558 | onplay_result = ONPLAY_RELOAD_DIR; | 1558 | onplay_result = ONPLAY_RELOAD_DIR; |
1559 | else if (ret == PLUGIN_GOTO_PLUGIN) | 1559 | else if (ret == PLUGIN_GOTO_PLUGIN) |
1560 | onplay_result = ONPLAY_PLUGIN; | 1560 | onplay_result = ONPLAY_PLUGIN; |
1561 | else if (ret == PLUGIN_GOTO_WPS) | ||
1562 | onplay_result = ONPLAY_START_PLAY; | ||
1561 | return false; | 1563 | return false; |
1562 | } | 1564 | } |
1563 | 1565 | ||
@@ -1818,6 +1820,14 @@ static int playlist_insert_shuffled(void) | |||
1818 | return ONPLAY_RELOAD_DIR; | 1820 | return ONPLAY_RELOAD_DIR; |
1819 | } | 1821 | } |
1820 | 1822 | ||
1823 | static int tree_hotkey_run_plugin(void *param) | ||
1824 | { | ||
1825 | if (filetype_load_plugin((const char*)param, selected_file) == PLUGIN_GOTO_WPS) | ||
1826 | return ONPLAY_START_PLAY; | ||
1827 | |||
1828 | return ONPLAY_RELOAD_DIR; | ||
1829 | } | ||
1830 | |||
1821 | static void hotkey_run_plugin(void) | 1831 | static void hotkey_run_plugin(void) |
1822 | { | 1832 | { |
1823 | open_plugin_run(ID2P(LANG_HOTKEY_WPS)); | 1833 | open_plugin_run(ID2P(LANG_HOTKEY_WPS)); |
@@ -1866,12 +1876,12 @@ static struct hotkey_assignment hotkey_items[] = { | |||
1866 | HOTKEY_FUNC(bookmark_create_menu, NULL), | 1876 | HOTKEY_FUNC(bookmark_create_menu, NULL), |
1867 | ONPLAY_OK }, | 1877 | ONPLAY_OK }, |
1868 | { HOTKEY_PROPERTIES, LANG_PROPERTIES, | 1878 | { HOTKEY_PROPERTIES, LANG_PROPERTIES, |
1869 | HOTKEY_FUNC(onplay_load_plugin, (void *)"properties"), | 1879 | HOTKEY_FUNC(tree_hotkey_run_plugin, (void *)"properties"), |
1870 | ONPLAY_RELOAD_DIR }, | 1880 | ONPLAY_OK }, |
1871 | #ifdef HAVE_TAGCACHE | 1881 | #ifdef HAVE_TAGCACHE |
1872 | { HOTKEY_PICTUREFLOW, LANG_ONPLAY_PICTUREFLOW, | 1882 | { HOTKEY_PICTUREFLOW, LANG_ONPLAY_PICTUREFLOW, |
1873 | HOTKEY_FUNC(onplay_load_plugin, (void *)"pictureflow"), | 1883 | HOTKEY_FUNC(tree_hotkey_run_plugin, (void *)"pictureflow"), |
1874 | ONPLAY_RELOAD_DIR }, | 1884 | ONPLAY_OK }, |
1875 | #endif | 1885 | #endif |
1876 | }; | 1886 | }; |
1877 | 1887 | ||
diff --git a/apps/playlist_viewer.c b/apps/playlist_viewer.c index 5b6e2991bc..0eaf559c66 100644 --- a/apps/playlist_viewer.c +++ b/apps/playlist_viewer.c | |||
@@ -76,6 +76,7 @@ enum direction | |||
76 | enum pv_onplay_result { | 76 | enum pv_onplay_result { |
77 | PV_ONPLAY_USB, | 77 | PV_ONPLAY_USB, |
78 | PV_ONPLAY_USB_CLOSED, | 78 | PV_ONPLAY_USB_CLOSED, |
79 | PV_ONPLAY_WPS_CLOSED, | ||
79 | PV_ONPLAY_CLOSED, | 80 | PV_ONPLAY_CLOSED, |
80 | PV_ONPLAY_ITEM_REMOVED, | 81 | PV_ONPLAY_ITEM_REMOVED, |
81 | PV_ONPLAY_CHANGED, | 82 | PV_ONPLAY_CHANGED, |
@@ -519,9 +520,17 @@ static enum pv_onplay_result open_with(const struct playlist_entry *current_trac | |||
519 | 520 | ||
520 | strmemccpy(selected_track, current_track->name, sizeof(selected_track)); | 521 | strmemccpy(selected_track, current_track->name, sizeof(selected_track)); |
521 | 522 | ||
523 | int plugin_return = filetype_list_viewers(selected_track); | ||
522 | 524 | ||
523 | return (filetype_list_viewers(selected_track) == | 525 | switch (plugin_return) |
524 | PLUGIN_USB_CONNECTED ? PV_ONPLAY_USB_CLOSED : PV_ONPLAY_CLOSED); | 526 | { |
527 | case PLUGIN_USB_CONNECTED: | ||
528 | return PV_ONPLAY_USB_CLOSED; | ||
529 | case PLUGIN_GOTO_WPS: | ||
530 | return PV_ONPLAY_WPS_CLOSED; | ||
531 | default: | ||
532 | return PV_ONPLAY_CLOSED; | ||
533 | } | ||
525 | } | 534 | } |
526 | #endif /* HAVE_HOTKEY */ | 535 | #endif /* HAVE_HOTKEY */ |
527 | 536 | ||
@@ -533,8 +542,17 @@ static enum pv_onplay_result open_pictureflow(const struct playlist_entry *curre | |||
533 | 542 | ||
534 | strmemccpy(selected_track, current_track->name, sizeof(selected_track)); | 543 | strmemccpy(selected_track, current_track->name, sizeof(selected_track)); |
535 | 544 | ||
536 | return (filetype_load_plugin((void *)"pictureflow", selected_track) == | 545 | int plugin_return = filetype_load_plugin((void *)"pictureflow", selected_track); |
537 | PLUGIN_USB_CONNECTED ? PV_ONPLAY_USB_CLOSED : PV_ONPLAY_CLOSED); | 546 | |
547 | switch (plugin_return) | ||
548 | { | ||
549 | case PLUGIN_USB_CONNECTED: | ||
550 | return PV_ONPLAY_USB_CLOSED; | ||
551 | case PLUGIN_GOTO_WPS: | ||
552 | return PV_ONPLAY_WPS_CLOSED; | ||
553 | default: | ||
554 | return PV_ONPLAY_CLOSED; | ||
555 | } | ||
538 | } | 556 | } |
539 | #endif | 557 | #endif |
540 | 558 | ||
@@ -959,6 +977,8 @@ enum playlist_viewer_result playlist_viewer_ex(const char* filename) | |||
959 | } | 977 | } |
960 | else if (pv_onplay_result == PV_ONPLAY_USB_CLOSED) | 978 | else if (pv_onplay_result == PV_ONPLAY_USB_CLOSED) |
961 | return PLAYLIST_VIEWER_USB; | 979 | return PLAYLIST_VIEWER_USB; |
980 | else if (pv_onplay_result == PV_ONPLAY_WPS_CLOSED) | ||
981 | return PLAYLIST_VIEWER_OK; | ||
962 | else if (pv_onplay_result == PV_ONPLAY_CLOSED) | 982 | else if (pv_onplay_result == PV_ONPLAY_CLOSED) |
963 | { | 983 | { |
964 | if (!open_playlist_viewer(filename, &playlist_lists, true)) | 984 | if (!open_playlist_viewer(filename, &playlist_lists, true)) |
@@ -1004,8 +1024,12 @@ enum playlist_viewer_result playlist_viewer_ex(const char* filename) | |||
1004 | 1024 | ||
1005 | if (do_plugin != NULL) | 1025 | if (do_plugin != NULL) |
1006 | { | 1026 | { |
1007 | if (do_plugin(current_track) == PV_ONPLAY_USB_CLOSED) | 1027 | int plugin_result = do_plugin(current_track); |
1028 | |||
1029 | if (plugin_result == PV_ONPLAY_USB_CLOSED) | ||
1008 | return PLAYLIST_VIEWER_USB; | 1030 | return PLAYLIST_VIEWER_USB; |
1031 | else if (plugin_result == PV_ONPLAY_WPS_CLOSED) | ||
1032 | return PLAYLIST_VIEWER_OK; | ||
1009 | else if (!open_playlist_viewer(filename, &playlist_lists, true)) | 1033 | else if (!open_playlist_viewer(filename, &playlist_lists, true)) |
1010 | { | 1034 | { |
1011 | ret = PLAYLIST_VIEWER_CANCEL; | 1035 | ret = PLAYLIST_VIEWER_CANCEL; |