mp3splt-gtk
|
00001 /********************************************************** 00002 * 00003 * mp3splt-gtk -- utility based on mp3splt, 00004 * for mp3/ogg splitting without decoding 00005 * 00006 * Copyright (c) 2005-2011 Alexandru Munteanu - io_fx@yahoo.fr 00007 * 00008 * http://mp3splt.sourceforge.net/ 00009 * 00010 *********************************************************/ 00011 00012 /********************************************************** 00013 * 00014 * This program is free software; you can redistribute it and/or 00015 * modify it under the terms of the GNU General Public License 00016 * as published by the Free Software Foundation; either version 2 00017 * of the License, or (at your option) any later version. 00018 * 00019 * This program is distributed in the hope that it will be useful, 00020 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00021 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00022 * GNU General Public License for more details. 00023 * 00024 * You should have received a copy of the GNU General Public License 00025 * along with this program; if not, write to the Free Software 00026 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 00027 * USA. 00028 * 00029 *********************************************************/ 00030 00031 /********************************************************** 00032 * Filename: player_tab.h 00033 * 00034 * header of player_tab.c 00035 * 00036 *********************************************************/ 00037 00038 #ifndef _PLAYER_TAB_H 00039 #define _PLAYER_TAB_H 00040 00041 #define ICON_EXT ".svg" 00042 00044 typedef struct 00045 { 00046 long time; 00047 float level; 00048 } silence_wave; 00049 00050 //float comparison 00051 #define DELTA 5 00052 00053 //for the browse dir 00054 #define BROWSE_SONG 1 00055 #define BROWSE_CDDB_FILE 2 00056 #define BROWSE_CUE_FILE 3 00057 00058 void player_quick_preview(gint splitpoint_to_preview); 00059 void check_update_down_progress_bar(); 00060 void set_preview_active_if_needed(); 00061 void cancel_quick_preview_all(); 00062 void cancel_quick_preview(); 00063 void check_cancel_quick_preview(gint i); 00064 void get_splitpoint_time_left_right(gint *time_left, 00065 gint *time_right, 00066 gint *splitpoint_left); 00067 gint mytimer(gpointer data); 00068 void reset_inactive_progress_bar(); 00069 void reset_inactive_volume_bar(); 00070 void reset_label_time(); 00071 void reset_song_infos(); 00072 void reset_song_name_label(); 00073 void clear_data_player(); 00074 void enable_player_buttons(); 00075 void disable_player_buttons(); 00076 void connect_change_buttons(); 00077 void disconnect_change_buttons(); 00078 void connect_with_song(const gchar *fname, gint i); 00079 void connect_to_player_with_song(gint i); 00080 void connect_button_event (GtkWidget *widget, 00081 gpointer data); 00082 void check_stream(); 00083 void disconnect_button_event (GtkWidget *widget, 00084 gpointer data); 00085 void play_event (GtkWidget *widget, gpointer data); 00086 void stop_event (GtkWidget *widget, gpointer data); 00087 void pause_event (GtkWidget *widget, gpointer data); 00088 void prev_button_event (GtkWidget *widget, gpointer data); 00089 void next_button_event (GtkWidget *widget, gpointer data); 00090 void change_song_position(); 00091 GtkWidget *create_player_buttons_hbox(GtkTreeView *tree_view); 00092 GtkWidget *create_song_informations_hbox(); 00093 gboolean progress_bar_unclick_event (GtkWidget *widget, 00094 GdkEventCrossing *event, 00095 gpointer user_data); 00096 gboolean progress_bar_click_event (GtkWidget *widget, 00097 GdkEventCrossing *event, 00098 gpointer user_data); 00099 gfloat get_total_time(); 00100 gfloat get_elapsed_time(); 00101 void refresh_drawing_area(); 00102 void progress_bar_value_changed_event (GtkRange *range, 00103 gpointer user_data); 00104 gboolean progress_bar_scroll_event (GtkWidget *widget, 00105 GdkEventScroll *event, 00106 gpointer user_data); 00107 gboolean progress_bar_enter_event (GtkWidget *widget, 00108 GdkEventCrossing *event, 00109 gpointer user_data); 00110 gboolean progress_bar_leave_event (GtkWidget *widget, 00111 GdkEventCrossing *event, 00112 gpointer user_data); 00113 GtkWidget *create_song_bar_hbox(); 00114 void print_about_the_song(); 00115 void print_player_filename(); 00116 void print_all_song_infos(); 00117 void print_song_time_elapsed(); 00118 void change_volume_bar(); 00119 void change_progress_bar(); 00120 GtkWidget *create_filename_player_hbox(); 00121 void change_volume_event(GtkWidget *widget, 00122 gpointer data); 00123 gboolean volume_bar_unclick_event (GtkWidget *widget, 00124 GdkEventCrossing *event, 00125 gpointer user_data); 00126 gboolean volume_bar_click_event (GtkWidget *widget, 00127 GdkEventCrossing *event, 00128 gpointer user_data); 00129 gboolean volume_bar_enter_event (GtkWidget *widget, 00130 GdkEventCrossing *event, 00131 gpointer user_data); 00132 gboolean volume_bar_leave_event (GtkWidget *widget, 00133 GdkEventCrossing *event, 00134 gpointer user_data); 00135 gboolean volume_bar_scroll_event (GtkWidget *widget, 00136 GdkEventScroll *event, 00137 gpointer user_data); 00138 GtkWidget *create_volume_control_box(); 00139 void close_player_popup_window_event( GtkWidget *window, 00140 gpointer data ); 00141 void handle_player_detached_event (GtkHandleBox *handlebox, 00142 GtkWidget *widget, 00143 gpointer data); 00144 PangoLayout *get_drawing_text(gchar *str); 00145 gfloat get_right_drawing_time(); 00146 gfloat get_left_drawing_time(); 00147 gint get_time_hundrsecs(gint time); 00148 gint get_time_secs(gint time); 00149 gint get_time_mins(gint time); 00150 gchar *get_time_for_drawing(gchar *str, 00151 gint time, 00152 gboolean hundr_or_not, 00153 gint *number_of_chars); 00154 gint time_to_pixels(gint width, 00155 gfloat time); 00156 gfloat pixels_to_time(gfloat width, 00157 gint pixels); 00158 gint get_draw_line_position(gint width, 00159 gfloat time); 00160 void draw_motif(GtkWidget *da,cairo_t *gc, 00161 gint ylimit,gint x,gint model); 00162 void draw_marks(gint time_interval, 00163 gint left_mark,gint right_mark, 00164 gint ylimit, GtkWidget *da, cairo_t *gc); 00165 //motif for splitpoints 00166 //draw is false if we draw the splitpoint we move 00167 void draw_motif_splitpoints(GtkWidget *da, cairo_t *gc, 00168 gint x,gint draw, 00169 gint current_point_hundr_secs, 00170 gboolean move, 00171 gint number_splitpoint); 00172 void draw_splitpoints(gint left_mark, 00173 gint right_mark, 00174 GtkWidget *da, 00175 cairo_t *gc); 00176 gboolean da_expose_event (GtkWidget *da, 00177 GdkEventExpose *event, 00178 gpointer data); 00179 gboolean da_press_event (GtkWidget *da, 00180 GdkEventButton *event, 00181 gpointer data); 00182 gboolean da_unpress_event (GtkWidget *da, 00183 GdkEventButton *event, 00184 gpointer data); 00185 gboolean da_notify_event (GtkWidget *da, 00186 GdkEventMotion *event, 00187 gpointer data); 00188 GtkWidget *create_drawing_area(); 00189 GtkWidget *create_player_control_frame(GtkTreeView *tree_view); 00190 00191 //moved from the file_tab 00192 void file_chooser_cancel_event(); 00193 void file_chooser_ok_event(gchar *fname); 00194 void browse_button_event( GtkWidget *widget, 00195 gpointer data ); 00196 void close_file_popup_window_event( GtkWidget *window, 00197 gpointer data ); 00198 void handle_file_detached_event (GtkHandleBox *handlebox, 00199 GtkWidget *widget, 00200 gpointer data); 00201 GtkWidget *create_choose_file_frame(); 00202 00203 void change_current_filename(const gchar *fname); 00204 GtkWidget *create_player_playlist_frame(); 00205 00206 void hide_connect_button(); 00207 void show_connect_button(); 00208 void hide_disconnect_button(); 00209 void show_disconnect_button(); 00210 00211 void inputfilename_set(const gchar *filename); 00212 gchar *inputfilename_get(); 00213 00214 void build_svg_path(GString *imagefile, gchar *svg_filename); 00215 00216 #endif 00217