/* * vim: softtabstop=4 shiftwidth=4 cindent foldmethod=marker expandtab * * $LastChangedDate$ * $Revision$ * $LastChangedBy$ * $URL$ * * Copyright 2009-2011 Eric Connell * * This file is part of Mangler. * * Mangler is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Mangler is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Mangler. If not, see . */ #ifndef _MANGLERRECORDER_H #define _MANGLERRECORDER_H class ManglerRecorder { public: ManglerRecorder(Glib::RefPtr builder); ~ManglerRecorder(); Glib::RefPtr builder; Gtk::Window *recWindow; Gtk::Dialog *recInfoDialog; Gtk::ScrolledWindow *recScrolledWindow; Gtk::MenuItem *menuitem; Gtk::Button *button; Gtk::Label *label; Gtk::Entry *entry; Gtk::Widget *widget; Gtk::ToggleButton *recordbutton; Gtk::Entry *fileentry; Gtk::FileChooserDialog *filedialog; Gtk::TextView *textview; bool isPlaying; bool isRecording; void show(void); void can_record(bool isConnected); void record(Glib::ustring username, Glib::ustring text, uint32_t index, uint32_t time, bool stopped, bool flushed); protected: Glib::ustring recdir; void *vrfh; Glib::ustring path; Glib::ustring filename; uint32_t totalduration; Glib::Thread *player; class recModelColumns : public Gtk::TreeModel::ColumnRecord { public: recModelColumns() { add(id); add(time_val); add(duration_val); add(diff_val); add(time); add(duration); add(status); add(username); add(text); } Gtk::TreeModelColumn id; Gtk::TreeModelColumn time_val; Gtk::TreeModelColumn duration_val; Gtk::TreeModelColumn diff_val; Gtk::TreeModelColumn time; Gtk::TreeModelColumn duration; Gtk::TreeModelColumn status; Gtk::TreeModelColumn username; Gtk::TreeModelColumn text; } recRecord; Glib::RefPtr recListModel; Gtk::TreeView *recListTree; class ManglerRecorderData { public: ManglerRecorderData(v3_vrf_data *vrfd = NULL) { this->vrfd = vrfd; next = 0; outputAudio = NULL; } v3_vrf_data *vrfd; double next; ManglerAudio *outputAudio; }; void hide_activate_cb(void); void open_activate_cb(void); void close_activate_cb(void); void saveas_activate_cb(void); void delete_activate_cb(void); void playpause_clicked_cb(void); void stop_clicked_cb(void); void record_toggled_cb(void); void info_clicked_cb(void); void recListTree_cursor_changed_cb(void); void recListTree_row_activated_cb(const Gtk::TreeModel::Path& path, Gtk::TreeViewColumn* column); void set(bool isRecording); void reset(bool destroying = false); void play(void); void recInfoDialog_cancel_clicked_cb(void); void recInfoDialog_save_clicked_cb(void); Glib::ustring float_to_ustring(float val, int precision = 2); Glib::ustring bytes_to_readable(double size); Glib::ustring msec_to_timestamp(uint32_t milliseconds); Glib::ustring timestamp(Glib::ustring format = "%Y%m%d-%H%M%S"); }; #endif