├── po ├── POTFILES.skip ├── meson.build ├── LINGUAS └── POTFILES.in ├── xfburn ├── xfburn-cclosure-marshal.list ├── xfburn-error.c ├── xfburn-main.h ├── xfburn-audio-track-gst.h ├── xfburn-error.h ├── xfburn-audio-track.h ├── xfburn-perform-burn.h ├── xfburn-audio-track-gst.c ├── xfburn-composition.h ├── xfburn-utils.h ├── xfburn-composition.c ├── xfburn-audio-track.c ├── xfburn-copy-cd-dialog.h ├── xfburn-data-disc-usage.h ├── xfburn-audio-disc-usage.h ├── xfburn-copy-dvd-dialog.h ├── xfburn-welcome-tab.h ├── xfburn-blank-dialog.h ├── xfburn-preferences-dialog.h ├── xfburn-transcoder-basic.h ├── xfburn-global.h ├── xfburn-transcoder-gst.h ├── xfburn-file-browser.h ├── xfburn-fs-browser.h ├── xfburn-burn-image-dialog.h ├── xfburn-copy-cd-progress-dialog.h ├── xfburn-notebook-tab.h ├── xfburn-create-iso-progress-dialog.h ├── xfburn-data-composition.h ├── xfburn-settings.h ├── xfburn-device.h ├── xfburn-audio-composition.h ├── xfburn-adding-progress.h ├── xfburn-main-window.h ├── xfburn-burn-data-dvd-composition-dialog.h ├── xfburn-burn-data-cd-composition-dialog.h ├── xfburn-udev-manager.h ├── xfburn-directory-browser.h ├── xfburn-burn-audio-cd-composition-dialog.h ├── xfburn-burn-data-composition-base-dialog.h ├── xfburn-compositions-notebook.h ├── xfburn-burn-data-dvd-composition-dialog.c ├── xfburn-disc-usage.h ├── xfburn-device-box.h ├── xfburn-burn-data-cd-composition-dialog.c ├── meson.build ├── xfburn-transcoder.h ├── xfburn-device-list.h ├── xfburn-progress-dialog.h ├── xfburn-create-iso-progress-dialog.c ├── xfburn-audio-disc-usage.c ├── xfburn-data-disc-usage.c ├── xfburn-copy-cd-progress-dialog.c ├── xfburn-adding-progress.c ├── xfburn-compositions-notebook.c ├── xfburn-transcoder.c ├── xfburn-notebook-tab.c └── xfburn-disc-usage.c ├── class diagram.zuml ├── .gitlab-ci.yml ├── icons ├── 16x16 │ ├── stock_xfburn.png │ ├── stock_xfburn-audio-cd.png │ ├── stock_xfburn-burn-cd.png │ ├── stock_xfburn-blank-cdrw.png │ ├── stock_xfburn-data-copy.png │ ├── stock_xfburn-import-session.png │ └── stock_xfburn-new-data-composition.png ├── 22x22 │ ├── stock_xfburn.png │ ├── stock_xfburn-audio-cd.png │ ├── stock_xfburn-burn-cd.png │ ├── stock_xfburn-blank-cdrw.png │ ├── stock_xfburn-data-copy.png │ ├── stock_xfburn-import-session.png │ └── stock_xfburn-new-data-composition.png ├── 24x24 │ ├── stock_xfburn.png │ ├── stock_xfburn-audio-cd.png │ ├── stock_xfburn-burn-cd.png │ ├── stock_xfburn-audio-copy.png │ ├── stock_xfburn-blank-cdrw.png │ ├── stock_xfburn-data-copy.png │ ├── stock_xfburn-format-dvdrw.png │ ├── stock_xfburn-import-session.png │ └── stock_xfburn-new-data-composition.png ├── 32x32 │ ├── stock_xfburn.png │ ├── stock_xfburn-audio-cd.png │ ├── stock_xfburn-burn-cd.png │ ├── stock_xfburn-blank-cdrw.png │ ├── stock_xfburn-data-copy.png │ ├── stock_xfburn-import-session.png │ └── stock_xfburn-new-data-composition.png ├── 48x48 │ ├── stock_xfburn.png │ ├── stock_xfburn-audio-cd.png │ ├── stock_xfburn-burn-cd.png │ ├── stock_xfburn-blank-cdrw.png │ ├── stock_xfburn-data-copy.png │ ├── stock_xfburn-import-session.png │ └── stock_xfburn-new-data-composition.png ├── bitmap.sh └── meson.build ├── desktop-integration ├── thunar-sendto-xfburn.desktop.in └── meson.build ├── AUTHORS ├── CONTRIBUTORS ├── meson_options.txt ├── docs ├── meson.build └── xfburn.xml ├── xfce-revision.h.in ├── xfburn-toolbars.ui ├── xfburn.desktop.in ├── org.xfce.xfburn.appdata.xml.in ├── xfburn-popup-menus.ui ├── TODO ├── xfburn.ui ├── README.md └── meson.build /po/POTFILES.skip: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /xfburn/xfburn-cclosure-marshal.list: -------------------------------------------------------------------------------- 1 | VOID:BOOLEAN,OBJECT 2 | -------------------------------------------------------------------------------- /po/meson.build: -------------------------------------------------------------------------------- 1 | i18n.gettext(meson.project_name(), preset: 'glib') 2 | -------------------------------------------------------------------------------- /class diagram.zuml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/class diagram.zuml -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | include: 2 | - project: 'xfce/xfce4-dev-tools' 3 | file: '/ci/build_project.yml' 4 | 5 | -------------------------------------------------------------------------------- /icons/16x16/stock_xfburn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/16x16/stock_xfburn.png -------------------------------------------------------------------------------- /icons/22x22/stock_xfburn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/22x22/stock_xfburn.png -------------------------------------------------------------------------------- /icons/24x24/stock_xfburn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/24x24/stock_xfburn.png -------------------------------------------------------------------------------- /icons/32x32/stock_xfburn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/32x32/stock_xfburn.png -------------------------------------------------------------------------------- /icons/48x48/stock_xfburn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/48x48/stock_xfburn.png -------------------------------------------------------------------------------- /icons/16x16/stock_xfburn-audio-cd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/16x16/stock_xfburn-audio-cd.png -------------------------------------------------------------------------------- /icons/16x16/stock_xfburn-burn-cd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/16x16/stock_xfburn-burn-cd.png -------------------------------------------------------------------------------- /icons/22x22/stock_xfburn-audio-cd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/22x22/stock_xfburn-audio-cd.png -------------------------------------------------------------------------------- /icons/22x22/stock_xfburn-burn-cd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/22x22/stock_xfburn-burn-cd.png -------------------------------------------------------------------------------- /icons/24x24/stock_xfburn-audio-cd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/24x24/stock_xfburn-audio-cd.png -------------------------------------------------------------------------------- /icons/24x24/stock_xfburn-burn-cd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/24x24/stock_xfburn-burn-cd.png -------------------------------------------------------------------------------- /icons/32x32/stock_xfburn-audio-cd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/32x32/stock_xfburn-audio-cd.png -------------------------------------------------------------------------------- /icons/32x32/stock_xfburn-burn-cd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/32x32/stock_xfburn-burn-cd.png -------------------------------------------------------------------------------- /icons/48x48/stock_xfburn-audio-cd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/48x48/stock_xfburn-audio-cd.png -------------------------------------------------------------------------------- /icons/48x48/stock_xfburn-burn-cd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/48x48/stock_xfburn-burn-cd.png -------------------------------------------------------------------------------- /icons/16x16/stock_xfburn-blank-cdrw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/16x16/stock_xfburn-blank-cdrw.png -------------------------------------------------------------------------------- /icons/16x16/stock_xfburn-data-copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/16x16/stock_xfburn-data-copy.png -------------------------------------------------------------------------------- /icons/22x22/stock_xfburn-blank-cdrw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/22x22/stock_xfburn-blank-cdrw.png -------------------------------------------------------------------------------- /icons/22x22/stock_xfburn-data-copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/22x22/stock_xfburn-data-copy.png -------------------------------------------------------------------------------- /icons/24x24/stock_xfburn-audio-copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/24x24/stock_xfburn-audio-copy.png -------------------------------------------------------------------------------- /icons/24x24/stock_xfburn-blank-cdrw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/24x24/stock_xfburn-blank-cdrw.png -------------------------------------------------------------------------------- /icons/24x24/stock_xfburn-data-copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/24x24/stock_xfburn-data-copy.png -------------------------------------------------------------------------------- /icons/32x32/stock_xfburn-blank-cdrw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/32x32/stock_xfburn-blank-cdrw.png -------------------------------------------------------------------------------- /icons/32x32/stock_xfburn-data-copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/32x32/stock_xfburn-data-copy.png -------------------------------------------------------------------------------- /icons/48x48/stock_xfburn-blank-cdrw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/48x48/stock_xfburn-blank-cdrw.png -------------------------------------------------------------------------------- /icons/48x48/stock_xfburn-data-copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/48x48/stock_xfburn-data-copy.png -------------------------------------------------------------------------------- /icons/24x24/stock_xfburn-format-dvdrw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/24x24/stock_xfburn-format-dvdrw.png -------------------------------------------------------------------------------- /icons/16x16/stock_xfburn-import-session.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/16x16/stock_xfburn-import-session.png -------------------------------------------------------------------------------- /icons/22x22/stock_xfburn-import-session.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/22x22/stock_xfburn-import-session.png -------------------------------------------------------------------------------- /icons/24x24/stock_xfburn-import-session.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/24x24/stock_xfburn-import-session.png -------------------------------------------------------------------------------- /icons/32x32/stock_xfburn-import-session.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/32x32/stock_xfburn-import-session.png -------------------------------------------------------------------------------- /icons/48x48/stock_xfburn-import-session.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/48x48/stock_xfburn-import-session.png -------------------------------------------------------------------------------- /icons/16x16/stock_xfburn-new-data-composition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/16x16/stock_xfburn-new-data-composition.png -------------------------------------------------------------------------------- /icons/22x22/stock_xfburn-new-data-composition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/22x22/stock_xfburn-new-data-composition.png -------------------------------------------------------------------------------- /icons/24x24/stock_xfburn-new-data-composition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/24x24/stock_xfburn-new-data-composition.png -------------------------------------------------------------------------------- /icons/32x32/stock_xfburn-new-data-composition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/32x32/stock_xfburn-new-data-composition.png -------------------------------------------------------------------------------- /icons/48x48/stock_xfburn-new-data-composition.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xfce-mirror/xfburn/HEAD/icons/48x48/stock_xfburn-new-data-composition.png -------------------------------------------------------------------------------- /desktop-integration/thunar-sendto-xfburn.desktop.in: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Version=1.0 4 | Name=Data Composition 5 | Icon=stock_xfburn 6 | TryExec=xfburn 7 | Exec=xfburn --data-composition %F 8 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | Hunter Turcin 2 | 3 | Retired: 4 | Mario Đanić 5 | Rene Kjellerup 6 | David Mohr 7 | Jean-François Wauthy (Original author) 8 | -------------------------------------------------------------------------------- /CONTRIBUTORS: -------------------------------------------------------------------------------- 1 | Jérôme Guelfucci (resizable column patch, see bug #2930) 2 | Jari Rahkonen (translatable blanking modes, see bug #4223) 3 | 4 | ICONS: 5 | jean_victor_balin (double_note_two, placed in the public domain: 6 | http://openclipart.org/media/files/jean_victor_balin/8666 ) 7 | tango-icon-theme 8 | -------------------------------------------------------------------------------- /desktop-integration/meson.build: -------------------------------------------------------------------------------- 1 | i18n.merge_file( 2 | input: 'thunar-sendto-xfburn.desktop.in', 3 | output: 'thunar-sendto-xfburn.desktop', 4 | po_dir: '..' / 'po', 5 | type: 'desktop', 6 | install: true, 7 | install_dir: get_option('prefix') / get_option('datadir') / 'Thunar' / 'sendto', 8 | ) 9 | -------------------------------------------------------------------------------- /meson_options.txt: -------------------------------------------------------------------------------- 1 | option( 2 | 'gudev', 3 | type: 'feature', 4 | value: 'auto', 5 | description: 'Support for handling devices with udev', 6 | ) 7 | option( 8 | 'gstreamer', 9 | type: 'feature', 10 | value: 'auto', 11 | description: 'Support for transcoding audio files with gstreamer', 12 | ) 13 | -------------------------------------------------------------------------------- /docs/meson.build: -------------------------------------------------------------------------------- 1 | custom_target( 2 | 'xfburn.1', 3 | input: 'xfburn.xml', 4 | output: 'xfburn.1', 5 | command: [xsltproc, '--nonet', '--output', '@OUTPUT@', 'http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl', '@INPUT@'], 6 | install: true, 7 | install_dir: get_option('prefix') / get_option('mandir') / 'man1', 8 | ) 9 | -------------------------------------------------------------------------------- /xfce-revision.h.in: -------------------------------------------------------------------------------- 1 | /* 2 | * The file xfce-revision.h is auto-generated and should not be modified 3 | * directly. Modify the xfce-revision.h.in file and re-run the build 4 | * instead. 5 | */ 6 | 7 | #ifndef INC_XFCE_REVISION_H 8 | #define INC_XFCE_REVISION_H 9 | 10 | #define REVISION "@REVISION@" 11 | 12 | #define VERSION_FULL VERSION "-" REVISION 13 | #define PACKAGE_STRING_FULL PACKAGE " " VERSION_FULL 14 | 15 | #endif /* INC_XFCE_REVISION_H */ 16 | -------------------------------------------------------------------------------- /xfburn-toolbars.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /po/LINGUAS: -------------------------------------------------------------------------------- 1 | # Generated by https://gitlab.xfce.org/infra/transifex 2 | ar 3 | ast 4 | be 5 | bg 6 | ca 7 | cs 8 | da 9 | de 10 | el 11 | en_AU 12 | en_GB 13 | es 14 | et 15 | eu 16 | fi 17 | fr 18 | gl 19 | he 20 | hr 21 | hu 22 | hy_AM 23 | hye 24 | id 25 | ie 26 | is 27 | it 28 | ja 29 | kk 30 | ko 31 | lt 32 | lv 33 | ms 34 | nb 35 | nl 36 | nn 37 | oc 38 | pa 39 | pl 40 | pt_BR 41 | pt 42 | ro 43 | ru 44 | si 45 | sk 46 | sl 47 | sq 48 | sr 49 | sv 50 | te 51 | th 52 | tr 53 | ug 54 | uk 55 | ur_PK 56 | ur 57 | vi 58 | zh_CN 59 | zh_TW 60 | -------------------------------------------------------------------------------- /icons/bitmap.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cd "`dirname $0`" 4 | 5 | if [ ! -x "`which inkscape`" ]; then 6 | echo "Could not find inkscape" 7 | exit 1 8 | fi 9 | 10 | convert() { 11 | in=$1 12 | w=$2 13 | h=$3 14 | out=${w}x${h}/xfburn.png 15 | 16 | echo "Converting $in to $out" 17 | 18 | inkscape -z -f $in -e $out -w $w -h $h 19 | } 20 | 21 | convert xfburn-16.svg 16 16 22 | convert xfburn-48.svg 22 22 23 | convert xfburn-48.svg 24 24 24 | convert xfburn-48.svg 32 32 25 | convert xfburn-48.svg 48 48 26 | cp xfburn-128.svg scalable/xfburn.svg 27 | -------------------------------------------------------------------------------- /xfburn.desktop.in: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Version=1.0 3 | Type=Application 4 | Name=Xfburn 5 | GenericName=Disk Burning 6 | Comment=CD and DVD burning application 7 | Exec=xfburn %F 8 | TryExec=xfburn 9 | Icon=stock_xfburn 10 | MimeType=application/x-cd-image;x-content/audio-cdda;x-content/blank-cd; 11 | Terminal=false 12 | Categories=X-XFCE;GTK;DiscBurning;Archiving;AudioVideo;Utility; 13 | Keywords=Burn;CD;DVD;ISO;Disc;Write;Audio;Video; 14 | StartupNotify=true 15 | 16 | Actions=BurnImage; 17 | 18 | [Desktop Action BurnImage] 19 | Icon=stock_xfburn 20 | Exec=xfburn -i %f 21 | Name=Burn Image (xfburn) 22 | -------------------------------------------------------------------------------- /xfburn/xfburn-error.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2008 David Mohr 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #include "xfburn-error.h" 20 | 21 | GQuark 22 | xfburn_error_quark (void) 23 | { 24 | return g_quark_from_static_string ("xfburn-error-quark"); 25 | } 26 | -------------------------------------------------------------------------------- /icons/meson.build: -------------------------------------------------------------------------------- 1 | sizes = [16, 22, 24, 32, 48] 2 | names = [ 3 | 'stock_xfburn-audio-cd', 4 | 'stock_xfburn-audio-copy', 5 | 'stock_xfburn-blank-cdrw', 6 | 'stock_xfburn-burn-cd', 7 | 'stock_xfburn-data-copy', 8 | 'stock_xfburn-data-copy', 9 | 'stock_xfburn-format-dvdrw', 10 | 'stock_xfburn-import-session', 11 | 'stock_xfburn-new-data-composition', 12 | 'stock_xfburn', 13 | ] 14 | 15 | foreach name : names 16 | foreach size : sizes 17 | filename = '@0@x@0@'.format(size) / '@0@.png'.format(name) 18 | if fs.is_file(filename) 19 | install_data( 20 | filename, 21 | install_dir: get_option('prefix') / get_option('datadir') / 'icons' / 'hicolor' / '@0@x@0@'.format(size) / 'stock' / 'media', 22 | ) 23 | endif 24 | endforeach 25 | 26 | filename = 'scalable' / '@0@.svg'.format(name) 27 | if fs.is_file(filename) 28 | install_data( 29 | filename, 30 | install_dir: get_option('prefix') / get_option('datadir') / 'icons' / 'hicolor' / 'scalable' / 'stock' / 'media', 31 | ) 32 | endif 33 | endforeach 34 | -------------------------------------------------------------------------------- /xfburn/xfburn-main.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2008 David Mohr 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_MAIN_H__ 20 | #define __XFBURN_MAIN_H__ 21 | 22 | G_BEGIN_DECLS 23 | 24 | void xfburn_main_leave_window (void); 25 | void xfburn_main_enter_window (void); 26 | const gchar *xfburn_main_get_initial_dir (); 27 | gboolean xfburn_main_has_initial_dir (); 28 | 29 | G_END_DECLS 30 | #endif /* __XFBURN_MAIN_H__ */ 31 | -------------------------------------------------------------------------------- /xfburn/xfburn-audio-track-gst.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2008 David Mohr (david@mcbf.net) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_AUDIO_TRACK_GST_H__ 20 | #define __XFBURN_AUDIO_TRACK_GST_H__ 21 | 22 | #include 23 | #include 24 | 25 | #include 26 | 27 | G_BEGIN_DECLS 28 | 29 | #define XFBURN_TYPE_AUDIO_TRACK_GST (xfburn_audio_track_gst_get_type ()) 30 | #define XFBURN_AUDIO_TRACK_GST(p) ((XfburnAudioTrackGst *) p) 31 | 32 | typedef struct { 33 | int fd_in; 34 | off_t size; 35 | } XfburnAudioTrackGst; 36 | 37 | GType xfburn_audio_track_gst_get_type (void); 38 | 39 | G_END_DECLS 40 | 41 | #endif /* __XFBURN_AUDIO_TRACK_GST_H__ */ 42 | -------------------------------------------------------------------------------- /org.xfce.xfburn.appdata.xml.in: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | org.xfce.xfburn 5 | xfburn.desktop 6 | CC-BY-3.0 7 | GPL-2.0+ 8 | Xfburn 9 | A simple CD burning tool 10 | 11 | 12 |

Xfburn is a simple CD/DVD burning tool based on libburnia libraries. 13 | It can blank CD/DVD(-RW)s, burn and create iso images, audio CDs, as 14 | well as burn personal compositions of data to either CD or DVD. It is 15 | stable and under ongoing development. 16 |

17 |
18 | 19 | 20 | 21 | https://docs.xfce.org/_media/apps/xfburn-0.4.1.jpg 22 | 23 | 24 | 25 | 26 | Multimedia 27 | 28 | 29 | https://docs.xfce.org/apps/xfburn/start 30 | https://gitlab.xfce.org/apps/xfburn/ 31 | 32 | xfce4-dev@xfce.org 33 | 34 | 35 | xfburn 36 | 37 | Xfburn 38 | 39 |
40 | -------------------------------------------------------------------------------- /xfburn-popup-menus.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | win.create-dir 7 | Create directory 8 | 9 |
10 |
11 | 12 | win.rename-file 13 | Rename 14 | 15 | 16 | win.remove-file 17 | Remove 18 | 19 |
20 |
21 | 22 |
23 | 24 | win.remove-file 25 | Remove 26 | 27 |
28 |
29 | 30 |
31 | 32 | win.rename-artist 33 | Rename Artist 34 | 35 | 36 | win.rename-title 37 | Rename Title 38 | 39 |
40 |
41 | 42 | win.remove-file 43 | Remove 44 | 45 |
46 |
47 |
48 | -------------------------------------------------------------------------------- /po/POTFILES.in: -------------------------------------------------------------------------------- 1 | # List of source files containing translatable strings. 2 | xfburn/xfburn-global.h 3 | xfburn/xfburn-adding-progress.c 4 | xfburn/xfburn-blank-dialog.c 5 | xfburn/xfburn-burn-data-cd-composition-dialog.c 6 | xfburn/xfburn-burn-data-composition-base-dialog.c 7 | xfburn/xfburn-burn-data-dvd-composition-dialog.c 8 | xfburn/xfburn-burn-image-dialog.c 9 | xfburn/xfburn-composition.c 10 | xfburn/xfburn-compositions-notebook.c 11 | xfburn/xfburn-copy-cd-dialog.c 12 | xfburn/xfburn-copy-cd-progress-dialog.c 13 | xfburn/xfburn-copy-dvd-dialog.c 14 | xfburn/xfburn-create-iso-progress-dialog.c 15 | xfburn/xfburn-data-composition.c 16 | xfburn/xfburn-data-disc-usage.c 17 | xfburn/xfburn-device-box.c 18 | xfburn/xfburn-device-list.c 19 | xfburn/xfburn-directory-browser.c 20 | xfburn/xfburn-file-browser.c 21 | xfburn/xfburn-fs-browser.c 22 | xfburn/xfburn-udev-manager.c 23 | xfburn/xfburn-main.c 24 | xfburn/xfburn-main-window.c 25 | xfburn/xfburn-notebook-tab.c 26 | xfburn/xfburn-perform-burn.c 27 | xfburn/xfburn-preferences-dialog.c 28 | xfburn/xfburn-progress-dialog.c 29 | xfburn/xfburn-settings.c 30 | xfburn/xfburn-utils.c 31 | xfburn/xfburn-welcome-tab.c 32 | xfburn/xfburn-audio-composition.c 33 | xfburn/xfburn-burn-audio-cd-composition-dialog.c 34 | xfburn/xfburn-disc-usage.c 35 | xfburn/xfburn-audio-disc-usage.c 36 | xfburn/xfburn-transcoder-basic.c 37 | xfburn/xfburn-transcoder-gst.c 38 | xfburn/xfburn-transcoder.c 39 | xfburn/xfburn-device.c 40 | xfburn.ui 41 | xfburn-popup-menus.ui 42 | 43 | desktop-integration/thunar-sendto-xfburn.desktop.in 44 | xfburn.desktop.in 45 | org.xfce.xfburn.appdata.xml.in 46 | -------------------------------------------------------------------------------- /xfburn/xfburn-error.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2008 David Mohr 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_ERROR_H__ 20 | #define __XFBURN_ERROR_H__ 21 | 22 | #include 23 | 24 | typedef enum 25 | { 26 | XFBURN_ERROR_NONE, 27 | XFBURN_ERROR_NOT_IMPLEMENTED, 28 | XFBURN_ERROR_STAT, 29 | XFBURN_ERROR_NOT_AUDIO_EXT, 30 | XFBURN_ERROR_NOT_AUDIO_FORMAT, 31 | XFBURN_ERROR_COULD_NOT_OPEN_FILE, 32 | XFBURN_ERROR_BURN_SOURCE, 33 | XFBURN_ERROR_BURN_TRACK, 34 | XFBURN_ERROR_GST_CREATION, 35 | XFBURN_ERROR_GST_STATE, 36 | XFBURN_ERROR_GST_TIMEOUT, 37 | XFBURN_ERROR_GST_DISCOVERER, 38 | XFBURN_ERROR_PIPE, 39 | XFBURN_ERROR_GST_NO_AUDIO, 40 | XFBURN_ERROR_TOO_MANY_AUDIO_TRACKS, 41 | XFBURN_ERROR_MISSING_PLUGIN, 42 | } XfburnError; 43 | 44 | #define XFBURN_ERROR xfburn_error_quark () 45 | 46 | GQuark xfburn_error_quark (void); 47 | 48 | #endif /* __XFBURN_ERROR_H__ */ 49 | -------------------------------------------------------------------------------- /xfburn/xfburn-audio-track.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2008 David Mohr (david@mcbf.net) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_AUDIO_TRACK_H__ 20 | #define __XFBURN_AUDIO_TRACK_H__ 21 | 22 | #include 23 | #include 24 | #include 25 | 26 | G_BEGIN_DECLS 27 | 28 | #define XFBURN_TYPE_AUDIO_TRACK (xfburn_audio_track_get_type ()) 29 | #define XFBURN_AUDIO_TRACK(p) ((XfburnAudioTrack *) p) 30 | 31 | typedef struct 32 | { 33 | gchar *inputfile; 34 | gint pos; 35 | gchar *artist; 36 | gchar *title; 37 | gboolean swap; 38 | 39 | gint length; 40 | 41 | int sectors; 42 | int fd; 43 | struct burn_source *src; 44 | 45 | /* implementations will add extra data here */ 46 | GType type; 47 | gpointer data; 48 | } XfburnAudioTrack; 49 | 50 | GType xfburn_audio_track_get_type (void); 51 | 52 | G_END_DECLS 53 | 54 | #endif /* __XFBURN_AUDIO_TRACK_H__ */ 55 | -------------------------------------------------------------------------------- /xfburn/xfburn-perform-burn.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * Copyright (c) 2008 David Mohr (squisher@xfce.org) 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | */ 19 | 20 | #ifndef __XFBURN_PERFORM_BURN_H__ 21 | #define __XFBURN_PERFORM_BURN_H__ 22 | 23 | #include 24 | #include 25 | 26 | #include 27 | 28 | #include "xfburn-device-box.h" 29 | 30 | gboolean xfburn_set_write_mode (struct burn_write_opts *opts, XfburnWriteMode write_mode, struct burn_disc *disc, 31 | XfburnWriteMode fallback); 32 | 33 | void xfburn_perform_burn_write (GtkWidget *dialog_progress, 34 | struct burn_drive *drive, XfburnWriteMode write_mode, struct burn_write_opts *burn_options, int sector_size, 35 | struct burn_disc *disc, struct burn_source **fifos, int *track_sectors); 36 | 37 | #endif /* __XFBURN_PERFORM_BURN_H__ */ 38 | -------------------------------------------------------------------------------- /xfburn/xfburn-audio-track-gst.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2008 David Mohr (dmohr@mcbf.net) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #include 20 | #include "xfburn-audio-track-gst.h" 21 | 22 | /* prototypes */ 23 | gpointer audio_track_gst_copy (gpointer boxed); 24 | void audio_track_gst_free (gpointer boxed); 25 | 26 | /* implementations */ 27 | GType 28 | xfburn_audio_track_gst_get_type (void) 29 | { 30 | static GType type = 0; 31 | 32 | if (type == 0) { 33 | type = g_boxed_type_register_static ("XfburnAudioTrackGst", audio_track_gst_copy, audio_track_gst_free); 34 | } 35 | 36 | return type; 37 | } 38 | 39 | 40 | gpointer 41 | audio_track_gst_copy (gpointer boxed) 42 | { 43 | XfburnAudioTrackGst *copy; 44 | 45 | copy = g_new0(XfburnAudioTrackGst, 1); 46 | 47 | memcpy (copy, boxed, sizeof (XfburnAudioTrackGst)); 48 | 49 | return copy; 50 | } 51 | 52 | void 53 | audio_track_gst_free (gpointer boxed) 54 | { 55 | g_free (boxed); 56 | } 57 | -------------------------------------------------------------------------------- /xfburn/xfburn-composition.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_COMPOSITION_H__ 20 | #define __XFBURN_COMPOSITION_H__ 21 | 22 | #include 23 | 24 | G_BEGIN_DECLS 25 | 26 | #define XFBURN_TYPE_COMPOSITION (xfburn_composition_get_type ()) 27 | #define XFBURN_COMPOSITION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFBURN_TYPE_COMPOSITION, XfburnComposition)) 28 | #define XFBURN_IS_COMPOSITION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFBURN_TYPE_COMPOSITION)) 29 | #define XFBURN_COMPOSITION_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), XFBURN_TYPE_COMPOSITION, XfburnCompositionInterface)) 30 | 31 | typedef struct _XfburnCompositon XfburnComposition; /* dummy object */ 32 | 33 | typedef struct { 34 | GTypeInterface parent; 35 | } XfburnCompositionInterface; 36 | 37 | GType xfburn_composition_get_type (void); 38 | 39 | G_END_DECLS 40 | #endif /* __XFBURN_COMPOSITION_H__ */ 41 | -------------------------------------------------------------------------------- /xfburn/xfburn-utils.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_UTILS_H__ 20 | #define __XFBURN_UTILS_H__ 21 | 22 | #include 23 | 24 | #include "xfburn-global.h" 25 | 26 | void xfburn_busy_cursor (GtkWidget *); 27 | void xfburn_default_cursor (GtkWidget *); 28 | 29 | gchar *xfburn_humanreadable_filesize (guint64); 30 | guint64 xfburn_calc_dirsize (const gchar *); 31 | GSList * xfburn_make_abosulet_file_list (gint count, gchar *filenames[]); 32 | 33 | void xfburn_browse_for_file (GtkEntry *entry, GtkWindow *parent); 34 | gchar *xfburn_browse_for_files (gboolean allow_directories); 35 | 36 | gboolean xfburn_ask_yes_no (GtkMessageType type, const gchar *primary_text, const gchar *secondary_text); 37 | GtkWidget * xfburn_gtk_button_new_mixed (const gchar *stock_id, const gchar *label); 38 | 39 | void xfburn_capture_libburn_messages (void); 40 | void xfburn_console_libburn_messages (void); 41 | int xfburn_media_profile_to_kb (int media_no); 42 | 43 | void xfburn_add_button_to_toolbar(GtkToolbar *toolbar, const gchar *stock, const gchar *text, const gchar *action, const gchar *tooltip); 44 | GtkWidget * xfburn_create_progress_bar(const gchar *); 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /xfburn/xfburn-composition.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #include "xfburn-composition.h" 20 | 21 | /*******************************************/ 22 | /* interface definition and initialization */ 23 | /*******************************************/ 24 | static void 25 | xfburn_composition_base_init (gpointer g_iface) 26 | { 27 | static gboolean initialized = FALSE; 28 | 29 | if (!initialized) { 30 | initialized = TRUE; 31 | } 32 | } 33 | 34 | GType 35 | xfburn_composition_get_type (void) 36 | { 37 | static GType type = 0; 38 | 39 | if (type == 0) { 40 | static const GTypeInfo info = { 41 | sizeof (XfburnCompositionInterface), 42 | xfburn_composition_base_init, /* base_init */ 43 | NULL, /* base_finalize */ 44 | NULL, /* class_init */ 45 | NULL, /* class_finalize */ 46 | NULL, /* class_data */ 47 | 0, 48 | 0, /* n_preallocs */ 49 | NULL, /* instance_init */ 50 | NULL 51 | }; 52 | 53 | type = g_type_register_static (G_TYPE_INTERFACE, "XfburnComposition", &info, 0); 54 | } 55 | 56 | return type; 57 | } 58 | -------------------------------------------------------------------------------- /xfburn/xfburn-audio-track.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2008 David Mohr (dmohr@mcbf.net) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #include 20 | #include "xfburn-audio-track.h" 21 | 22 | /* prototypes */ 23 | gpointer audio_track_copy (gpointer boxed); 24 | void audio_track_free (gpointer boxed); 25 | 26 | /* implementations */ 27 | GType 28 | xfburn_audio_track_get_type (void) 29 | { 30 | static GType type = 0; 31 | 32 | if (type == 0) { 33 | type = g_boxed_type_register_static ("XfburnAudioTrack", audio_track_copy, audio_track_free); 34 | } 35 | 36 | return type; 37 | } 38 | 39 | 40 | gpointer 41 | audio_track_copy (gpointer boxed) 42 | { 43 | XfburnAudioTrack *atrack = XFBURN_AUDIO_TRACK (boxed); 44 | XfburnAudioTrack *copy; 45 | 46 | copy = g_new0(XfburnAudioTrack, 1); 47 | memcpy (copy, boxed, sizeof (XfburnAudioTrack)); 48 | 49 | copy->inputfile = g_strdup (atrack->inputfile); 50 | 51 | if (atrack->data) 52 | copy->data = g_boxed_copy (atrack->type, atrack->data); 53 | 54 | return copy; 55 | } 56 | 57 | void 58 | audio_track_free (gpointer boxed) 59 | { 60 | XfburnAudioTrack *atrack = XFBURN_AUDIO_TRACK (boxed); 61 | 62 | g_free (atrack->inputfile); 63 | 64 | if (atrack->data) 65 | g_boxed_free (atrack->type, atrack->data); 66 | 67 | g_free (boxed); 68 | } 69 | -------------------------------------------------------------------------------- /xfburn/xfburn-copy-cd-dialog.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_COPY_CD_DIALOG_H__ 20 | #define __XFBURN_COPY_CD_DIALOG_H__ 21 | 22 | #include 23 | 24 | #include 25 | 26 | G_BEGIN_DECLS 27 | 28 | #define XFBURN_TYPE_COPY_CD_DIALOG (xfburn_copy_cd_dialog_get_type ()) 29 | #define XFBURN_COPY_CD_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XFBURN_TYPE_COPY_CD_DIALOG, XfburnCopyCdDialog)) 30 | #define XFBURN_COPY_CD_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), XFBURN_TYPE_COPY_CD_DIALOG, XfburnCopyCdDialogClass)) 31 | #define XFBURN_IS_COPY_CD_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XFBURN_TYPE_COPY_CD_DIALOG)) 32 | #define XFBURN_IS_COPY_CD_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XFBURN_TYPE_COPY_CD_DIALOG)) 33 | #define XFBURN_COPY_CD_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XFBURN_TYPE_COPY_CD_DIALOG, XfburnCopyCdDialogClass)) 34 | 35 | typedef struct 36 | { 37 | XfceTitledDialog parent; 38 | } XfburnCopyCdDialog; 39 | 40 | typedef struct 41 | { 42 | XfceTitledDialogClass parent_class; 43 | } XfburnCopyCdDialogClass; 44 | 45 | GType xfburn_copy_cd_dialog_get_type (void); 46 | 47 | GtkWidget *xfburn_copy_cd_dialog_new (void); 48 | 49 | G_END_DECLS 50 | 51 | #endif /* XFBURN_COPY_CD_DIALOG_H */ 52 | -------------------------------------------------------------------------------- /xfburn/xfburn-data-disc-usage.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_DATA_DISC_USAGE_H__ 20 | #define __XFBURN_DATA_DISC_USAGE_H__ 21 | 22 | #include 23 | #include "xfburn-disc-usage.h" 24 | 25 | G_BEGIN_DECLS 26 | 27 | #define XFBURN_TYPE_DATA_DISC_USAGE (xfburn_data_disc_usage_get_type ()) 28 | #define XFBURN_DATA_DISC_USAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFBURN_TYPE_DATA_DISC_USAGE, XfburnDataDiscUsage)) 29 | #define XFBURN_DATA_DISC_USAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFBURN_TYPE_DATA_DISC_USAGE, XfburnDataDiscUsageClass)) 30 | #define XFBURN_IS_DATA_DISC_USAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFBURN_TYPE_DATA_DISC_USAGE)) 31 | #define XFBURN_IS_DATA_DISC_USAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFBURN_TYPE_DATA_DISC_USAGE)) 32 | #define XFBURN_DATA_DISC_USAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFBURN_TYPE_DATA_DISC_USAGE, XfburnDataDiscUsageClass)) 33 | 34 | typedef struct 35 | { 36 | XfburnDiscUsage disc_usage; 37 | } XfburnDataDiscUsage; 38 | 39 | typedef struct 40 | { 41 | XfburnDiscUsageClass parent_class; 42 | } XfburnDataDiscUsageClass; 43 | 44 | GType xfburn_data_disc_usage_get_type (void); 45 | GtkWidget *xfburn_data_disc_usage_new (void); 46 | 47 | G_END_DECLS 48 | 49 | #endif 50 | -------------------------------------------------------------------------------- /xfburn/xfburn-audio-disc-usage.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_AUDIO_DISC_USAGE_H__ 20 | #define __XFBURN_AUDIO_DISC_USAGE_H__ 21 | 22 | #include 23 | #include "xfburn-disc-usage.h" 24 | 25 | G_BEGIN_DECLS 26 | 27 | #define XFBURN_TYPE_AUDIO_DISC_USAGE (xfburn_audio_disc_usage_get_type ()) 28 | #define XFBURN_AUDIO_DISC_USAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFBURN_TYPE_AUDIO_DISC_USAGE, XfburnAudioDiscUsage)) 29 | #define XFBURN_AUDIO_DISC_USAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFBURN_TYPE_AUDIO_DISC_USAGE, XfburnAudioDiscUsageClass)) 30 | #define XFBURN_IS_AUDIO_DISC_USAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFBURN_TYPE_AUDIO_DISC_USAGE)) 31 | #define XFBURN_IS_AUDIO_DISC_USAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFBURN_TYPE_AUDIO_DISC_USAGE)) 32 | #define XFBURN_AUDIO_DISC_USAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFBURN_TYPE_AUDIO_DISC_USAGE, XfburnAudioDiscUsageClass)) 33 | 34 | typedef struct 35 | { 36 | XfburnDiscUsage disc_usage; 37 | } XfburnAudioDiscUsage; 38 | 39 | typedef struct 40 | { 41 | XfburnDiscUsageClass parent_class; 42 | } XfburnAudioDiscUsageClass; 43 | 44 | GType xfburn_audio_disc_usage_get_type (void); 45 | GtkWidget *xfburn_audio_disc_usage_new (void); 46 | 47 | G_END_DECLS 48 | 49 | #endif 50 | -------------------------------------------------------------------------------- /xfburn/xfburn-copy-dvd-dialog.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_COPY_DVD_DIALOG_H__ 20 | #define __XFBURN_COPY_DVD_DIALOG_H__ 21 | 22 | #include 23 | 24 | #include 25 | 26 | G_BEGIN_DECLS 27 | 28 | #define XFBURN_TYPE_COPY_DVD_DIALOG (xfburn_copy_dvd_dialog_get_type ()) 29 | #define XFBURN_COPY_DVD_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XFBURN_TYPE_COPY_DVD_DIALOG, XfburnCopyDvdDialog)) 30 | #define XFBURN_COPY_DVD_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), XFBURN_TYPE_COPY_DVD_DIALOG, XfburnCopyDvdDialogClass)) 31 | #define XFBURN_IS_COPY_DVD_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XFBURN_TYPE_COPY_DVD_DIALOG)) 32 | #define XFBURN_IS_COPY_DVD_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XFBURN_TYPE_COPY_DVD_DIALOG)) 33 | #define XFBURN_COPY_DVD_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XFBURN_TYPE_COPY_DVD_DIALOG, XfburnCopyDvdDialogClass)) 34 | 35 | typedef struct 36 | { 37 | XfceTitledDialog parent; 38 | } XfburnCopyDvdDialog; 39 | 40 | typedef struct 41 | { 42 | XfceTitledDialogClass parent_class; 43 | } XfburnCopyDvdDialogClass; 44 | 45 | GType xfburn_copy_dvd_dialog_get_type (void); 46 | 47 | GtkWidget *xfburn_copy_dvd_dialog_new (void); 48 | 49 | G_END_DECLS 50 | 51 | #endif /* XFBURN_COPY_DVD_DIALOG_H */ 52 | -------------------------------------------------------------------------------- /xfburn/xfburn-welcome-tab.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * Copyright (c) 2008 David Mohr (david@mcbf.net) 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | */ 19 | 20 | #ifndef __XFBURN_WELCOME_TAB_H__ 21 | #define __XFBURN_WELCOME_TAB_H__ 22 | 23 | #include 24 | 25 | #include "xfburn-compositions-notebook.h" 26 | 27 | G_BEGIN_DECLS 28 | 29 | #define XFBURN_TYPE_WELCOME_TAB (xfburn_welcome_tab_get_type ()) 30 | #define XFBURN_WELCOME_TAB(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XFBURN_TYPE_WELCOME_TAB, XfburnWelcomeTab)) 31 | #define XFBURN_WELCOME_TAB_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), XFBURN_TYPE_WELCOME_TAB, XfburnWelcomeTabClass)) 32 | #define XFBURN_IS_WELCOME_TAB(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XFBURN_TYPE_WELCOME_TAB)) 33 | #define XFBURN_IS_WELCOME_TAB_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XFBURN_TYPE_WELCOME_TAB)) 34 | #define XFBURN_WELCOME_TAB_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XFBURN_TYPE_WELCOME_TAB, XfburnWelcomeTabClass)) 35 | 36 | typedef struct 37 | { 38 | GtkBox parent; 39 | } XfburnWelcomeTab; 40 | 41 | typedef struct 42 | { 43 | GtkBoxClass parent_class; 44 | } XfburnWelcomeTabClass; 45 | 46 | GType xfburn_welcome_tab_get_type (void); 47 | GtkWidget *xfburn_welcome_tab_new (XfburnCompositionsNotebook *notebook, GActionMap *action_group); 48 | 49 | G_END_DECLS 50 | 51 | #endif /* XFBURN_WELCOME_TAB_H */ 52 | -------------------------------------------------------------------------------- /xfburn/xfburn-blank-dialog.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_BLANK_DIALOG_H__ 20 | #define __XFBURN_BLANK_DIALOG_H__ 21 | 22 | #include "xfburn-global.h" 23 | 24 | #include 25 | #include 26 | 27 | G_BEGIN_DECLS 28 | 29 | #define XFBURN_TYPE_BLANK_DIALOG (xfburn_blank_dialog_get_type ()) 30 | #define XFBURN_BLANK_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XFBURN_TYPE_BLANK_DIALOG, XfburnBlankDialog)) 31 | #define XFBURN_BLANK_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), XFBURN_TYPE_BLANK_DIALOG, XfburnBlankDialogClass)) 32 | #define XFBURN_IS_BLANK_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XFBURN_TYPE_BLANK_DIALOG)) 33 | #define XFBURN_IS_BLANK_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XFBURN_TYPE_BLANK_DIALOG)) 34 | #define XFBURN_BLANK_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XFBURN_TYPE_BLANK_DIALOG, XfburnBlankDialogClass)) 35 | 36 | typedef struct 37 | { 38 | XfceTitledDialog parent; 39 | } XfburnBlankDialog; 40 | 41 | typedef struct 42 | { 43 | XfceTitledDialogClass parent_class; 44 | } XfburnBlankDialogClass; 45 | 46 | GType xfburn_blank_dialog_get_type (void); 47 | GtkWidget *xfburn_blank_dialog_new (void); 48 | GtkWidget * xfburn_blank_dialog_new_eject (gboolean eject); 49 | 50 | G_END_DECLS 51 | #endif /* XFBURN_BLANK_DIALOG_H */ 52 | -------------------------------------------------------------------------------- /xfburn/xfburn-preferences-dialog.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_PREFERENCES_DIALOG_H__ 20 | #define __XFBURN_PREFERENCES_DIALOG_H__ 21 | 22 | #include 23 | 24 | G_BEGIN_DECLS 25 | 26 | #define XFBURN_TYPE_PREFERENCES_DIALOG (xfburn_preferences_dialog_get_type ()) 27 | #define XFBURN_PREFERENCES_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XFBURN_TYPE_PREFERENCES_DIALOG, XfburnPreferencesDialog)) 28 | #define XFBURN_PREFERENCES_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), XFBURN_TYPE_PREFERENCES_DIALOG, XfburnPreferencesDialogClass)) 29 | #define XFBURN_IS_PREFERENCES_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XFBURN_TYPE_PREFERENCES_DIALOG)) 30 | #define XFBURN_IS_PREFERENCES_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XFBURN_TYPE_PREFERENCES_DIALOG)) 31 | #define XFBURN_PREFERENCES_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XFBURN_TYPE_PREFERENCES_DIALOG, XfburnPreferencesDialogClass)) 32 | 33 | typedef struct 34 | { 35 | XfceTitledDialog parent; 36 | } XfburnPreferencesDialog; 37 | 38 | typedef struct 39 | { 40 | XfceTitledDialogClass parent_class; 41 | /* Add Signal Functions Here */ 42 | } XfburnPreferencesDialogClass; 43 | 44 | 45 | 46 | GType xfburn_preferences_dialog_get_type (void); 47 | GtkWidget *xfburn_preferences_dialog_new (void); 48 | 49 | G_END_DECLS 50 | 51 | #endif /* XFBURN_PREFERENCES_DIALOG_H */ 52 | -------------------------------------------------------------------------------- /xfburn/xfburn-transcoder-basic.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * Copyright (c) 2008 David Mohr (david@mcbf.net) 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | */ 19 | 20 | #ifndef __XFBURN_TRANSCODER_BASIC_H__ 21 | #define __XFBURN_TRANSCODER_BASIC_H__ 22 | 23 | #include 24 | 25 | #include "xfburn-transcoder.h" 26 | 27 | G_BEGIN_DECLS 28 | 29 | #define XFBURN_TYPE_TRANSCODER_BASIC (xfburn_transcoder_basic_get_type ()) 30 | #define XFBURN_TRANSCODER_BASIC(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XFBURN_TYPE_TRANSCODER_BASIC, XfburnTranscoderBasic)) 31 | #define XFBURN_TRANSCODER_BASIC_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), XFBURN_TYPE_TRANSCODER_BASIC, XfburnTranscoderBasicClass)) 32 | #define XFBURN_IS_TRANSCODER_BASIC(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XFBURN_TYPE_TRANSCODER_BASIC)) 33 | #define XFBURN_IS_TRANSCODER_BASIC_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XFBURN_TYPE_TRANSCODER_BASIC)) 34 | #define XFBURN_TRANSCODER_BASIC_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XFBURN_TYPE_TRANSCODER_BASIC, XfburnTranscoderBasicClass)) 35 | 36 | typedef struct 37 | { 38 | GObject parent; 39 | } XfburnTranscoderBasic; 40 | 41 | typedef struct 42 | { 43 | GObjectClass parent_class; 44 | 45 | } XfburnTranscoderBasicClass; 46 | 47 | GType xfburn_transcoder_basic_get_type (void); 48 | GObject *xfburn_transcoder_basic_new (void); 49 | 50 | G_END_DECLS 51 | 52 | #endif /* XFBURN_TRANSCODER_BASIC_H */ 53 | -------------------------------------------------------------------------------- /xfburn/xfburn-global.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_GLOBAL_H__ 20 | #define __XFBURN_GLOBAL_H__ 21 | 22 | #define BORDER 5 23 | 24 | #define READCD_CAPACITY N_("Capacity:") 25 | #define READCD_PROGRESS N_("addr:") 26 | #define READCD_DONE N_("Time total:") 27 | 28 | #define CDRDAO_LENGTH N_("length") 29 | #define CDRDAO_FLUSHING N_("Flushing cache...") 30 | #define CDRDAO_INSERT N_("Please insert a recordable disc and hit enter") 31 | #define CDRDAO_INSERT_AGAIN N_("Cannot determine disc status - hit enter to try again.") 32 | #define CDRDAO_DONE N_("CD copying finished successfully.") 33 | 34 | /* in reality CDR_1X_SPEED is 176.4 (see libburn.h:1577), but that shouldn't matter */ 35 | #define CDR_1X_SPEED 176 36 | #define DVD_1X_SPEED 1385 37 | #define BD_1X_SPEED 4496 38 | 39 | #define DATA_COMPOSITION_DEFAULT_NAME N_("Data composition") 40 | 41 | #define FIFO_DEFAULT_SIZE 4096 /* in kb, as int */ 42 | 43 | #define AUDIO_BYTES_PER_SECTOR 2352 44 | #define DATA_BYTES_PER_SECTOR 2048 45 | 46 | #define PCM_BYTES_PER_SECS 176400 47 | 48 | #define MAXIMUM_ISO_LEVEL_2_FILE_SIZE 0xFFFFFFFF 49 | #define MAXIMUM_ISO_FILE_SIZE 0x20000000000 50 | 51 | /* DEBUG ONLY */ 52 | 53 | /* do not use the real device, instead make everything write to /dev/null 54 | * Note that this special device only supports one track! */ 55 | //#define DEBUG_NULL_DEVICE 56 | 57 | //#define DEBUG_LIBBURN 1 58 | 59 | #endif 60 | -------------------------------------------------------------------------------- /xfburn/xfburn-transcoder-gst.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * Copyright (c) 2008 David Mohr (david@mcbf.net) 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | */ 19 | 20 | #ifndef __XFBURN_TRANSCODER_GST_H__ 21 | #define __XFBURN_TRANSCODER_GST_H__ 22 | 23 | #ifdef HAVE_GST 24 | 25 | #include 26 | 27 | #include "xfburn-transcoder.h" 28 | 29 | G_BEGIN_DECLS 30 | 31 | #define XFBURN_TYPE_TRANSCODER_GST (xfburn_transcoder_gst_get_type ()) 32 | #define XFBURN_TRANSCODER_GST(o) (G_TYPE_CHECK_INSTANCE_CAST (((gpointer) o), XFBURN_TYPE_TRANSCODER_GST, XfburnTranscoderGst)) 33 | #define XFBURN_TRANSCODER_GST_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), XFBURN_TYPE_TRANSCODER_GST, XfburnTranscoderGstClass)) 34 | #define XFBURN_IS_TRANSCODER_GST(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XFBURN_TYPE_TRANSCODER_GST)) 35 | #define XFBURN_IS_TRANSCODER_GST_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XFBURN_TYPE_TRANSCODER_GST)) 36 | #define XFBURN_TRANSCODER_GST_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XFBURN_TYPE_TRANSCODER_GST, XfburnTranscoderGstClass)) 37 | 38 | typedef struct 39 | { 40 | GObject parent; 41 | } XfburnTranscoderGst; 42 | 43 | typedef struct 44 | { 45 | GObjectClass parent_class; 46 | 47 | } XfburnTranscoderGstClass; 48 | 49 | GType xfburn_transcoder_gst_get_type (void); 50 | GObject *xfburn_transcoder_gst_new (void); 51 | 52 | G_END_DECLS 53 | 54 | #endif /* HAVE_GST */ 55 | #endif /* XFBURN_TRANSCODER_GST_H */ 56 | -------------------------------------------------------------------------------- /xfburn/xfburn-file-browser.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_FILE_BROWSER_H__ 20 | #define __XFBURN_FILE_BROWSER_H__ 21 | 22 | #include 23 | 24 | G_BEGIN_DECLS 25 | 26 | #define XFBURN_TYPE_FILE_BROWSER (xfburn_file_browser_get_type ()) 27 | #define XFBURN_FILE_BROWSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFBURN_TYPE_FILE_BROWSER, XfburnFileBrowser)) 28 | #define XFBURN_FILE_BROWSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFBURN_TYPE_FILE_BROWSER, XfburnFileBrowserClass)) 29 | #define XFBURN_IS_FILE_BROWSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFBURN_TYPE_FILE_BROWSER)) 30 | #define XFBURN_IS_FILE_BROWSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFBURN_TYPE_FILE_BROWSER)) 31 | #define XFBURN_FILE_BROWSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFBURN_TYPE_FILE_BROWSER, XfburnFileBrowserClass)) 32 | 33 | typedef struct 34 | { 35 | GtkHPaned hpaned; 36 | 37 | GtkWidget *fs_browser; 38 | GtkWidget *directory_browser; 39 | } XfburnFileBrowser; 40 | 41 | typedef struct 42 | { 43 | GtkHPanedClass parent_class; 44 | } XfburnFileBrowserClass; 45 | 46 | GType xfburn_file_browser_get_type (void); 47 | 48 | GtkWidget *xfburn_file_browser_new (void); 49 | 50 | void xfburn_file_browser_refresh (XfburnFileBrowser *browser); 51 | gchar *xfburn_file_browser_get_selection (XfburnFileBrowser *browser); 52 | 53 | G_END_DECLS 54 | 55 | #endif 56 | -------------------------------------------------------------------------------- /xfburn/xfburn-fs-browser.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_FS_BROWSER_H__ 20 | #define __XFBURN_FS_BROWSER_H__ 21 | 22 | #include 23 | 24 | G_BEGIN_DECLS 25 | 26 | #define XFBURN_TYPE_FS_BROWSER (xfburn_fs_browser_get_type ()) 27 | #define XFBURN_FS_BROWSER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XFBURN_TYPE_FS_BROWSER, XfburnFsBrowser)) 28 | #define XFBURN_FS_BROWSER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), XFBURN_TYPE_FS_BROWSER, XfburnFsBrowserClass)) 29 | #define XFBURN_IS_FS_BROWSER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XFBURN_TYPE_FS_BROWSER)) 30 | #define XFBURN_IS_FS_BROWSER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XFBURN_TYPE_FS_BROWSER)) 31 | #define XFBURN_FS_BROWSER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XFBURN_TYPE_FS_BROWSER, XfburnFsBrowserClass)) 32 | 33 | typedef struct 34 | { 35 | GtkTreeView parent; 36 | } XfburnFsBrowser; 37 | 38 | typedef struct 39 | { 40 | GtkTreeViewClass parent_class; 41 | } XfburnFsBrowserClass; 42 | 43 | enum 44 | { 45 | FS_BROWSER_COLUMN_ICON, 46 | FS_BROWSER_COLUMN_DIRECTORY, 47 | FS_BROWSER_COLUMN_PATH, 48 | FS_BROWSER_N_COLUMNS 49 | }; 50 | 51 | GType xfburn_fs_browser_get_type (void); 52 | 53 | GtkWidget *xfburn_fs_browser_new (void); 54 | 55 | void xfburn_fs_browser_refresh (XfburnFsBrowser *browser); 56 | gchar * xfburn_fs_browser_get_selection (XfburnFsBrowser *browser); 57 | 58 | G_END_DECLS 59 | 60 | #endif /* __XFBURN_FS_BROWSER_H__ */ 61 | -------------------------------------------------------------------------------- /xfburn/xfburn-burn-image-dialog.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_BURN_IMAGE_DIALOG_H__ 20 | #define __XFBURN_BURN_IMAGE_DIALOG_H__ 21 | 22 | #include 23 | 24 | #include 25 | 26 | #include "xfburn-global.h" 27 | 28 | G_BEGIN_DECLS 29 | 30 | #define XFBURN_TYPE_BURN_IMAGE_DIALOG (xfburn_burn_image_dialog_get_type ()) 31 | #define XFBURN_BURN_IMAGE_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XFBURN_TYPE_BURN_IMAGE_DIALOG, XfburnBurnImageDialog)) 32 | #define XFBURN_BURN_IMAGE_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), XFBURN_TYPE_BURN_IMAGE_DIALOG, XfburnBurnImageDialogClass)) 33 | #define XFBURN_IS_BURN_IMAGE_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XFBURN_TYPE_BURN_IMAGE_DIALOG)) 34 | #define XFBURN_IS_BURN_IMAGE_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XFBURN_TYPE_BURN_IMAGE_DIALOG)) 35 | #define XFBURN_BURN_IMAGE_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XFBURN_TYPE_BURN_IMAGE_DIALOG, XfburnBurnImageDialogClass)) 36 | 37 | typedef struct 38 | { 39 | XfceTitledDialog parent; 40 | } XfburnBurnImageDialog; 41 | 42 | typedef struct 43 | { 44 | XfceTitledDialogClass parent_class; 45 | } XfburnBurnImageDialogClass; 46 | 47 | GType xfburn_burn_image_dialog_get_type (void); 48 | GtkWidget *xfburn_burn_image_dialog_new (void); 49 | void xfburn_burn_image_dialog_set_filechooser_name (GtkWidget * dialog, gchar *name); 50 | 51 | G_END_DECLS 52 | 53 | #endif /* XFBURN_BURN_IMAGE_DIALOG_H */ 54 | -------------------------------------------------------------------------------- /xfburn/xfburn-copy-cd-progress-dialog.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_COPY_CD_PROGRESS_DIALOG_H__ 20 | #define __XFBURN_COPY_CD_PROGRESS_DIALOG_H__ 21 | 22 | #include 23 | 24 | #include "xfburn-progress-dialog.h" 25 | 26 | G_BEGIN_DECLS 27 | 28 | #define XFBURN_TYPE_COPY_CD_PROGRESS_DIALOG (xfburn_copy_cd_progress_dialog_get_type ()) 29 | #define XFBURN_COPY_CD_PROGRESS_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XFBURN_TYPE_COPY_CD_PROGRESS_DIALOG, XfburnCopyCdProgressDialog)) 30 | #define XFBURN_COPY_CD_PROGRESS_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), XFBURN_TYPE_COPY_CD_PROGRESS_DIALOG, XfburnCopyCdProgressDialogClass)) 31 | #define XFBURN_IS_COPY_CD_PROGRESS_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XFBURN_TYPE_COPY_CD_PROGRESS_DIALOG)) 32 | #define XFBURN_IS_COPY_CD_PROGRESS_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XFBURN_TYPE_COPY_CD_PROGRESS_DIALOG)) 33 | #define XFBURN_COPY_CD_PROGRESS_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XFBURN_TYPE_COPY_CD_PROGRESS_DIALOG, XfburnCopyCdProgressDialogClass)) 34 | 35 | typedef struct { 36 | XfburnProgressDialog parent; 37 | } XfburnCopyCdProgressDialog; 38 | 39 | typedef struct { 40 | XfburnProgressDialogClass parent_class; 41 | /* Add Signal Functions Here */ 42 | } XfburnCopyCdProgressDialogClass; 43 | 44 | GType xfburn_copy_cd_progress_dialog_get_type (void); 45 | GtkWidget *xfburn_copy_cd_progress_dialog_new (void); 46 | 47 | G_END_DECLS 48 | 49 | #endif /* XFBURN_COPY_CD_PROGRESS_DIALOG_H */ 50 | -------------------------------------------------------------------------------- /xfburn/xfburn-notebook-tab.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_NOTEBOOK_TAB_H__ 20 | #define __XFBURN_NOTEBOOK_TAB_H__ 21 | 22 | #include 23 | 24 | G_BEGIN_DECLS 25 | 26 | #define XFBURN_TYPE_NOTEBOOK_TAB (xfburn_notebook_tab_get_type ()) 27 | #define XFBURN_NOTEBOOK_TAB(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XFBURN_TYPE_NOTEBOOK_TAB, XfburnNotebookTab)) 28 | #define XFBURN_NOTEBOOK_TAB_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), XFBURN_TYPE_NOTEBOOK_TAB, XfburnNotebookTabClass)) 29 | #define XFBURN_IS_NOTEBOOK_TAB(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XFBURN_TYPE_NOTEBOOK_TAB)) 30 | #define XFBURN_IS_NOTEBOOK_TAB_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XFBURN_TYPE_NOTEBOOK_TAB)) 31 | #define XFBURN_NOTEBOOK_TAB_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XFBURN_TYPE_NOTEBOOK_TAB, XfburnNotebookTabClass)) 32 | 33 | typedef struct 34 | { 35 | GtkHBox parent; 36 | } XfburnNotebookTab; 37 | 38 | typedef struct 39 | { 40 | GtkHBoxClass parent_class; 41 | 42 | void (*button_close_clicked) (XfburnNotebookTab *tab); 43 | } XfburnNotebookTabClass; 44 | 45 | GType xfburn_notebook_tab_get_type (void); 46 | 47 | GtkWidget *xfburn_notebook_tab_new (const gchar *label, gboolean show_button_close); 48 | 49 | void xfburn_notebook_tab_set_label (XfburnNotebookTab *tab, const gchar *label); 50 | 51 | void xfburn_notebook_tab_show_button_close (XfburnNotebookTab *tab); 52 | void xfburn_notebook_tab_show_button_hide (XfburnNotebookTab *tab); 53 | 54 | G_END_DECLS 55 | #endif /* XFBURN_NOTEBOOK_TAB_H */ 56 | -------------------------------------------------------------------------------- /TODO: -------------------------------------------------------------------------------- 1 | user visible 2 | ============ 3 | 4 | - remove temporary files 5 | - use more thunar-vfs / gio 6 | - add verification of written disc 7 | - add blu-ray support 8 | - add disc info dialog 9 | 10 | various fixes and changes 11 | ========================= 12 | 13 | - cleanup code 14 | - remove duplicated code fragments, in particular 15 | - the burning backend, and [started] 16 | - fix available writing speeds detection (maybe task for libburn?) 17 | - only allow usage of drives with matching capabilities 18 | - when burning ISO image, only show drives capable of 19 | burning to desired disk, or report that we cannot 20 | burn the image if there is no capable drive 21 | (say somebody wants to burn DVD image on 22 | a drive not capable of doing so) 23 | - when burning composition, only show drives capable of 24 | burning desired composition, or report that we cannot 25 | burn the image if no capable drives are found, and 26 | leave all the files previously 27 | added by the user in composition so he could tweak it 28 | - recode copy disk with libburn 29 | - update columns resizing by using column enum index 30 | - take advantage of gvfs in addition to thunar-vfs until thunar-vfs gets deprecated 31 | - disable device selection before image is selected 32 | - once image is selected, populate device selection box 33 | only with appropriate devices (i.e. if it's 1200MB image, 34 | we can't burn it on cd-writer). 35 | - if no suitable writer is found, use that red label thingy 36 | to inform the user 37 | - determine if it's worth it to add advanced burn options dialog to 38 | toggle rockridge and joliet extensions / iso_write_opts profiles 39 | - check for memory leaks while adding files 40 | - check if all the enter/leaving of gdk threads slows adding down 41 | - aborting the adding process can lead to invalid an composition size, 42 | or invalid size of a composition item 43 | disc status should get refreshed 44 | - cairo animation for blanking progress 45 | - allow usage of gtk bookmarks 46 | - make sure that an error pops up if libburn can't grab the drive 47 | - make sure there is always content in the media status label 48 | - find out how to identify a burner from the hal listing, see bug 4957 49 | - fix crash when the user tries to burn a composition with a directory added 50 | from within xfburn 51 | - multisession support 52 | -------------------------------------------------------------------------------- /xfburn/xfburn-create-iso-progress-dialog.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_CREATE_ISO_PROGRESS_DIALOG_H__ 20 | #define __XFBURN_CREATE_ISO_PROGRESS_DIALOG_H__ 21 | 22 | #include 23 | 24 | #include "xfburn-progress-dialog.h" 25 | 26 | G_BEGIN_DECLS 27 | 28 | #define XFBURN_TYPE_CREATE_ISO_PROGRESS_DIALOG (xfburn_create_iso_progress_dialog_get_type ()) 29 | #define XFBURN_CREATE_ISO_PROGRESS_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XFBURN_TYPE_CREATE_ISO_PROGRESS_DIALOG, XfburnCreateIsoProgressDialog)) 30 | #define XFBURN_CREATE_ISO_PROGRESS_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), XFBURN_TYPE_CREATE_ISO_PROGRESS_DIALOG, XfburnCreateIsoProgressDialogClass)) 31 | #define XFBURN_IS_CREATE_ISO_PROGRESS_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XFBURN_TYPE_CREATE_ISO_PROGRESS_DIALOG)) 32 | #define XFBURN_IS_CREATE_ISO_PROGRESS_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XFBURN_TYPE_CREATE_ISO_PROGRESS_DIALOG)) 33 | #define XFBURN_CREATE_ISO_PROGRESS_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XFBURN_TYPE_CREATE_ISO_PROGRESS_DIALOG, XfburnCreateIsoProgressDialogClass)) 34 | 35 | typedef struct 36 | { 37 | XfburnProgressDialog parent; 38 | } XfburnCreateIsoProgressDialog; 39 | 40 | typedef struct 41 | { 42 | XfburnProgressDialogClass parent_class; 43 | /* Add Signal Functions Here */ 44 | } XfburnCreateIsoProgressDialogClass; 45 | 46 | GType xfburn_create_iso_progress_dialog_get_type (void); 47 | GtkWidget *xfburn_create_iso_progress_dialog_new (void); 48 | 49 | G_END_DECLS 50 | 51 | #endif /* XFBURN_CREATE_ISO_PROGRESS_DIALOG_H */ 52 | -------------------------------------------------------------------------------- /xfburn/xfburn-data-composition.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_DATA_COMPOSITION_H__ 20 | #define __XFBURN_DATA_COMPOSITION_H__ 21 | 22 | #include 23 | 24 | G_BEGIN_DECLS 25 | 26 | #define XFBURN_TYPE_DATA_COMPOSITION (xfburn_data_composition_get_type ()) 27 | #define XFBURN_DATA_COMPOSITION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFBURN_TYPE_DATA_COMPOSITION, XfburnDataComposition)) 28 | #define XFBURN_DATA_COMPOSITION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFBURN_TYPE_DATA_COMPOSITION, XfburnDataCompositionClass)) 29 | #define XFBURN_IS_DATA_COMPOSITION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFBURN_TYPE_DATA_COMPOSITION)) 30 | #define XFBURN_IS_DATA_COMPOSITION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFBURN_TYPE_DATA_COMPOSITION)) 31 | #define XFBURN_DATA_COMPOSITION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFBURN_TYPE_DATA_COMPOSITION, XfburnDataCompositionClass)) 32 | 33 | typedef struct 34 | { 35 | GtkVBox vbox; 36 | } XfburnDataComposition; 37 | 38 | typedef struct 39 | { 40 | GtkVBoxClass parent_class; 41 | } XfburnDataCompositionClass; 42 | 43 | enum 44 | { 45 | DATA_COMPOSITION_DND_TARGET_INSIDE, 46 | DATA_COMPOSITION_DND_TARGET_TEXT_PLAIN, 47 | DATA_COMPOSITION_DND_TARGET_TEXT_URI_LIST, 48 | }; 49 | 50 | GType xfburn_data_composition_get_type (void); 51 | 52 | GtkWidget *xfburn_data_composition_new (void); 53 | void xfburn_data_composition_add_files (XfburnDataComposition *content, GSList * filelist); 54 | void xfburn_data_composition_hide_toolbar (XfburnDataComposition *content); 55 | void xfburn_data_composition_show_toolbar (XfburnDataComposition *content); 56 | 57 | 58 | G_END_DECLS 59 | #endif 60 | -------------------------------------------------------------------------------- /xfburn/xfburn-settings.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_SETTINGS_H__ 20 | #define __XFBURN_SETTINGS_H__ 21 | 22 | #include 23 | #include 24 | 25 | G_BEGIN_DECLS 26 | 27 | #define XFBURN_TYPE_SETTINGS (xfburn_settings_get_type ()) 28 | #define XFBURN_SETTINGS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XFBURN_TYPE_SETTINGS, XfburnSettings)) 29 | #define XFBURN_SETTINGS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), XFBURN_TYPE_SETTINGS, XfburnSettingsClass)) 30 | #define XFBURN_IS_SETTINGS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XFBURN_TYPE_SETTINGS)) 31 | #define XFBURN_IS_SETTINGS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XFBURN_TYPE_SETTINGS)) 32 | #define XFBURN_SETTINGS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XFBURN_TYPE_SETTINGS, XfburnSettingsClass)) 33 | typedef struct XfburnSettingsPrivate XfburnSettingsPrivate; 34 | 35 | typedef struct 36 | { 37 | GObject parent; 38 | } XfburnSettings; 39 | 40 | typedef struct 41 | { 42 | GObjectClass parent_class; 43 | } XfburnSettingsClass; 44 | 45 | GType xfburn_settings_get_type (void); 46 | 47 | void xfburn_settings_init_external (void); 48 | void xfburn_settings_free (void); 49 | void xfburn_settings_flush (void); 50 | 51 | gint xfburn_settings_get_boolean (const gchar *key, gboolean fallback); 52 | gint xfburn_settings_get_int (const gchar *key, gint fallback); 53 | gchar *xfburn_settings_get_string (const gchar *key, const gchar *fallback); 54 | 55 | void xfburn_settings_set_boolean (const gchar *key, gboolean value); 56 | void xfburn_settings_set_int (const gchar *key, gint value); 57 | void xfburn_settings_set_string (const gchar *key, const gchar *value); 58 | 59 | G_END_DECLS 60 | #endif 61 | -------------------------------------------------------------------------------- /xfburn/xfburn-device.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2009 David Mohr 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | * 18 | */ 19 | 20 | #ifndef __XFBURN_DEVICE__ 21 | #define __XFBURN_DEVICE__ 22 | 23 | #include 24 | #include 25 | 26 | G_BEGIN_DECLS 27 | 28 | #define XFBURN_TYPE_DEVICE xfburn_device_get_type() 29 | 30 | #define XFBURN_DEVICE(obj) \ 31 | (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFBURN_TYPE_DEVICE, XfburnDevice)) 32 | 33 | #define XFBURN_DEVICE_CLASS(klass) \ 34 | (G_TYPE_CHECK_CLASS_CAST ((klass), XFBURN_TYPE_DEVICE, XfburnDeviceClass)) 35 | 36 | #define XFBURN_IS_DEVICE(obj) \ 37 | (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFBURN_TYPE_DEVICE)) 38 | 39 | #define XFBURN_IS_DEVICE_CLASS(klass) \ 40 | (G_TYPE_CHECK_CLASS_TYPE ((klass), XFBURN_TYPE_DEVICE)) 41 | 42 | #define XFBURN_DEVICE_GET_CLASS(obj) \ 43 | (G_TYPE_INSTANCE_GET_CLASS ((obj), XFBURN_TYPE_DEVICE, XfburnDeviceClass)) 44 | 45 | typedef struct { 46 | GObject parent; 47 | } XfburnDevice; 48 | 49 | typedef struct { 50 | GObjectClass parent_class; 51 | } XfburnDeviceClass; 52 | 53 | GType xfburn_device_get_type (void); 54 | 55 | XfburnDevice* xfburn_device_new (void); 56 | 57 | void xfburn_device_fillin_libburn_info (XfburnDevice *device, struct burn_drive_info *drive); 58 | gboolean xfburn_device_refresh_info (XfburnDevice * device, gboolean get_speed_info); 59 | gboolean xfburn_device_grab (XfburnDevice * device, struct burn_drive_info **drive_info); 60 | gboolean xfburn_device_release (struct burn_drive_info *drive_info, gboolean eject); 61 | const gchar * xfburn_device_set_name (XfburnDevice *device, const gchar *vendor, const gchar *product); 62 | gboolean xfburn_device_can_burn (XfburnDevice *device); 63 | gboolean xfburn_device_can_dummy_write (XfburnDevice *device); 64 | 65 | G_END_DECLS 66 | 67 | #endif /* __XFBURN_DEVICE__ */ 68 | 69 | -------------------------------------------------------------------------------- /xfburn/xfburn-audio-composition.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_AUDIO_COMPOSITION_H__ 20 | #define __XFBURN_AUDIO_COMPOSITION_H__ 21 | 22 | #include 23 | 24 | #include "xfburn-transcoder.h" 25 | 26 | G_BEGIN_DECLS 27 | 28 | #define XFBURN_TYPE_AUDIO_COMPOSITION (xfburn_audio_composition_get_type ()) 29 | #define XFBURN_AUDIO_COMPOSITION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFBURN_TYPE_AUDIO_COMPOSITION, XfburnAudioComposition)) 30 | #define XFBURN_AUDIO_COMPOSITION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFBURN_TYPE_AUDIO_COMPOSITION, XfburnAudioCompositionClass)) 31 | #define XFBURN_IS_AUDIO_COMPOSITION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFBURN_TYPE_AUDIO_COMPOSITION)) 32 | #define XFBURN_IS_AUDIO_COMPOSITION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFBURN_TYPE_AUDIO_COMPOSITION)) 33 | #define XFBURN_AUDIO_COMPOSITION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFBURN_TYPE_AUDIO_COMPOSITION, XfburnAudioCompositionClass)) 34 | 35 | typedef struct 36 | { 37 | GtkVBox vbox; 38 | } XfburnAudioComposition; 39 | 40 | typedef struct 41 | { 42 | GtkVBoxClass parent_class; 43 | } XfburnAudioCompositionClass; 44 | 45 | enum 46 | { 47 | AUDIO_COMPOSITION_DND_TARGET_INSIDE, 48 | AUDIO_COMPOSITION_DND_TARGET_TEXT_PLAIN, 49 | AUDIO_COMPOSITION_DND_TARGET_TEXT_URI_LIST, 50 | }; 51 | 52 | GType xfburn_audio_composition_get_type (void); 53 | 54 | GtkWidget *xfburn_audio_composition_new (void); 55 | void xfburn_audio_composition_add_files (XfburnAudioComposition *content, GSList * filelist); 56 | void xfburn_audio_composition_hide_toolbar (XfburnAudioComposition *content); 57 | void xfburn_audio_composition_show_toolbar (XfburnAudioComposition *content); 58 | 59 | 60 | G_END_DECLS 61 | #endif 62 | -------------------------------------------------------------------------------- /xfburn/xfburn-adding-progress.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_ADDING_PROGRESS_H__ 20 | #define __XFBURN_ADDING_PROGRESS_H__ 21 | 22 | #include 23 | 24 | #include "xfburn-data-composition.h" 25 | 26 | G_BEGIN_DECLS 27 | #define XFBURN_TYPE_ADDING_PROGRESS (xfburn_adding_progress_get_type ()) 28 | #define XFBURN_ADDING_PROGRESS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFBURN_TYPE_ADDING_PROGRESS, XfburnAddingProgress)) 29 | #define XFBURN_ADDING_PROGRESS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFBURN_TYPE_ADDING_PROGRESS, XfburnAddingProgressClass)) 30 | #define XFBURN_IS_ADDING_PROGRESS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFBURN_TYPE_ADDING_PROGRESS)) 31 | #define XFBURN_IS_ADDING_PROGRESS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFBURN_TYPE_ADDING_PROGRESS)) 32 | #define XFBURN_ADDING_PROGRESS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFBURN_TYPE_ADDING_PROGRESS, XfburnAddingProgressClass)) 33 | 34 | typedef struct 35 | { 36 | GtkWindow window; 37 | } XfburnAddingProgress; 38 | 39 | typedef struct 40 | { 41 | GtkWindowClass parent_class; 42 | void (*adding_done) (XfburnAddingProgress *progress, XfburnDataComposition *dc); 43 | } XfburnAddingProgressClass; 44 | 45 | GType xfburn_adding_progress_get_type (void); 46 | 47 | XfburnAddingProgress *xfburn_adding_progress_new (void); 48 | void xfburn_adding_progress_pulse (XfburnAddingProgress *adding_progress); 49 | void xfburn_adding_progress_wait_until_done (XfburnAddingProgress *adding_progress); 50 | void xfburn_adding_progress_done (XfburnAddingProgress *adding_progress); 51 | gboolean xfburn_adding_progress_is_aborted (XfburnAddingProgress *adding_progress); 52 | void xfburn_adding_progress_show (XfburnAddingProgress *adding_progress); 53 | 54 | G_END_DECLS 55 | #endif 56 | -------------------------------------------------------------------------------- /xfburn/xfburn-main-window.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_MAIN_WINDOW_H__ 20 | #define __XFBURN_MAIN_WINDOW_H__ 21 | 22 | #include 23 | 24 | #include "xfburn-data-composition.h" 25 | #include "xfburn-file-browser.h" 26 | 27 | G_BEGIN_DECLS 28 | 29 | #define XFBURN_TYPE_MAIN_WINDOW (xfburn_main_window_get_type ()) 30 | #define XFBURN_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFBURN_TYPE_MAIN_WINDOW, XfburnMainWindow)) 31 | #define XFBURN_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFBURN_TYPE_MAIN_WINDOW, XfburnMainWindowClass)) 32 | #define XFBURN_IS_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFBURN_TYPE_MAIN_WINDOW)) 33 | #define XFBURN_IS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFBURN_TYPE_MAIN_WINDOW)) 34 | #define XFBURN_MAIN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFBURN_TYPE_MAIN_WINDOW, XfburnMainWindowClass)) 35 | 36 | typedef void (* gActionCallback) (GSimpleAction *,GVariant *,gpointer); 37 | 38 | typedef struct 39 | { 40 | GtkWindow window; 41 | } XfburnMainWindow; 42 | 43 | typedef struct 44 | { 45 | GtkWindowClass parent_class; 46 | } XfburnMainWindowClass; 47 | 48 | GType xfburn_main_window_get_type (void); 49 | 50 | GtkWidget *xfburn_main_window_new (void); 51 | XfburnMainWindow *xfburn_main_window_get_instance (void); 52 | 53 | GtkUIManager *xfburn_main_window_get_ui_manager (XfburnMainWindow *window); 54 | XfburnFileBrowser *xfburn_main_window_get_file_browser (XfburnMainWindow *window); 55 | 56 | void xfburn_main_window_add_data_composition_with_files (XfburnMainWindow *window, int filec, char **filenames); 57 | void xfburn_main_window_add_audio_composition_with_files (XfburnMainWindow *window, int filec, char **filenames); 58 | 59 | G_END_DECLS 60 | #endif 61 | -------------------------------------------------------------------------------- /xfburn/xfburn-burn-data-dvd-composition-dialog.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_BURN_DATA_DVD_COMPOSITION_DIALOG_H__ 20 | #define __XFBURN_BURN_DATA_DVD_COMPOSITION_DIALOG_H__ 21 | 22 | #include 23 | #include 24 | 25 | #include 26 | #include "xfburn-burn-data-composition-base-dialog.h" 27 | 28 | G_BEGIN_DECLS 29 | 30 | #define XFBURN_TYPE_BURN_DATA_DVD_COMPOSITION_DIALOG (xfburn_burn_data_dvd_composition_dialog_get_type ()) 31 | #define XFBURN_BURN_DATA_DVD_COMPOSITION_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XFBURN_TYPE_BURN_DATA_DVD_COMPOSITION_DIALOG, XfburnBurnDataDvdCompositionDialog)) 32 | #define XFBURN_BURN_DATA_DVD_COMPOSITION_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), XFBURN_TYPE_BURN_DATA_DVD_COMPOSITION_DIALOG, XfburnBurnDataDvdCompositionDialogClass)) 33 | #define XFBURN_IS_BURN_DATA_DVD_COMPOSITION_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XFBURN_TYPE_BURN_DATA_DVD_COMPOSITION_DIALOG)) 34 | #define XFBURN_IS_BURN_DATA_DVD_COMPOSITION_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XFBURN_TYPE_BURN_DATA_DVD_COMPOSITION_DIALOG)) 35 | #define XFBURN_BURN_DATA_DVD_COMPOSITION_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XFBURN_TYPE_BURN_DATA_DVD_COMPOSITION_DIALOG, XfburnBurnDataDvdCompositionDialogClass)) 36 | 37 | typedef struct 38 | { 39 | XfburnBurnDataCompositionBaseDialog parent; 40 | } XfburnBurnDataDvdCompositionDialog; 41 | 42 | typedef struct 43 | { 44 | XfburnBurnDataCompositionBaseDialogClass parent_class; 45 | } XfburnBurnDataDvdCompositionDialogClass; 46 | 47 | GType xfburn_burn_data_dvd_composition_dialog_get_type (void); 48 | 49 | GtkWidget *xfburn_burn_data_dvd_composition_dialog_new (IsoImage *image); 50 | 51 | G_END_DECLS 52 | #endif /* XFBURN_BURN_DATA_DVD_COMPOSITION_DIALOG_H */ 53 | -------------------------------------------------------------------------------- /xfburn/xfburn-burn-data-cd-composition-dialog.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2007 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_BURN_DATA_CD_COMPOSITION_DIALOG_H__ 20 | #define __XFBURN_BURN_DATA_CD_COMPOSITION_DIALOG_H__ 21 | 22 | #include 23 | #include 24 | 25 | #include 26 | #include "xfburn-burn-data-composition-base-dialog.h" 27 | 28 | G_BEGIN_DECLS 29 | 30 | #define XFBURN_TYPE_BURN_DATA_CD_COMPOSITION_DIALOG (xfburn_burn_data_cd_composition_dialog_get_type ()) 31 | #define XFBURN_BURN_DATA_CD_COMPOSITION_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XFBURN_TYPE_BURN_DATA_CD_COMPOSITION_DIALOG, XfburnBurnDataCdCompositionDialog)) 32 | #define XFBURN_BURN_DATA_CD_COMPOSITION_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), XFBURN_TYPE_BURN_DATA_CD_COMPOSITION_DIALOG, XfburnBurnDataCdCompositionDialogClass)) 33 | #define XFBURN_IS_BURN_DATA_CD_COMPOSITION_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XFBURN_TYPE_BURN_DATA_CD_COMPOSITION_DIALOG)) 34 | #define XFBURN_IS_BURN_DATA_CD_COMPOSITION_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XFBURN_TYPE_BURN_DATA_CD_COMPOSITION_DIALOG)) 35 | #define XFBURN_BURN_DATA_CD_COMPOSITION_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XFBURN_TYPE_BURN_DATA_CD_COMPOSITION_DIALOG, XfburnBurnDataCdCompositionDialogClass)) 36 | 37 | typedef struct 38 | { 39 | XfburnBurnDataCompositionBaseDialog parent; 40 | } XfburnBurnDataCdCompositionDialog; 41 | 42 | typedef struct 43 | { 44 | XfburnBurnDataCompositionBaseDialogClass parent_class; 45 | } XfburnBurnDataCdCompositionDialogClass; 46 | 47 | GType xfburn_burn_data_cd_composition_dialog_get_type (void); 48 | 49 | GtkWidget *xfburn_burn_data_cd_composition_dialog_new (IsoImage *image, gboolean has_default_name); 50 | 51 | G_END_DECLS 52 | #endif /* XFBURN_BURN_DATA_CD_COMPOSITION_DIALOG_H */ 53 | -------------------------------------------------------------------------------- /xfburn/xfburn-udev-manager.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * Copyright (c) 2008 David Mohr (david@mcbf.net) 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | */ 19 | 20 | #ifndef __XFBURN_UDEV_MANAGER_H__ 21 | #define __XFBURN_UDEV_MANAGER_H__ 22 | 23 | #ifdef HAVE_GUDEV 24 | 25 | #include 26 | 27 | #include "xfburn-progress-dialog.h" 28 | #include "xfburn-device-list.h" 29 | 30 | G_BEGIN_DECLS 31 | 32 | #define XFBURN_TYPE_UDEV_MANAGER (xfburn_udev_manager_get_type ()) 33 | #define XFBURN_UDEV_MANAGER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XFBURN_TYPE_UDEV_MANAGER, XfburnUdevManager)) 34 | #define XFBURN_UDEV_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), XFBURN_TYPE_UDEV_MANAGER, XfburnUdevManagerClass)) 35 | #define XFBURN_IS_UDEV_MANAGER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XFBURN_TYPE_UDEV_MANAGER)) 36 | #define XFBURN_IS_UDEV_MANAGER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XFBURN_TYPE_UDEV_MANAGER)) 37 | #define XFBURN_UDEV_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XFBURN_TYPE_UDEV_MANAGER, XfburnUdevManagerClass)) 38 | 39 | typedef struct 40 | { 41 | GObject parent; 42 | } XfburnUdevManager; 43 | 44 | typedef struct 45 | { 46 | XfburnProgressDialogClass parent_class; 47 | 48 | void (*volume_changed) (XfburnUdevManager *udevman); 49 | } XfburnUdevManagerClass; 50 | 51 | GType xfburn_udev_manager_get_type (void); 52 | gchar *xfburn_udev_manager_create_global (void); 53 | XfburnUdevManager * xfburn_udev_manager_get_global (void); 54 | void xfburn_udev_manager_shutdown (void); 55 | void xfburn_udev_manager_send_volume_changed (void); 56 | GList *xfburn_udev_manager_get_devices (XfburnUdevManager *udevman, gint *drives, gint *burners); 57 | gboolean xfburn_udev_manager_check_ask_umount (XfburnUdevManager *udevman, XfburnDevice *device); 58 | 59 | G_END_DECLS 60 | 61 | #endif /* HAVE_GUDEV */ 62 | 63 | #endif /* XFBURN_UDEV_MANAGER_H */ 64 | -------------------------------------------------------------------------------- /xfburn/xfburn-directory-browser.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_DIRECTORY_BROWSER_H__ 20 | #define __XFBURN_DIRECTORY_BROWSER_H__ 21 | 22 | #include 23 | 24 | G_BEGIN_DECLS 25 | 26 | #define XFBURN_TYPE_DIRECTORY_BROWSER (xfburn_directory_browser_get_type ()) 27 | #define XFBURN_DIRECTORY_BROWSER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFBURN_TYPE_DIRECTORY_BROWSER, XfburnDirectoryBrowser)) 28 | #define XFBURN_DIRECTORY_BROWSER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFBURN_TYPE_DIRECTORY_BROWSER, XfburnDirectoryBrowserClass)) 29 | #define XFBURN_IS_DIRECTORY_BROWSER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFBURN_TYPE_DIRECTORY_BROWSER)) 30 | #define XFBURN_IS_DIRECTORY_BROWSER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFBURN_TYPE_DIRECTORY_BROWSER)) 31 | #define XFBURN_DIRECTORY_BROWSER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFBURN_TYPE_DIRECTORY_BROWSER, XfburnDirectoryBrowserClass)) 32 | 33 | typedef struct 34 | { 35 | GtkTreeView treeview; 36 | } XfburnDirectoryBrowser; 37 | 38 | typedef struct 39 | { 40 | GtkTreeViewClass parent_class; 41 | } XfburnDirectoryBrowserClass; 42 | 43 | enum 44 | { 45 | DIRECTORY_BROWSER_COLUMN_ICON, 46 | DIRECTORY_BROWSER_COLUMN_FILE, 47 | DIRECTORY_BROWSER_COLUMN_HUMANSIZE, 48 | DIRECTORY_BROWSER_COLUMN_SIZE, 49 | DIRECTORY_BROWSER_COLUMN_TYPE, 50 | DIRECTORY_BROWSER_COLUMN_PATH, 51 | DIRECTORY_BROWSER_N_COLUMNS 52 | }; 53 | 54 | 55 | GType xfburn_directory_browser_get_type (void); 56 | 57 | GtkWidget *xfburn_directory_browser_new (void); 58 | 59 | void xfburn_directory_browser_load_path (XfburnDirectoryBrowser * browser, const gchar * path); 60 | void xfburn_directory_browser_refresh (XfburnDirectoryBrowser * browser); 61 | 62 | gchar *xfburn_directory_browser_get_selection (XfburnDirectoryBrowser * browser); 63 | 64 | G_END_DECLS 65 | 66 | #endif 67 | -------------------------------------------------------------------------------- /xfburn/xfburn-burn-audio-cd-composition-dialog.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2007 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_BURN_AUDIO_CD_COMPOSITION_DIALOG_H__ 20 | #define __XFBURN_BURN_AUDIO_CD_COMPOSITION_DIALOG_H__ 21 | 22 | #include 23 | #include 24 | 25 | #include 26 | 27 | G_BEGIN_DECLS 28 | 29 | #define XFBURN_TYPE_BURN_AUDIO_CD_COMPOSITION_DIALOG (xfburn_burn_audio_cd_composition_dialog_get_type ()) 30 | #define XFBURN_BURN_AUDIO_CD_COMPOSITION_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XFBURN_TYPE_BURN_AUDIO_CD_COMPOSITION_DIALOG, XfburnBurnAudioCdCompositionDialog)) 31 | #define XFBURN_BURN_AUDIO_CD_COMPOSITION_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), XFBURN_TYPE_BURN_AUDIO_CD_COMPOSITION_DIALOG, XfburnBurnAudioCdCompositionDialogClass)) 32 | #define XFBURN_IS_BURN_AUDIO_CD_COMPOSITION_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XFBURN_TYPE_BURN_AUDIO_CD_COMPOSITION_DIALOG)) 33 | #define XFBURN_IS_BURN_AUDIO_CD_COMPOSITION_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XFBURN_TYPE_BURN_AUDIO_CD_COMPOSITION_DIALOG)) 34 | #define XFBURN_BURN_AUDIO_CD_COMPOSITION_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XFBURN_TYPE_BURN_AUDIO_CD_COMPOSITION_DIALOG, XfburnBurnAudioCdCompositionDialogClass)) 35 | 36 | enum { 37 | XFBURN_BURN_AUDIO_CD_COMPOSITION_DIALOG_CANCEL = -1, 38 | XFBURN_BURN_AUDIO_CD_COMPOSITION_DIALOG_BURN, 39 | XFBURN_BURN_AUDIO_CD_COMPOSITION_DIALOG_BLANK, 40 | }; 41 | 42 | typedef struct 43 | { 44 | XfceTitledDialog parent; 45 | } XfburnBurnAudioCdCompositionDialog; 46 | 47 | typedef struct 48 | { 49 | XfceTitledDialogClass parent_class; 50 | } XfburnBurnAudioCdCompositionDialogClass; 51 | 52 | GType xfburn_burn_audio_cd_composition_dialog_get_type (void); 53 | 54 | GtkWidget *xfburn_burn_audio_cd_composition_dialog_new (GSList *tracklist); 55 | 56 | G_END_DECLS 57 | #endif /* XFBURN_BURN_AUDIO_CD_COMPOSITION_DIALOG_H */ 58 | -------------------------------------------------------------------------------- /xfburn/xfburn-burn-data-composition-base-dialog.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2007 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_BURN_DATA_COMPOSITION_BASE_DIALOG_H__ 20 | #define __XFBURN_BURN_DATA_COMPOSITION_BASE_DIALOG_H__ 21 | 22 | #include 23 | #include 24 | 25 | #include 26 | 27 | G_BEGIN_DECLS 28 | 29 | #define XFBURN_TYPE_BURN_DATA_COMPOSITION_BASE_DIALOG (xfburn_burn_data_composition_base_dialog_get_type ()) 30 | #define XFBURN_BURN_DATA_COMPOSITION_BASE_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XFBURN_TYPE_BURN_DATA_COMPOSITION_BASE_DIALOG, XfburnBurnDataCompositionBaseDialog)) 31 | #define XFBURN_BURN_DATA_COMPOSITION_BASE_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), XFBURN_TYPE_BURN_DATA_COMPOSITION_BASE_DIALOG, XfburnBurnDataCompositionBaseDialogClass)) 32 | #define XFBURN_IS_BURN_DATA_COMPOSITION_BASE_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XFBURN_TYPE_BURN_DATA_COMPOSITION_BASE_DIALOG)) 33 | #define XFBURN_IS_BURN_DATA_COMPOSITION_BASE_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XFBURN_TYPE_BURN_DATA_COMPOSITION_BASE_DIALOG)) 34 | #define XFBURN_BURN_DATA_COMPOSITION_BASE_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XFBURN_TYPE_BURN_DATA_COMPOSITION_BASE_DIALOG, XfburnBurnDataCompositionBaseDialogClass)) 35 | 36 | enum { 37 | XFBURN_BURN_DATA_COMPOSITION_DIALOG_CANCEL = -1, 38 | XFBURN_BURN_DATA_COMPOSITION_DIALOG_BURN, 39 | XFBURN_BURN_DATA_COMPOSITION_DIALOG_BLANK, 40 | }; 41 | 42 | typedef struct 43 | { 44 | XfceTitledDialog parent; 45 | } XfburnBurnDataCompositionBaseDialog; 46 | 47 | typedef struct 48 | { 49 | XfceTitledDialogClass parent_class; 50 | } XfburnBurnDataCompositionBaseDialogClass; 51 | 52 | GType xfburn_burn_data_composition_base_dialog_get_type (void); 53 | 54 | GtkWidget *xfburn_burn_data_composition_base_dialog_new (IsoImage *image); 55 | 56 | G_END_DECLS 57 | #endif /* XFBURN_BURN_DATA_COMPOSITION_BASE_DIALOG_H */ 58 | -------------------------------------------------------------------------------- /xfburn/xfburn-compositions-notebook.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_COMPOSITIONS_NOTEBOOK_H__ 20 | #define __XFBURN_COMPOSITIONS_NOTEBOOK_H__ 21 | 22 | #include 23 | 24 | #include "xfburn-main-window.h" 25 | #include "xfburn-composition.h" 26 | 27 | G_BEGIN_DECLS 28 | 29 | #define XFBURN_TYPE_COMPOSITIONS_NOTEBOOK (xfburn_compositions_notebook_get_type ()) 30 | #define XFBURN_COMPOSITIONS_NOTEBOOK(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XFBURN_TYPE_COMPOSITIONS_NOTEBOOK, XfburnCompositionsNotebook)) 31 | #define XFBURN_COMPOSITIONS_NOTEBOOK_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), XFBURN_TYPE_COMPOSITIONS_NOTEBOOK, XfburnCompositionsNotebookClass)) 32 | #define XFBURN_IS_COMPOSITIONS_NOTEBOOK(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XFBURN_TYPE_COMPOSITIONS_NOTEBOOK)) 33 | #define XFBURN_IS_COMPOSITIONS_NOTEBOOK_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XFBURN_TYPE_COMPOSITIONS_NOTEBOOK)) 34 | #define XFBURN_COMPOSITIONS_NOTEBOOK_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XFBURN_TYPE_COMPOSITIONS_NOTEBOOK, XfburnCompositionsNotebookClass)) 35 | 36 | typedef struct 37 | { 38 | GtkNotebook parent; 39 | } XfburnCompositionsNotebook; 40 | 41 | typedef struct 42 | { 43 | GtkNotebookClass parent_class; 44 | } XfburnCompositionsNotebookClass; 45 | 46 | typedef enum 47 | { 48 | XFBURN_DATA_COMPOSITION, 49 | XFBURN_AUDIO_COMPOSITION, 50 | } XfburnCompositionType; 51 | 52 | GType xfburn_compositions_notebook_get_type (void); 53 | 54 | GtkWidget *xfburn_compositions_notebook_new (void); 55 | 56 | XfburnComposition *xfburn_compositions_notebook_add_composition (XfburnCompositionsNotebook *notebook, XfburnCompositionType type); 57 | void xfburn_compositions_notebook_add_welcome_tab (XfburnCompositionsNotebook *notebook, GActionMap *action_group); 58 | 59 | void xfburn_compositions_notebook_close_composition (XfburnCompositionsNotebook *notebook); 60 | 61 | G_END_DECLS 62 | 63 | #endif /* XFBURN_COMPOSITIONS_NOTEBOOK_H */ 64 | -------------------------------------------------------------------------------- /xfburn/xfburn-burn-data-dvd-composition-dialog.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2007 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifdef HAVE_STRING_H 20 | #include 21 | #endif 22 | 23 | #include 24 | #include 25 | #include 26 | 27 | #include 28 | 29 | #include "xfburn-global.h" 30 | #include "xfburn-utils.h" 31 | #include "xfburn-settings.h" 32 | 33 | #include "xfburn-device-box.h" 34 | #include "xfburn-burn-data-dvd-composition-dialog.h" 35 | #include "xfburn-progress-dialog.h" 36 | #include "xfburn-burn-data-composition-base-dialog.h" 37 | 38 | typedef struct 39 | { 40 | gboolean dummy; 41 | } XfburnBurnDataDvdCompositionDialogPrivate; 42 | 43 | /* prototypes */ 44 | static void xfburn_burn_data_dvd_composition_dialog_finalize (GObject * object); 45 | 46 | /* globals */ 47 | static XfceTitledDialogClass *parent_class = NULL; 48 | 49 | G_DEFINE_TYPE_WITH_PRIVATE(XfburnBurnDataDvdCompositionDialog, xfburn_burn_data_dvd_composition_dialog, XFBURN_TYPE_BURN_DATA_COMPOSITION_BASE_DIALOG); 50 | 51 | static void 52 | xfburn_burn_data_dvd_composition_dialog_class_init (XfburnBurnDataDvdCompositionDialogClass * klass) 53 | { 54 | GObjectClass *object_class = G_OBJECT_CLASS (klass); 55 | 56 | parent_class = g_type_class_peek_parent (klass); 57 | 58 | object_class->finalize = xfburn_burn_data_dvd_composition_dialog_finalize; 59 | } 60 | 61 | static void 62 | xfburn_burn_data_dvd_composition_dialog_init (XfburnBurnDataDvdCompositionDialog * obj) 63 | { 64 | } 65 | 66 | static void 67 | xfburn_burn_data_dvd_composition_dialog_finalize (GObject * object) 68 | { 69 | G_OBJECT_CLASS (parent_class)->finalize (object); 70 | } 71 | 72 | /* internals */ 73 | 74 | /* public */ 75 | GtkWidget * 76 | xfburn_burn_data_dvd_composition_dialog_new (IsoImage *image) 77 | { 78 | XfburnBurnDataDvdCompositionDialog *obj; 79 | 80 | obj = XFBURN_BURN_DATA_DVD_COMPOSITION_DIALOG (g_object_new (XFBURN_TYPE_BURN_DATA_DVD_COMPOSITION_DIALOG, "image", image, NULL)); 81 | 82 | return GTK_WIDGET (obj); 83 | } 84 | -------------------------------------------------------------------------------- /xfburn/xfburn-disc-usage.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_DISC_USAGE_H__ 20 | #define __XFBURN_DISC_USAGE_H__ 21 | 22 | #include 23 | 24 | G_BEGIN_DECLS 25 | 26 | #define XFBURN_TYPE_DISC_USAGE (xfburn_disc_usage_get_type ()) 27 | #define XFBURN_DISC_USAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFBURN_TYPE_DISC_USAGE, XfburnDiscUsage)) 28 | #define XFBURN_DISC_USAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFBURN_TYPE_DISC_USAGE, XfburnDiscUsageClass)) 29 | #define XFBURN_IS_DISC_USAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFBURN_TYPE_DISC_USAGE)) 30 | #define XFBURN_IS_DISC_USAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFBURN_TYPE_DISC_USAGE)) 31 | #define XFBURN_DISC_USAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFBURN_TYPE_DISC_USAGE, XfburnDiscUsageClass)) 32 | 33 | typedef struct 34 | { 35 | GtkVBox hbox; 36 | 37 | GtkWidget *progress_bar; 38 | GtkWidget *combo; 39 | GtkWidget *button; 40 | 41 | gdouble size; 42 | } XfburnDiscUsage; 43 | 44 | typedef struct 45 | { 46 | guint64 size; 47 | gchar *label; 48 | } XfburnDiscLabels; 49 | 50 | typedef struct 51 | { 52 | GtkHBoxClass parent_class; 53 | XfburnDiscLabels *labels; 54 | int num_labels; 55 | 56 | /* signals */ 57 | void (*begin_burn) (XfburnDiscUsage *du); 58 | 59 | /* virtual functions */ 60 | void (*update_size) (XfburnDiscUsage *du); 61 | gboolean (*can_burn) (XfburnDiscUsage *du); 62 | } XfburnDiscUsageClass; 63 | 64 | typedef enum 65 | { 66 | CD_DISC, 67 | DVD_DISC, 68 | } XfburnDiscType; 69 | 70 | 71 | GType xfburn_disc_usage_get_type (void); 72 | GtkWidget *xfburn_disc_usage_new (void); 73 | 74 | gdouble xfburn_disc_usage_get_size (XfburnDiscUsage *); 75 | void xfburn_disc_usage_set_size (XfburnDiscUsage *, gdouble); 76 | void xfburn_disc_usage_add_size (XfburnDiscUsage *, gdouble); 77 | void xfburn_disc_usage_sub_size (XfburnDiscUsage *, gdouble); 78 | 79 | XfburnDiscType xfburn_disc_usage_get_disc_type (XfburnDiscUsage *); 80 | 81 | G_END_DECLS 82 | 83 | #endif 84 | -------------------------------------------------------------------------------- /xfburn/xfburn-device-box.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_DEVICE_BOX_H__ 20 | #define __XFBURN_DEVICE_BOX_H__ 21 | 22 | #include 23 | 24 | #include "xfburn-global.h" 25 | #include "xfburn-device-list.h" 26 | 27 | G_BEGIN_DECLS 28 | #define XFBURN_TYPE_DEVICE_BOX (xfburn_device_box_get_type ()) 29 | #define XFBURN_DEVICE_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFBURN_TYPE_DEVICE_BOX, XfburnDeviceBox)) 30 | #define XFBURN_DEVICE_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFBURN_TYPE_DEVICE_BOX, XfburnDeviceBoxClass)) 31 | #define XFBURN_IS_DEVICE_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFBURN_TYPE_DEVICE_BOX)) 32 | #define XFBURN_IS_DEVICE_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFBURN_TYPE_DEVICE_BOX)) 33 | #define XFBURN_DEVICE_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFBURN_TYPE_DEVICE_BOX, XfburnDeviceBoxClass)) 34 | 35 | typedef struct 36 | { 37 | GtkVBox window; 38 | } XfburnDeviceBox; 39 | 40 | typedef struct 41 | { 42 | GtkVBoxClass parent_class; 43 | 44 | void (*volume_changed) (XfburnDeviceBox *box, gboolean device_changed, XfburnDevice *device); 45 | } XfburnDeviceBoxClass; 46 | 47 | typedef enum 48 | { 49 | SHOW_CD_WRITERS = 1 << 0, 50 | SHOW_CDRW_WRITERS = 1 << 1, 51 | SHOW_DVD_WRITERS = 1 << 2, 52 | 53 | SHOW_CD_READERS = 1 << 4, 54 | SHOW_DVD_READERS = 1 << 5, 55 | 56 | SHOW_SPEED_SELECTION = 1 << 7, 57 | SHOW_MODE_SELECTION = 1 << 8, 58 | BLANK_MODE = 1 << 9, 59 | } XfburnDeviceBoxFlags; 60 | 61 | typedef enum 62 | { 63 | WRITE_MODE_AUTO, 64 | WRITE_MODE_TAO, 65 | WRITE_MODE_SAO, 66 | WRITE_MODE_RAW16, 67 | WRITE_MODE_RAW96P, 68 | WRITE_MODE_RAW96R, 69 | WRITE_MODE_PACKET, 70 | } XfburnWriteMode; 71 | 72 | GType xfburn_device_box_get_type (void); 73 | 74 | GtkWidget *xfburn_device_box_new (XfburnDeviceBoxFlags); 75 | 76 | XfburnDevice *xfburn_device_box_get_selected_device (XfburnDeviceBox *box); 77 | 78 | gint xfburn_device_box_get_speed (XfburnDeviceBox *box); 79 | XfburnWriteMode xfburn_device_box_get_mode (XfburnDeviceBox *box); 80 | void xfburn_device_box_set_sensitive (XfburnDeviceBox *box, gboolean sensitivity); 81 | 82 | G_END_DECLS 83 | #endif 84 | -------------------------------------------------------------------------------- /xfburn/xfburn-burn-data-cd-composition-dialog.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2007 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifdef HAVE_STRING_H 20 | #include 21 | #endif 22 | 23 | #include 24 | #include 25 | #include 26 | 27 | #include 28 | 29 | #include "xfburn-global.h" 30 | #include "xfburn-utils.h" 31 | #include "xfburn-settings.h" 32 | 33 | #include "xfburn-burn-data-composition-base-dialog.h" 34 | #include "xfburn-burn-data-cd-composition-dialog.h" 35 | #include "xfburn-progress-dialog.h" 36 | 37 | typedef struct 38 | { 39 | gboolean dummy; /* An empty private struct is not allowed */ 40 | } XfburnBurnDataCdCompositionDialogPrivate; 41 | 42 | /* prototypes */ 43 | static void xfburn_burn_data_cd_composition_dialog_finalize (GObject * object); 44 | G_DEFINE_TYPE_WITH_PRIVATE(XfburnBurnDataCdCompositionDialog, xfburn_burn_data_cd_composition_dialog, XFBURN_TYPE_BURN_DATA_COMPOSITION_BASE_DIALOG); 45 | 46 | /* globals */ 47 | static XfceTitledDialogClass *parent_class = NULL; 48 | 49 | static void 50 | xfburn_burn_data_cd_composition_dialog_class_init (XfburnBurnDataCdCompositionDialogClass * klass) 51 | { 52 | GObjectClass *object_class = G_OBJECT_CLASS (klass); 53 | 54 | parent_class = g_type_class_peek_parent (klass); 55 | 56 | object_class->finalize = xfburn_burn_data_cd_composition_dialog_finalize; 57 | } 58 | 59 | static void 60 | xfburn_burn_data_cd_composition_dialog_init (XfburnBurnDataCdCompositionDialog * obj) 61 | { 62 | } 63 | 64 | static void 65 | xfburn_burn_data_cd_composition_dialog_finalize (GObject * object) 66 | { 67 | G_OBJECT_CLASS (parent_class)->finalize (object); 68 | } 69 | 70 | /* public */ 71 | GtkWidget * 72 | xfburn_burn_data_cd_composition_dialog_new (IsoImage *image, gboolean has_default_name) 73 | { 74 | XfburnBurnDataCdCompositionDialog *obj; 75 | 76 | obj = XFBURN_BURN_DATA_CD_COMPOSITION_DIALOG (g_object_new (XFBURN_TYPE_BURN_DATA_CD_COMPOSITION_DIALOG, "image", image, 77 | "show-volume-name", has_default_name, 78 | NULL)); 79 | 80 | return GTK_WIDGET (obj); 81 | } 82 | -------------------------------------------------------------------------------- /xfburn/meson.build: -------------------------------------------------------------------------------- 1 | xfburn_sources = [ 2 | 'xfburn-adding-progress.c', 3 | 'xfburn-adding-progress.h', 4 | 'xfburn-audio-composition.c', 5 | 'xfburn-audio-composition.h', 6 | 'xfburn-audio-disc-usage.c', 7 | 'xfburn-audio-disc-usage.h', 8 | 'xfburn-audio-track-gst.c', 9 | 'xfburn-audio-track-gst.h', 10 | 'xfburn-audio-track.c', 11 | 'xfburn-audio-track.h', 12 | 'xfburn-blank-dialog.c', 13 | 'xfburn-blank-dialog.h', 14 | 'xfburn-burn-audio-cd-composition-dialog.c', 15 | 'xfburn-burn-audio-cd-composition-dialog.h', 16 | 'xfburn-burn-data-cd-composition-dialog.c', 17 | 'xfburn-burn-data-cd-composition-dialog.h', 18 | 'xfburn-burn-data-composition-base-dialog.c', 19 | 'xfburn-burn-data-composition-base-dialog.h', 20 | 'xfburn-burn-data-dvd-composition-dialog.c', 21 | 'xfburn-burn-data-dvd-composition-dialog.h', 22 | 'xfburn-burn-image-dialog.c', 23 | 'xfburn-burn-image-dialog.h', 24 | 'xfburn-composition.c', 25 | 'xfburn-composition.h', 26 | 'xfburn-compositions-notebook.c', 27 | 'xfburn-compositions-notebook.h', 28 | 'xfburn-create-iso-progress-dialog.h', 29 | 'xfburn-data-composition.c', 30 | 'xfburn-data-composition.h', 31 | 'xfburn-data-disc-usage.c', 32 | 'xfburn-data-disc-usage.h', 33 | 'xfburn-device-box.c', 34 | 'xfburn-device-box.h', 35 | 'xfburn-device-list.c', 36 | 'xfburn-device-list.h', 37 | 'xfburn-device.c', 38 | 'xfburn-device.h', 39 | 'xfburn-directory-browser.c', 40 | 'xfburn-directory-browser.h', 41 | 'xfburn-disc-usage.c', 42 | 'xfburn-disc-usage.h', 43 | 'xfburn-error.c', 44 | 'xfburn-error.h', 45 | 'xfburn-file-browser.c', 46 | 'xfburn-file-browser.h', 47 | 'xfburn-fs-browser.c', 48 | 'xfburn-fs-browser.h', 49 | 'xfburn-global.h', 50 | 'xfburn-main-window.c', 51 | 'xfburn-main-window.h', 52 | 'xfburn-main.c', 53 | 'xfburn-main.h', 54 | 'xfburn-notebook-tab.c', 55 | 'xfburn-notebook-tab.h', 56 | 'xfburn-perform-burn.c', 57 | 'xfburn-perform-burn.h', 58 | 'xfburn-preferences-dialog.c', 59 | 'xfburn-preferences-dialog.h', 60 | 'xfburn-progress-dialog.c', 61 | 'xfburn-progress-dialog.h', 62 | 'xfburn-settings.c', 63 | 'xfburn-settings.h', 64 | 'xfburn-transcoder-basic.c', 65 | 'xfburn-transcoder-basic.h', 66 | 'xfburn-transcoder-gst.c', 67 | 'xfburn-transcoder-gst.h', 68 | 'xfburn-transcoder.c', 69 | 'xfburn-transcoder.h', 70 | 'xfburn-udev-manager.c', 71 | 'xfburn-udev-manager.h', 72 | 'xfburn-utils.c', 73 | 'xfburn-utils.h', 74 | 'xfburn-welcome-tab.c', 75 | 'xfburn-welcome-tab.h', 76 | ] 77 | 78 | xfburn_sources += gnome.genmarshal( 79 | 'xfburn-cclosure-marshal', 80 | sources: 'xfburn-cclosure-marshal.list', 81 | prefix: 'xfburn_cclosure_marshal', 82 | internal: true, 83 | install_header: false, 84 | ) 85 | 86 | xfburn = executable( 87 | 'xfburn', 88 | xfburn_sources, 89 | sources: xfce_revision_h, 90 | dependencies: [ 91 | exo, 92 | gio, 93 | giounix, 94 | glib, 95 | gst, 96 | gstpbutils, 97 | gthread, 98 | gtk, 99 | gudev, 100 | libburn, 101 | libisofs, 102 | libm, 103 | libxfce4ui, 104 | libxfce4util, 105 | ], 106 | install: true, 107 | install_dir: get_option('prefix') / get_option('bindir'), 108 | ) 109 | -------------------------------------------------------------------------------- /xfburn.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | _Files 6 |
7 | 8 | New _data composition 9 | app.new-data-composition 10 | 11 | 12 | New _audio composition 13 | app.new-audio-composition 14 | 15 |
16 |
17 | 18 | _Close composition 19 | app.close-composition 20 | 21 |
22 |
23 | 24 | _Quit 25 | app.quit 26 | 27 |
28 |
29 | 30 | _Edit 31 |
32 | 33 | Prefere_nce 34 | app.preferences 35 | 36 |
37 |
38 | 39 | _Action 40 |
41 | 42 | Blank CD-RW 43 | app.blank-disc 44 | 45 | 46 | Burn Image 47 | app.burn-image 48 | 49 | 50 |
51 |
52 | 53 | _View 54 |
55 | 56 | Refresh 57 | app.refresh 58 | 59 |
60 |
61 | 62 | Show Toolbars 63 | app.show-toolbar 64 | 65 | 66 | Show Filebrowser 67 | app.show-filebrowser 68 | 69 | 70 |
71 |
72 | 73 | _Help 74 |
75 | 76 | Contents 77 | app.contents 78 | F1 79 | 80 | 81 | About 82 | app.about 83 | 84 |
85 |
86 |
87 |
88 | -------------------------------------------------------------------------------- /xfburn/xfburn-transcoder.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2008 David Mohr (david@mcbf.net) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_TRANSCODER_H__ 20 | #define __XFBURN_TRANSCODER_H__ 21 | 22 | #include 23 | #include 24 | 25 | #include "xfburn-audio-track.h" 26 | 27 | G_BEGIN_DECLS 28 | 29 | #define XFBURN_TYPE_TRANSCODER (xfburn_transcoder_get_type ()) 30 | #define XFBURN_TRANSCODER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XFBURN_TYPE_TRANSCODER, XfburnTranscoder)) 31 | #define XFBURN_IS_TRANSCODER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XFBURN_TYPE_TRANSCODER)) 32 | #define XFBURN_TRANSCODER_GET_INTERFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE (((gpointer) o), XFBURN_TYPE_TRANSCODER, XfburnTranscoderInterface)) 33 | 34 | #define XFBURN_AUDIO_TRACK_DELETE_DATA(atrack) { g_free (atrack->data); atrack->data = NULL; } 35 | 36 | typedef struct {} XfburnTranscoder; /* dummy struct */ 37 | 38 | typedef struct 39 | { 40 | GTypeInterface parent; 41 | 42 | /* required functions */ 43 | const gchar * (*get_name) (XfburnTranscoder *trans); 44 | const gchar * (*get_description) (XfburnTranscoder *trans); 45 | gboolean (*is_initialized) (XfburnTranscoder *trans, GError **error); 46 | gboolean (*get_audio_track) (XfburnTranscoder *trans, XfburnAudioTrack *atrack, GError **error); 47 | struct burn_track * (*create_burn_track) (XfburnTranscoder *trans, XfburnAudioTrack *atrack, GError **error); 48 | 49 | /* optional functions */ 50 | gboolean (*prepare) (XfburnTranscoder *trans, GError **error); 51 | void (*finish) (XfburnTranscoder *trans); 52 | gboolean (*free_burning_resources) (XfburnTranscoder *trans, XfburnAudioTrack *atrack, GError **error); 53 | 54 | } XfburnTranscoderInterface; 55 | 56 | GType xfburn_transcoder_get_type (void); 57 | 58 | void xfburn_transcoder_set_global (XfburnTranscoder *trans); 59 | XfburnTranscoder *xfburn_transcoder_get_global (void); 60 | 61 | const gchar *xfburn_transcoder_get_name (XfburnTranscoder *trans); 62 | const gchar *xfburn_transcoder_get_description (XfburnTranscoder *trans); 63 | gboolean xfburn_transcoder_is_initialized (XfburnTranscoder *trans, GError **error); 64 | XfburnAudioTrack * xfburn_transcoder_get_audio_track (XfburnTranscoder *trans, const gchar *fn, GError **error); 65 | struct burn_track *xfburn_transcoder_create_burn_track (XfburnTranscoder *trans, XfburnAudioTrack *atrack, GError **error); 66 | 67 | /* optional functions */ 68 | gboolean xfburn_transcoder_prepare (XfburnTranscoder *trans, GError **error); 69 | void xfburn_transcoder_finish (XfburnTranscoder *trans); 70 | gboolean xfburn_transcoder_free_burning_resources (XfburnTranscoder *trans, XfburnAudioTrack *atrack, GError **error); 71 | 72 | /* defined purely by the interface */ 73 | void xfburn_transcoder_free_track (XfburnTranscoder *trans, XfburnAudioTrack *atrack); 74 | 75 | G_END_DECLS 76 | 77 | #endif /* __XFBURN_TRANSCODER_H__ */ 78 | -------------------------------------------------------------------------------- /xfburn/xfburn-device-list.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_DEVICE_LIST_H__ 20 | #define __XFBURN_DEVICE_LIST_H__ 21 | 22 | #include 23 | #include 24 | 25 | #include "xfburn-device.h" 26 | 27 | G_BEGIN_DECLS 28 | 29 | #define XFBURN_TYPE_DEVICE_LIST xfburn_device_list_get_type() 30 | 31 | #define XFBURN_DEVICE_LIST(obj) \ 32 | (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFBURN_TYPE_DEVICE_LIST, XfburnDeviceList)) 33 | 34 | #define XFBURN_DEVICE_LIST_CLASS(klass) \ 35 | (G_TYPE_CHECK_CLASS_CAST ((klass), XFBURN_TYPE_DEVICE_LIST, XfburnDeviceListClass)) 36 | 37 | #define XFBURN_IS_DEVICE_LIST(obj) \ 38 | (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFBURN_TYPE_DEVICE_LIST)) 39 | 40 | #define XFBURN_IS_DEVICE_LIST_CLASS(klass) \ 41 | (G_TYPE_CHECK_CLASS_TYPE ((klass), XFBURN_TYPE_DEVICE_LIST)) 42 | 43 | #define XFBURN_DEVICE_LIST_GET_CLASS(obj) \ 44 | (G_TYPE_INSTANCE_GET_CLASS ((obj), XFBURN_TYPE_DEVICE_LIST, XfburnDeviceListClass)) 45 | 46 | typedef struct { 47 | GObject parent; 48 | } XfburnDeviceList; 49 | 50 | typedef struct { 51 | GObjectClass parent_class; 52 | 53 | void (*volume_changed) (XfburnDeviceList *devlist, guint device_changed, XfburnDevice *device); 54 | } XfburnDeviceListClass; 55 | 56 | 57 | /* what kind of recordable discs are there */ 58 | /* usused so far */ 59 | enum XfburnDiscTypes { 60 | /* record-once types */ 61 | XFBURN_CDR, 62 | XFBURN_DVD_R, /* we don't need a distinction for record once between + / - */ 63 | XFBURN_REWRITABLE, /* marker, everything after this is rewritable */ 64 | XFBURN_CDRW, 65 | XFBURN_DVD_RAM, 66 | XFBURN_DVD_MINUS_RW, 67 | XFBURN_DVD_PLUS_RW, 68 | }; 69 | 70 | enum XfburnDiscProfiles { 71 | XFBURN_PROFILE_NONE = 0x0, 72 | XFBURN_PROFILE_CDR = 0x09, 73 | XFBURN_PROFILE_CDRW = 0x0a, 74 | XFBURN_PROFILE_DVD_MINUS_R = 0x11, 75 | XFBURN_PROFILE_DVDRAM = 0x12, 76 | XFBURN_PROFILE_DVD_MINUS_RW_OVERWRITE = 0x13, 77 | XFBURN_PROFILE_DVD_MINUS_RW_SEQUENTIAL = 0x14, 78 | XFBURN_PROFILE_DVD_MINUS_R_DL = 0x15, 79 | XFBURN_PROFILE_DVD_PLUS_RW = 0x1a, 80 | XFBURN_PROFILE_DVD_PLUS_R = 0x1b, 81 | XFBURN_PROFILE_DVD_PLUS_R_DL = 0x2b, 82 | XFBURN_PROFILE_BD_R = 0x41, 83 | XFBURN_PROFILE_BD_RE = 0x43, 84 | /* Read-only profiles */ 85 | XFBURN_PROFILE_CDROM = 0x08, 86 | XFBURN_PROFILE_DVDROM = 0x10, 87 | XFBURN_PROFILE_BDROM = 0x40, 88 | }; 89 | 90 | GType xfburn_device_list_get_type (void); 91 | 92 | XfburnDeviceList* xfburn_device_list_new (void); 93 | 94 | XfburnDevice * xfburn_device_list_lookup_by_name (XfburnDeviceList *devlist, const gchar * name); 95 | gchar * xfburn_device_list_get_selected (XfburnDeviceList *devlist); 96 | GtkWidget * xfburn_device_list_get_refresh_button (XfburnDeviceList *devlist); 97 | GtkWidget * xfburn_device_list_get_device_combo (XfburnDeviceList *devlist); 98 | XfburnDevice * xfburn_device_list_get_current_device (XfburnDeviceList *devlist); 99 | void xfburn_device_list_refresh_device_combo (XfburnDeviceList *devlist, GtkWidget *combo_device); 100 | 101 | G_END_DECLS 102 | 103 | #endif /* __XFBURN_DEVICE_LIST_H__ */ 104 | -------------------------------------------------------------------------------- /xfburn/xfburn-progress-dialog.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifndef __XFBURN_PROGRESS_DIALOG_H__ 20 | #define __XFBURN_PROGRESS_DIALOG_H__ 21 | 22 | #include 23 | 24 | #include "xfburn-global.h" 25 | 26 | G_BEGIN_DECLS 27 | /* */ 28 | #define XFBURN_TYPE_PROGRESS_DIALOG_STATUS (xfburn_progress_dialog_status_get_type ()) 29 | typedef enum 30 | { 31 | XFBURN_PROGRESS_DIALOG_STATUS_FORMATTING, 32 | XFBURN_PROGRESS_DIALOG_STATUS_STOPPING, 33 | XFBURN_PROGRESS_DIALOG_STATUS_RUNNING, 34 | XFBURN_PROGRESS_DIALOG_STATUS_META_DONE, 35 | XFBURN_PROGRESS_DIALOG_STATUS_FAILED, 36 | XFBURN_PROGRESS_DIALOG_STATUS_CANCELLED, 37 | XFBURN_PROGRESS_DIALOG_STATUS_COMPLETED 38 | } XfburnProgressDialogStatus; 39 | 40 | GType xfburn_progress_dialog_status_get_type (void); 41 | 42 | 43 | /* */ 44 | #define XFBURN_TYPE_PROGRESS_DIALOG (xfburn_progress_dialog_get_type ()) 45 | #define XFBURN_PROGRESS_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), XFBURN_TYPE_PROGRESS_DIALOG, XfburnProgressDialog)) 46 | #define XFBURN_PROGRESS_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), XFBURN_TYPE_PROGRESS_DIALOG, XfburnProgressDialogClass)) 47 | #define XFBURN_IS_PROGRESS_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), XFBURN_TYPE_PROGRESS_DIALOG)) 48 | #define XFBURN_IS_PROGRESS_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), XFBURN_TYPE_PROGRESS_DIALOG)) 49 | #define XFBURN_PROGRESS_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), XFBURN_TYPE_PROGRESS_DIALOG, XfburnProgressDialogClass)) 50 | 51 | typedef struct 52 | { 53 | GtkDialog parent; 54 | } XfburnProgressDialog; 55 | 56 | typedef struct 57 | { 58 | GtkDialogClass parent_class; 59 | void (*burning_done) (XfburnProgressDialog *progress); 60 | } XfburnProgressDialogClass; 61 | 62 | 63 | GType xfburn_progress_dialog_get_type (void); 64 | 65 | void xfburn_progress_dialog_show_buffers (XfburnProgressDialog * dialog, gboolean show); 66 | void xfburn_progress_dialog_pulse_progress_bar (XfburnProgressDialog * dialog); 67 | 68 | XfburnProgressDialogStatus xfburn_progress_dialog_get_status (XfburnProgressDialog * dialog); 69 | gdouble xfburn_progress_dialog_get_progress_bar_fraction (XfburnProgressDialog * dialog); 70 | 71 | void xfburn_progress_dialog_reset (XfburnProgressDialog * dialog); 72 | void xfburn_progress_dialog_set_progress_bar_fraction (XfburnProgressDialog * dialog, gdouble fraction); 73 | void xfburn_progress_dialog_set_fifo_bar_fraction (XfburnProgressDialog * dialog, gdouble fraction); 74 | void xfburn_progress_dialog_set_fifo_bar_text (XfburnProgressDialog * dialog, const gchar *text); 75 | void xfburn_progress_dialog_set_buffer_bar_fraction (XfburnProgressDialog * dialog, gdouble fraction); 76 | void xfburn_progress_dialog_set_buffer_bar_min_fill (XfburnProgressDialog * dialog, gdouble fraction); 77 | void xfburn_progress_dialog_set_writing_speed (XfburnProgressDialog * dialog, gfloat speed); 78 | void xfburn_progress_dialog_set_status (XfburnProgressDialog * dialog, XfburnProgressDialogStatus status); 79 | void xfburn_progress_dialog_set_status_with_text (XfburnProgressDialog * dialog, XfburnProgressDialogStatus status, const gchar * text); 80 | 81 | void xfburn_progress_dialog_burning_failed (XfburnProgressDialog * dialog, const gchar * msg_error); 82 | 83 | GtkWidget *xfburn_progress_dialog_new (GtkWindow *parent); 84 | 85 | G_END_DECLS 86 | 87 | #endif /* XFBURN_PROGRESS_DIALOG_H */ 88 | -------------------------------------------------------------------------------- /xfburn/xfburn-create-iso-progress-dialog.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifdef HAVE_STRING_H 20 | #include 21 | #endif 22 | 23 | #include 24 | 25 | #include "xfburn-global.h" 26 | #include "xfburn-progress-dialog.h" 27 | 28 | #include "xfburn-create-iso-progress-dialog.h" 29 | 30 | static void xfburn_create_iso_progress_dialog_class_init (XfburnCreateIsoProgressDialogClass * klass); 31 | static void xfburn_create_iso_progress_dialog_init (XfburnCreateIsoProgressDialog * sp); 32 | 33 | static void cb_new_output (XfburnCreateIsoProgressDialog * dialog, const gchar * output, gpointer data); 34 | 35 | /*********************/ 36 | /* class declaration */ 37 | /*********************/ 38 | static XfburnProgressDialogClass *parent_class = NULL; 39 | 40 | GType 41 | xfburn_create_iso_progress_dialog_get_type (void) 42 | { 43 | static GType type = 0; 44 | 45 | if (type == 0) { 46 | static const GTypeInfo our_info = { 47 | sizeof (XfburnCreateIsoProgressDialogClass), 48 | NULL, 49 | NULL, 50 | (GClassInitFunc) xfburn_create_iso_progress_dialog_class_init, 51 | NULL, 52 | NULL, 53 | sizeof (XfburnCreateIsoProgressDialog), 54 | 0, 55 | (GInstanceInitFunc) xfburn_create_iso_progress_dialog_init, 56 | NULL 57 | }; 58 | 59 | type = g_type_register_static (XFBURN_TYPE_PROGRESS_DIALOG, "XfburnCreateIsoProgressDialog", &our_info, 0); 60 | } 61 | 62 | return type; 63 | } 64 | 65 | static void 66 | xfburn_create_iso_progress_dialog_class_init (XfburnCreateIsoProgressDialogClass * klass) 67 | { 68 | parent_class = g_type_class_peek_parent (klass); 69 | } 70 | 71 | static void 72 | xfburn_create_iso_progress_dialog_init (XfburnCreateIsoProgressDialog * obj) 73 | { 74 | g_signal_connect_after (G_OBJECT (obj), "output", G_CALLBACK (cb_new_output), NULL); 75 | } 76 | 77 | /* */ 78 | /* internals */ 79 | /* */ 80 | static void 81 | cb_new_output (XfburnCreateIsoProgressDialog * dialog, const gchar * output, gpointer data) 82 | { 83 | static gint readcd_end = -1; 84 | 85 | if (strstr (output, READCD_DONE)) { 86 | xfburn_progress_dialog_set_status (XFBURN_PROGRESS_DIALOG (dialog), XFBURN_PROGRESS_DIALOG_STATUS_COMPLETED); 87 | } 88 | else if (strstr (output, READCD_PROGRESS)) { 89 | gint readcd_done = -1; 90 | gdouble fraction; 91 | 92 | sscanf (output, "%*s %d", &readcd_done); 93 | fraction = ((gdouble) readcd_done) / readcd_end; 94 | 95 | xfburn_progress_dialog_set_progress_bar_fraction (XFBURN_PROGRESS_DIALOG (dialog), fraction * 100.0); 96 | } 97 | else if (strstr (output, READCD_CAPACITY)) { 98 | xfburn_progress_dialog_set_action_text (XFBURN_PROGRESS_DIALOG (dialog), _("Reading CD...")); 99 | sscanf (output, "%*s %d", &readcd_end); 100 | } 101 | } 102 | 103 | /* */ 104 | /* public */ 105 | /* */ 106 | 107 | GtkWidget * 108 | xfburn_create_iso_progress_dialog_new (void) 109 | { 110 | XfburnCreateIsoProgressDialog *obj; 111 | 112 | obj = XFBURN_CREATE_ISO_PROGRESS_DIALOG (g_object_new (XFBURN_TYPE_CREATE_ISO_PROGRESS_DIALOG, 113 | "show-buffers", FALSE, "title", _("Create ISO from CD"), NULL)); 114 | 115 | return GTK_WIDGET (obj); 116 | } 117 | -------------------------------------------------------------------------------- /xfburn/xfburn-audio-disc-usage.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #include 20 | #include 21 | 22 | #include "xfburn-disc-usage.h" 23 | #include "xfburn-audio-disc-usage.h" 24 | #include "xfburn-global.h" 25 | #include "xfburn-settings.h" 26 | #include "xfburn-utils.h" 27 | #include "xfburn-main-window.h" 28 | 29 | /* prototypes */ 30 | static void xfburn_audio_disc_usage_class_init (XfburnAudioDiscUsageClass *, gpointer); 31 | 32 | static gboolean can_burn (XfburnDiscUsage *disc_usage); 33 | static void xfburn_audio_disc_usage_update_size (XfburnDiscUsage * disc_usage); 34 | 35 | /* globals */ 36 | static XfburnDiscUsageClass *parent_class = NULL; 37 | 38 | #define DEFAULT_DISK_SIZE_LABEL 2 39 | #define LAST_CD_LABEL 4 40 | #define NUM_LABELS 7 41 | 42 | XfburnDiscLabels audiodiscsizes[] = { 43 | { 44 | 21*60, "200MB / 21min CD"}, 45 | { 46 | 74*60, "650MB / 74min CD"}, 47 | { 48 | 80*60, "700MB / 80min CD"}, 49 | { 50 | 90*60, "800MB / 90min CD"}, 51 | { 52 | 99*60, "900MB / 99min CD"}, 53 | }; 54 | 55 | /*******************************/ 56 | /* XfburnAudioComposition class */ 57 | /*******************************/ 58 | GType 59 | xfburn_audio_disc_usage_get_type (void) 60 | { 61 | static GType disc_usage_type = 0; 62 | 63 | if (!disc_usage_type) { 64 | static const GTypeInfo disc_usage_info = { 65 | sizeof (XfburnAudioDiscUsageClass), 66 | NULL, 67 | NULL, 68 | (GClassInitFunc) xfburn_audio_disc_usage_class_init, 69 | NULL, 70 | NULL, 71 | sizeof (XfburnAudioDiscUsage), 72 | 0, 73 | NULL, 74 | NULL 75 | }; 76 | 77 | disc_usage_type = g_type_register_static (XFBURN_TYPE_DISC_USAGE, "XfburnAudioDiscUsage", &disc_usage_info, 0); 78 | } 79 | 80 | return disc_usage_type; 81 | } 82 | 83 | static void 84 | xfburn_audio_disc_usage_class_init (XfburnAudioDiscUsageClass * klass, gpointer data) 85 | { 86 | XfburnDiscUsageClass *pklass; 87 | 88 | parent_class = g_type_class_peek_parent (klass); 89 | 90 | /* override virtual methods */ 91 | pklass = XFBURN_DISC_USAGE_CLASS(klass); 92 | 93 | pklass->labels = audiodiscsizes; 94 | pklass->num_labels = G_N_ELEMENTS (audiodiscsizes); 95 | pklass->update_size = xfburn_audio_disc_usage_update_size; 96 | pklass->can_burn = can_burn; 97 | } 98 | 99 | /* internals */ 100 | static void 101 | xfburn_audio_disc_usage_update_size (XfburnDiscUsage * disc_usage) 102 | { 103 | gfloat fraction; 104 | gchar *len; 105 | 106 | fraction = disc_usage->size / audiodiscsizes[gtk_combo_box_get_active (GTK_COMBO_BOX (disc_usage->combo))].size; 107 | if (fraction > 1.0) 108 | fraction = 1.0; 109 | if (fraction < 0.0) 110 | fraction = 0.0; 111 | 112 | gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (disc_usage->progress_bar), fraction > 1.0 ? 1.0 : fraction); 113 | 114 | if (xfburn_settings_get_boolean ("human-readable-units", TRUE)) 115 | len = g_strdup_printf ("%2.0lfm %02.0lfs", disc_usage->size / 60, (gdouble) (((guint64) disc_usage->size) % 60)); 116 | else 117 | len = g_strdup_printf ("%.0lf secs", disc_usage->size); 118 | 119 | gtk_progress_bar_set_text (GTK_PROGRESS_BAR (disc_usage->progress_bar), len); 120 | 121 | g_free (len); 122 | } 123 | 124 | static gboolean 125 | can_burn (XfburnDiscUsage *disc_usage) 126 | { 127 | if (disc_usage->size == 0 || 128 | disc_usage->size > audiodiscsizes[gtk_combo_box_get_active (GTK_COMBO_BOX (disc_usage->combo))].size) 129 | return FALSE; 130 | else 131 | return TRUE; 132 | } 133 | 134 | GtkWidget * 135 | xfburn_audio_disc_usage_new (void) 136 | { 137 | return g_object_new (xfburn_audio_disc_usage_get_type (), NULL); 138 | } 139 | 140 | -------------------------------------------------------------------------------- /xfburn/xfburn-data-disc-usage.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #include 20 | #include 21 | 22 | #include "xfburn-disc-usage.h" 23 | #include "xfburn-data-disc-usage.h" 24 | #include "xfburn-global.h" 25 | #include "xfburn-settings.h" 26 | #include "xfburn-utils.h" 27 | #include "xfburn-main-window.h" 28 | 29 | /* prototypes */ 30 | static void xfburn_data_disc_usage_class_init (XfburnDataDiscUsageClass *, gpointer data); 31 | 32 | static gboolean can_burn (XfburnDiscUsage *disc_usage); 33 | static void xfburn_data_disc_usage_update_size (XfburnDiscUsage * disc_usage); 34 | 35 | /* globals */ 36 | static XfburnDiscUsageClass *parent_class = NULL; 37 | 38 | #define DEFAULT_DISK_SIZE_LABEL 2 39 | #define LAST_CD_LABEL 4 40 | #define NUM_LABELS 10 41 | 42 | XfburnDiscLabels datadiscsizes[] = { 43 | { 44 | 200 *1024 * 1024, "200MB CD"}, 45 | { 46 | 681984000, "650MB CD"}, 47 | { 48 | 737280000, "700MB CD"}, 49 | { 50 | 829440000, "800MB CD"}, 51 | { 52 | 912384000, "900MB CD"}, 53 | { 54 | G_GINT64_CONSTANT(0x1182a0000), "4.3GB DVD"}, /* 4 700 372 992 */ 55 | { 56 | G_GINT64_CONSTANT(0x1fd3e0000), "7.9GB DVD"}, /* 8 543 666 176 */ 57 | { 58 | G_GINT64_CONSTANT(0x5a3a00000), "22.5GB BD"}, /* 24 220 008 448 */ 59 | { 60 | G_GINT64_CONSTANT(0xba7400000), "46.5GB BD"}, /* 50 050 629 632 */ 61 | { 62 | G_GINT64_CONSTANT(0x174ea00000), "93GB BD"}, /* 100 103 356 416 */ 63 | { 64 | G_GINT64_CONSTANT(0x20000000000), "2TB"}, /* limit of libburn: 2 TiB */ 65 | }; 66 | 67 | /*******************************/ 68 | /* XfburnDataComposition class */ 69 | /*******************************/ 70 | GType 71 | xfburn_data_disc_usage_get_type (void) 72 | { 73 | static GType disc_usage_type = 0; 74 | 75 | if (!disc_usage_type) { 76 | static const GTypeInfo disc_usage_info = { 77 | sizeof (XfburnDataDiscUsageClass), 78 | NULL, 79 | NULL, 80 | (GClassInitFunc) xfburn_data_disc_usage_class_init, 81 | NULL, 82 | NULL, 83 | sizeof (XfburnDataDiscUsage), 84 | 0, 85 | NULL, 86 | NULL 87 | }; 88 | 89 | disc_usage_type = g_type_register_static (XFBURN_TYPE_DISC_USAGE, "XfburnDataDiscUsage", &disc_usage_info, 0); 90 | } 91 | 92 | return disc_usage_type; 93 | } 94 | 95 | static void 96 | xfburn_data_disc_usage_class_init (XfburnDataDiscUsageClass * klass, gpointer data) 97 | { 98 | XfburnDiscUsageClass *pklass; 99 | 100 | parent_class = g_type_class_peek_parent (klass); 101 | 102 | /* override virtual methods */ 103 | pklass = XFBURN_DISC_USAGE_CLASS(klass); 104 | 105 | pklass->labels = datadiscsizes; 106 | pklass->num_labels = G_N_ELEMENTS (datadiscsizes); 107 | pklass->update_size = xfburn_data_disc_usage_update_size; 108 | pklass->can_burn = can_burn; 109 | } 110 | 111 | /* internals */ 112 | static void 113 | xfburn_data_disc_usage_update_size (XfburnDiscUsage * disc_usage) 114 | { 115 | gfloat fraction; 116 | gchar *size; 117 | 118 | fraction = disc_usage->size / datadiscsizes[gtk_combo_box_get_active (GTK_COMBO_BOX (disc_usage->combo))].size; 119 | if (fraction > 1.0) 120 | fraction = 1.0; 121 | if (fraction < 0.0) 122 | fraction = 0.0; 123 | 124 | gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (disc_usage->progress_bar), fraction > 1.0 ? 1.0 : fraction); 125 | 126 | if (xfburn_settings_get_boolean ("human-readable-units", TRUE)) 127 | size = xfburn_humanreadable_filesize ((guint64) disc_usage->size); 128 | else 129 | size = g_strdup_printf ("%.0lf B", disc_usage->size); 130 | 131 | gtk_progress_bar_set_text (GTK_PROGRESS_BAR (disc_usage->progress_bar), size); 132 | 133 | g_free (size); 134 | } 135 | 136 | static gboolean 137 | can_burn (XfburnDiscUsage *disc_usage) 138 | { 139 | if (disc_usage->size == 0 || 140 | disc_usage->size > datadiscsizes[gtk_combo_box_get_active (GTK_COMBO_BOX (disc_usage->combo))].size) 141 | return FALSE; 142 | else 143 | return TRUE; 144 | } 145 | 146 | GtkWidget * 147 | xfburn_data_disc_usage_new (void) 148 | { 149 | return g_object_new (xfburn_data_disc_usage_get_type (), NULL); 150 | } 151 | 152 | -------------------------------------------------------------------------------- /xfburn/xfburn-copy-cd-progress-dialog.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #ifdef HAVE_STRING_H 20 | #include 21 | #endif 22 | 23 | #include 24 | 25 | #include "xfburn-global.h" 26 | #include "xfburn-progress-dialog.h" 27 | 28 | #include "xfburn-copy-cd-progress-dialog.h" 29 | 30 | static void xfburn_copy_cd_progress_dialog_class_init (XfburnCopyCdProgressDialogClass * klass); 31 | static void xfburn_copy_cd_progress_dialog_init (XfburnCopyCdProgressDialog * sp); 32 | 33 | static void cb_new_output (XfburnCopyCdProgressDialog * dialog, const gchar * output, gpointer data); 34 | 35 | /*********************/ 36 | /* class declaration */ 37 | /*********************/ 38 | static XfburnProgressDialogClass *parent_class = NULL; 39 | 40 | GType 41 | xfburn_copy_cd_progress_dialog_get_type (void) 42 | { 43 | static GType type = 0; 44 | 45 | if (type == 0) { 46 | static const GTypeInfo our_info = { 47 | sizeof (XfburnCopyCdProgressDialogClass), 48 | NULL, 49 | NULL, 50 | (GClassInitFunc) xfburn_copy_cd_progress_dialog_class_init, 51 | NULL, 52 | NULL, 53 | sizeof (XfburnCopyCdProgressDialog), 54 | 0, 55 | (GInstanceInitFunc) xfburn_copy_cd_progress_dialog_init, 56 | NULL 57 | }; 58 | 59 | type = g_type_register_static (XFBURN_TYPE_PROGRESS_DIALOG, "XfburnCopyCdProgressDialog", &our_info, 0); 60 | } 61 | 62 | return type; 63 | } 64 | 65 | static void 66 | xfburn_copy_cd_progress_dialog_class_init (XfburnCopyCdProgressDialogClass * klass) 67 | { 68 | parent_class = g_type_class_peek_parent (klass); 69 | } 70 | 71 | static void 72 | xfburn_copy_cd_progress_dialog_init (XfburnCopyCdProgressDialog * obj) 73 | { 74 | g_signal_connect_after (G_OBJECT (obj), "output", G_CALLBACK (cb_new_output), NULL); 75 | } 76 | 77 | /* */ 78 | /* internals */ 79 | /* */ 80 | static void 81 | cb_new_output (XfburnCopyCdProgressDialog * dialog, const gchar * output, gpointer data) 82 | { 83 | static gint readcd_end = -1; 84 | 85 | if (strstr (output, CDRDAO_DONE)) { 86 | xfburn_progress_dialog_set_status (XFBURN_PROGRESS_DIALOG (dialog), XFBURN_PROGRESS_DIALOG_STATUS_COMPLETED); 87 | } 88 | else if (strstr (output, CDRDAO_FLUSHING)) { 89 | xfburn_progress_dialog_set_action_text (XFBURN_PROGRESS_DIALOG (dialog), _("Flushing cache...")); 90 | } 91 | else if (strstr (output, CDRDAO_LENGTH)) { 92 | gint min, sec, cent; 93 | 94 | sscanf (output, "%*s %d:%d:%d", &min, &sec, ¢); 95 | readcd_end = cent + 100 * sec + 60 * 100 * min; 96 | } 97 | else if (strstr (output, CDRDAO_INSERT) || strstr (output, CDRDAO_INSERT_AGAIN)) { 98 | GtkWidget *dialog_confirm; 99 | 100 | dialog_confirm = gtk_message_dialog_new (GTK_WINDOW (dialog), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, 101 | GTK_MESSAGE_INFO, GTK_BUTTONS_OK, _("Please insert a recordable disc.")); 102 | gtk_dialog_run (GTK_DIALOG (dialog_confirm)); 103 | gtk_widget_destroy (dialog_confirm); 104 | xfburn_progress_dialog_write_input (XFBURN_PROGRESS_DIALOG (dialog), "\n"); 105 | } 106 | else { 107 | gint done, total, buffer1, buffer2; 108 | gint min, sec, cent; 109 | gdouble fraction; 110 | 111 | if (sscanf (output, "Wrote %d %*s %d %*s %*s %d%% %d%%", &done, &total, &buffer1, &buffer2) == 4) { 112 | gchar *command; 113 | 114 | command = g_object_get_data (G_OBJECT (dialog), "command"); 115 | if (strstr (command, "on-the-fly")) { 116 | fraction = ((gdouble) done) / total; 117 | } 118 | else { 119 | fraction = ((gdouble) done) / total; 120 | fraction = 0.5 + (fraction / 2); 121 | } 122 | 123 | xfburn_progress_dialog_set_action_text (XFBURN_PROGRESS_DIALOG (dialog), _("Writing CD...")); 124 | xfburn_progress_dialog_set_progress_bar_fraction (XFBURN_PROGRESS_DIALOG (dialog), fraction * 100.0); 125 | xfburn_progress_dialog_set_fifo_bar_fraction (XFBURN_PROGRESS_DIALOG (dialog), ((gdouble) buffer1)); 126 | xfburn_progress_dialog_set_buffer_bar_fraction (XFBURN_PROGRESS_DIALOG (dialog), ((gdouble) buffer2)); 127 | } 128 | else if (sscanf (output, "%d:%d:%d", &min, &sec, ¢) == 3) { 129 | gint readcd_done = -1; 130 | 131 | readcd_done = cent + 100 * sec + 60 * 100 * min; 132 | 133 | fraction = ((gdouble) readcd_done) / readcd_end; 134 | fraction = fraction / 2; 135 | 136 | xfburn_progress_dialog_set_action_text (XFBURN_PROGRESS_DIALOG (dialog), _("Reading CD...")); 137 | xfburn_progress_dialog_set_progress_bar_fraction (XFBURN_PROGRESS_DIALOG (dialog), fraction); 138 | } 139 | } 140 | } 141 | 142 | /* */ 143 | /* public */ 144 | /* */ 145 | 146 | GtkWidget * 147 | xfburn_copy_cd_progress_dialog_new (void) 148 | { 149 | XfburnCopyCdProgressDialog *obj; 150 | 151 | obj = XFBURN_COPY_CD_PROGRESS_DIALOG (g_object_new (XFBURN_TYPE_COPY_CD_PROGRESS_DIALOG, 152 | "title", _("Copy data CD"), NULL)); 153 | 154 | return GTK_WIDGET (obj); 155 | } 156 | -------------------------------------------------------------------------------- /xfburn/xfburn-adding-progress.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #include 20 | #include 21 | 22 | #include "xfburn-global.h" 23 | #include "xfburn-adding-progress.h" 24 | #include "xfburn-utils.h" 25 | 26 | #define XFBURN_ADDING_PROGRESS_GET_PRIVATE(obj) (xfburn_adding_progress_get_instance_private (obj)) 27 | 28 | enum { 29 | ADDING_DONE, 30 | LAST_SIGNAL, 31 | }; 32 | 33 | /* private struct */ 34 | typedef struct 35 | { 36 | GtkWidget *progress_bar; 37 | gboolean aborted; 38 | } XfburnAddingProgressPrivate; 39 | 40 | /* prototypes */ 41 | G_DEFINE_TYPE_WITH_PRIVATE(XfburnAddingProgress, xfburn_adding_progress, GTK_TYPE_WINDOW) 42 | static gboolean cb_delete (XfburnAddingProgress *widget, GdkEvent *event, gpointer data); 43 | static gboolean cb_cancel (GtkButton *widget, gpointer data); 44 | 45 | /* globals */ 46 | static GtkWindowClass *parent_class = NULL; 47 | static guint signals[LAST_SIGNAL]; 48 | 49 | /******************************/ 50 | /* XfburnAddingProgress class */ 51 | /******************************/ 52 | 53 | static void 54 | xfburn_adding_progress_class_init (XfburnAddingProgressClass * klass) 55 | { 56 | parent_class = g_type_class_peek_parent (klass); 57 | 58 | signals[ADDING_DONE] = g_signal_new ("adding-done", XFBURN_TYPE_ADDING_PROGRESS, G_SIGNAL_ACTION, 59 | G_STRUCT_OFFSET (XfburnAddingProgressClass, adding_done), 60 | NULL, NULL, g_cclosure_marshal_VOID__VOID, 61 | G_TYPE_NONE, 0); 62 | } 63 | 64 | static void 65 | xfburn_adding_progress_init (XfburnAddingProgress * win) 66 | { 67 | XfburnAddingProgressPrivate *priv = XFBURN_ADDING_PROGRESS_GET_PRIVATE (win); 68 | GtkWidget *vbox, *cancel_btn; 69 | 70 | gtk_window_set_resizable (GTK_WINDOW (win), FALSE); 71 | 72 | gtk_window_set_icon_name (GTK_WINDOW (win), "list-add"); 73 | gtk_window_set_destroy_with_parent (GTK_WINDOW (win), TRUE); 74 | gtk_window_set_title (GTK_WINDOW (win), _("Adding files to the composition")); 75 | gtk_window_set_modal (GTK_WINDOW (win), TRUE); 76 | 77 | vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5); 78 | gtk_widget_show (vbox); 79 | gtk_container_add (GTK_CONTAINER (win), vbox); 80 | 81 | priv->progress_bar = xfburn_create_progress_bar (NULL); 82 | gtk_progress_bar_set_pulse_step (GTK_PROGRESS_BAR (priv->progress_bar), 0.01); 83 | gtk_widget_show (priv->progress_bar); 84 | gtk_box_pack_start (GTK_BOX (vbox), priv->progress_bar, TRUE, TRUE, BORDER); 85 | 86 | gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (priv->progress_bar), 0.5); 87 | 88 | cancel_btn = gtk_button_new_with_label (_("Cancel")); 89 | gtk_box_pack_start (GTK_BOX (vbox), cancel_btn, TRUE, TRUE, BORDER); 90 | gtk_widget_show (cancel_btn); 91 | 92 | 93 | priv->aborted = FALSE; 94 | g_signal_connect (G_OBJECT (win), "delete-event", G_CALLBACK (cb_delete), NULL); 95 | g_signal_connect (G_OBJECT (cancel_btn), "clicked", G_CALLBACK (cb_cancel), G_OBJECT(win)); 96 | } 97 | 98 | /* internals */ 99 | 100 | static gboolean 101 | cb_delete (XfburnAddingProgress *widget, GdkEvent *event, gpointer data) 102 | { 103 | XfburnAddingProgressPrivate *priv = XFBURN_ADDING_PROGRESS_GET_PRIVATE (widget); 104 | priv->aborted = TRUE; 105 | 106 | return TRUE; 107 | } 108 | 109 | static gboolean 110 | cb_cancel (GtkButton *widget, gpointer data) 111 | { 112 | XfburnAddingProgressPrivate *priv = XFBURN_ADDING_PROGRESS_GET_PRIVATE (data); 113 | priv->aborted = TRUE; 114 | 115 | return TRUE; 116 | } 117 | 118 | /******************/ 119 | /* public methods */ 120 | /******************/ 121 | 122 | /* 123 | * These functions are expected to be called from the gui thread 124 | */ 125 | XfburnAddingProgress * 126 | xfburn_adding_progress_new (void) 127 | { 128 | GtkWidget *obj; 129 | 130 | obj = g_object_new (xfburn_adding_progress_get_type (), NULL); 131 | 132 | gtk_widget_realize (obj); 133 | 134 | return XFBURN_ADDING_PROGRESS (obj); 135 | } 136 | 137 | /* 138 | * these functions are expected to be called from the secondary thread 139 | */ 140 | void 141 | xfburn_adding_progress_pulse (XfburnAddingProgress *adding_progress) 142 | { 143 | XfburnAddingProgressPrivate *priv = XFBURN_ADDING_PROGRESS_GET_PRIVATE (adding_progress); 144 | 145 | gdk_threads_enter (); 146 | gtk_progress_bar_pulse (GTK_PROGRESS_BAR (priv->progress_bar)); 147 | gdk_threads_leave (); 148 | } 149 | 150 | void 151 | xfburn_adding_progress_done (XfburnAddingProgress *adding_progress) 152 | { 153 | gdk_threads_enter (); 154 | g_signal_emit (G_OBJECT (adding_progress), signals[ADDING_DONE], 0); 155 | gdk_threads_leave (); 156 | } 157 | 158 | gboolean 159 | xfburn_adding_progress_is_aborted (XfburnAddingProgress *adding_progress) 160 | { 161 | XfburnAddingProgressPrivate *priv = XFBURN_ADDING_PROGRESS_GET_PRIVATE (adding_progress); 162 | 163 | return priv->aborted; 164 | } 165 | 166 | void xfburn_adding_progress_show (XfburnAddingProgress *adding_progress) 167 | { 168 | XfburnAddingProgressPrivate *priv = XFBURN_ADDING_PROGRESS_GET_PRIVATE (adding_progress); 169 | 170 | priv->aborted = FALSE; 171 | gtk_widget_show (GTK_WIDGET (adding_progress)); 172 | } 173 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | xfburn 2 | ====== 3 | 4 | [xfburn's website](https://docs.xfce.org/apps/xfburn/start) 5 | 6 | An easy to use burning software for the Xfce desktop environment (but of 7 | course will work with others). It uses libburn and libisofs as a backend, in 8 | difference to most other GUI programs at the moment. Visit 9 | https://dev.lovelyhq.com/libburnia/web/wiki for more information about these libraries. 10 | 11 | Functionality 12 | ============= 13 | 14 | xfburn is still a new program, and does not yet do all common burning related 15 | tasks. 16 | 17 | Currently implemented is: 18 | * Create data compositions 19 | - Burn to CD, DVD, or BluRay (BD) 20 | - Create ISO images 21 | * Burn ISO images 22 | * Create and burn audio CDs 23 | * Blank discs 24 | * Format and deformat DVD-RW discs 25 | 26 | At this time there is no multi-session support. 27 | 28 | Note: Stream Recording disables error management for BD only, which increases 29 | the burning speed. Using it seems to be the best option since discs with 30 | errors tend to fail even when stream recording is disabled. 31 | 32 | ------------------------ 33 | Audio CD support details 34 | ------------------------ 35 | 36 | Included are two transcoders: basic, which just passes through uncompressed 37 | wav data, and gst (gstreamer), which can decode any audio file for which a 38 | gstreamer plugin is present. 39 | 40 | The basic transcoder: 41 | - - - - - - - - - - - 42 | Only CD-quality, uncompressed (PCM) Wave files can be added to an audio 43 | compilation. Use i.e. your favorite audio player with a disc writer output 44 | mode / plugin to decompress your existing audio files. If .wav files are added 45 | to the compilation, their headers get checked to make sure they are of the 46 | right format. Note that this check is not very well tested (in particular it's 47 | not likely to work on big-endian machines like PowerPC). It does not require 48 | any external libraries 49 | 50 | The gst transcoder: 51 | - - - - - - - - - - 52 | Based on the gstreamer library, it can decode pretty much any audio content, 53 | as long as you have the appropriate plugins installed. Note that by default 54 | most distributions do _not_ install these plugins. But a simple search for 55 | gstreamer plugins in your package manager should quickly allow you to install 56 | them. 57 | 58 | You can at startup switch between the transcoders, see the command line help 59 | for more information. 60 | 61 | 62 | Requirements 63 | ============ 64 | * libisofs version 0.6.2 or newer 65 | * libburn version 0.4.2 or newer 66 | * WARNING: libburn 0.4.2 - 0.5.4 are API compatible, but might trigger 67 | an error in libburn's fifo code. 68 | RECOMMENDED is version 0.5.6 or newer, where the bug was fixed. 69 | 70 | Optional, but highly recommended 71 | -------------------------------- 72 | * gstreamer (1.0+, required for burning audio CDs from compressed music 73 | files) 74 | * gstreamer pbutils (they usually come with gstreamer as far as I know) 75 | * gstreamer plugins (look for the good, the bad and the ugly plugin pack, 76 | most likely you want all of these) 77 | 78 | Let the **highly recommended** part be highlighted once more. Of course 79 | gstreamer will not matter if you do not plan on burning audio CDs, but the 80 | other two libraries will come in handy in almost all situations. 81 | 82 | Optional, for maintenance 83 | ------------------------- 84 | * libxslt (for creating docs) 85 | 86 | 87 | The author works with both hal and thunar-vfs enabled, so there might be the 88 | occasional bug that breaks compilation without these components. Xfburn should 89 | work without these optional components, but it is not well tested at all. 90 | Should something not compile or work as expected, please report a bug, and it 91 | will get fixed. 92 | 93 | Future Plans 94 | ============ 95 | 96 | Missing functionality that would be nice to have: 97 | * Save and load compositions 98 | * Verification 99 | * Copy discs (needs backend support) 100 | * Automatic checksum creation 101 | * Plugin support 102 | 103 | There is no, and never will be, a timeline for these. Let us know if you think 104 | something is missing on this list. If you really need something implemented, 105 | feel free to help us out :-). 106 | 107 | At present development is in maintenance mode, as the author does not have a 108 | lot of time. 109 | 110 | 111 | Bugs & Feedback 112 | =============== 113 | 114 | Any comments are welcome! We aim to make xfburn a very easily usable program. 115 | So if you think something could be implemented differently, feel free to speak 116 | up and it will be considered. Please send any feedback to xfburn@xfce.org, or 117 | use the Xfce mailing lists. Bugs are best placed in the [Xfce bugtracker](https://gitlab.xfce.org/apps/xfburn/). 118 | 119 | Debugging 120 | --------- 121 | 122 | If xfburn crashes, freezes, or somehow makes no progress for you, then you can 123 | help greatly in debugging the problem. It does require you to build xfburn from 124 | the sources, and to install gdb. If you can handle that, here are the exact 125 | instructions: 126 | 127 | 1) Rebuild xfburn with debugging support - grab the sources, and run: 128 | ``` 129 | $ meson setup build 130 | $ meson compile -C build 131 | ``` 132 | 2) Enable core dumps, then run xfburn until it hangs, or crashes: 133 | ``` 134 | $ ulimit -c unlimited; xfburn/xfburn 2>&1 | tee xfburn.output 135 | ``` 136 | 3) From another terminal, kill xfburn (only if it hasn't crashed already, of course) 137 | ``` 138 | $ kill -SEGV `pidof xfburn` 139 | ``` 140 | 4) Get a backtrace from the coredump: 141 | ``` 142 | $ gdb xfburn/xfburn core.32270 --batch -ex 'thread apply all bt' > xfburn.backtrace 143 | ``` 144 | (Note that sometimes the core.xxxxxx file is just called core, and that 32270 is 145 | just an arbitrary number which was the process id - yours will be different) 146 | 5) Open up a bug report at our [issue tracker](https://gitlab.xfce.org/apps/xfburn/) for xfburn, and add 147 | both the xfburn.output and the xfburn.backtrace files to it. Done! 148 | There is no need to attach the core dump, as it is heavily system dependent. 149 | 150 | 151 | License 152 | ======= 153 | 154 | This program is released under the GNU GPL version 2 or newer. See COPYING for 155 | the full text of the license. 156 | -------------------------------------------------------------------------------- /xfburn/xfburn-compositions-notebook.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #include 20 | 21 | #include 22 | 23 | #include "xfburn-compositions-notebook.h" 24 | 25 | #include "xfburn-global.h" 26 | #include "xfburn-notebook-tab.h" 27 | #include "xfburn-welcome-tab.h" 28 | #include "xfburn-data-composition.h" 29 | #include "xfburn-audio-composition.h" 30 | 31 | #define XFBURN_COMPOSITIONS_NOTEBOOK_GET_PRIVATE(obj) (xfburn_compositions_notebook_get_instance_private (obj)) 32 | 33 | /* private members */ 34 | typedef struct 35 | { 36 | gpointer dummy; 37 | } XfburnCompositionsNotebookPrivate; 38 | 39 | 40 | /* internals */ 41 | static void cb_composition_close (XfburnNotebookTab *tab, GtkNotebook *notebook); 42 | static XfburnComposition * add_composition_with_data (XfburnCompositionsNotebook *notebook, XfburnCompositionType type, XfburnMainWindow *window); 43 | 44 | 45 | /* static member */ 46 | static GtkNotebookClass *parent_class = NULL; 47 | 48 | G_DEFINE_TYPE_WITH_PRIVATE(XfburnCompositionsNotebook, xfburn_compositions_notebook, GTK_TYPE_NOTEBOOK); 49 | 50 | static void 51 | xfburn_compositions_notebook_class_init (XfburnCompositionsNotebookClass * klass) 52 | { 53 | parent_class = g_type_class_peek_parent (klass); 54 | } 55 | 56 | static void 57 | cb_move_focus_out (GtkNotebook *notebook, GtkDirectionType *arg1, XfburnCompositionsNotebookPrivate *priv) 58 | { 59 | DBG ("%d", gtk_notebook_get_current_page (notebook)); 60 | } 61 | 62 | static void 63 | xfburn_compositions_notebook_init (XfburnCompositionsNotebook * notebook) 64 | { 65 | XfburnCompositionsNotebookPrivate *priv = XFBURN_COMPOSITIONS_NOTEBOOK_GET_PRIVATE (notebook); 66 | 67 | g_signal_connect (G_OBJECT (notebook), "move-focus-out", G_CALLBACK (cb_move_focus_out), priv); 68 | } 69 | 70 | /***********/ 71 | /* actions */ 72 | /***********/ 73 | 74 | /*************/ 75 | /* internals */ 76 | /*************/ 77 | static void 78 | cb_composition_close (XfburnNotebookTab *tab, GtkNotebook *notebook) 79 | { 80 | GtkWidget *composition; 81 | guint page_num; 82 | 83 | composition = g_object_get_data (G_OBJECT (tab), "composition"); 84 | page_num = gtk_notebook_page_num (notebook, composition); 85 | gtk_notebook_remove_page (notebook, page_num); 86 | 87 | gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), gtk_notebook_get_n_pages (GTK_NOTEBOOK (notebook)) > 1); 88 | } 89 | 90 | static XfburnComposition * 91 | add_composition_with_data (XfburnCompositionsNotebook *notebook, XfburnCompositionType type, XfburnMainWindow *window) 92 | { 93 | GtkWidget *composition = NULL; 94 | gchar *label_text = NULL; 95 | static guint i = 0; 96 | 97 | switch (type) { 98 | case XFBURN_DATA_COMPOSITION: 99 | composition = xfburn_data_composition_new (); 100 | label_text = g_strdup_printf ("%s %d", _(DATA_COMPOSITION_DEFAULT_NAME), ++i); 101 | break; 102 | case XFBURN_AUDIO_COMPOSITION: 103 | composition = xfburn_audio_composition_new (); 104 | label_text = g_strdup_printf ("%s %d", _("Audio composition"), ++i); 105 | break; 106 | } 107 | 108 | if (composition) { 109 | GtkWidget *tab = NULL; 110 | GtkWidget *menu_label = NULL; 111 | 112 | guint page_num; 113 | 114 | tab = xfburn_notebook_tab_new (label_text, TRUE); 115 | gtk_widget_show (tab); 116 | 117 | menu_label = gtk_label_new (label_text); 118 | gtk_widget_show (menu_label); 119 | 120 | gtk_widget_show (composition); 121 | page_num = gtk_notebook_append_page_menu (GTK_NOTEBOOK (notebook), composition, tab, menu_label); 122 | gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), page_num); 123 | 124 | gtk_notebook_set_tab_reorderable (GTK_NOTEBOOK (notebook), composition, 1); 125 | 126 | gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), gtk_notebook_get_n_pages (GTK_NOTEBOOK (notebook)) > 1); 127 | 128 | g_object_set_data (G_OBJECT (tab), "composition", composition); 129 | g_signal_connect (G_OBJECT (tab), "button-close-clicked", G_CALLBACK (cb_composition_close), notebook); 130 | } 131 | 132 | g_free (label_text); 133 | 134 | return XFBURN_COMPOSITION (composition); 135 | } 136 | 137 | /**********/ 138 | /* public */ 139 | /**********/ 140 | GtkWidget * 141 | xfburn_compositions_notebook_new (void) 142 | { 143 | GtkWidget *obj; 144 | 145 | obj = GTK_WIDGET (g_object_new (XFBURN_TYPE_COMPOSITIONS_NOTEBOOK, "scrollable", TRUE, "enable-popup", TRUE, NULL)); 146 | 147 | return obj; 148 | } 149 | 150 | XfburnComposition * 151 | xfburn_compositions_notebook_add_composition (XfburnCompositionsNotebook *notebook, XfburnCompositionType type) 152 | { 153 | return add_composition_with_data (notebook, type, NULL); 154 | } 155 | 156 | void 157 | xfburn_compositions_notebook_add_welcome_tab (XfburnCompositionsNotebook *notebook, GActionMap *action_group) 158 | { 159 | GtkWidget *welcome_tab = NULL; 160 | GtkWidget *label; 161 | 162 | welcome_tab = xfburn_welcome_tab_new (notebook, action_group); 163 | label = gtk_label_new (_("Welcome")); 164 | 165 | gtk_widget_show (welcome_tab); 166 | gtk_notebook_append_page (GTK_NOTEBOOK (notebook), welcome_tab, label); 167 | 168 | gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), gtk_notebook_get_n_pages (GTK_NOTEBOOK (notebook)) > 1); 169 | } 170 | 171 | void 172 | xfburn_compositions_notebook_close_composition (XfburnCompositionsNotebook *notebook) 173 | { 174 | gint page_num; 175 | 176 | page_num = gtk_notebook_get_current_page (GTK_NOTEBOOK (notebook)); 177 | if (page_num > 0) 178 | /* don't close the welcome page */ 179 | gtk_notebook_remove_page (GTK_NOTEBOOK (notebook), page_num); 180 | } 181 | -------------------------------------------------------------------------------- /xfburn/xfburn-transcoder.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2008 David Mohr (dmohr@mcbf.net) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #include 20 | #include 21 | 22 | #include "xfburn-global.h" 23 | 24 | #include "xfburn-transcoder.h" 25 | #include "xfburn-error.h" 26 | 27 | static void xfburn_transcoder_base_init (XfburnTranscoderInterface * iface); 28 | 29 | XfburnTranscoder *transcoder = NULL; 30 | 31 | /*************************/ 32 | /* interface declaration */ 33 | /*************************/ 34 | GType 35 | xfburn_transcoder_get_type (void) 36 | { 37 | static GType type = 0; 38 | 39 | if (type == 0) { 40 | static const GTypeInfo our_info = { 41 | sizeof (XfburnTranscoderInterface), 42 | (GBaseInitFunc) xfburn_transcoder_base_init , 43 | NULL, 44 | NULL, 45 | NULL, 46 | NULL, 47 | 0, 48 | 0, 49 | NULL, 50 | NULL 51 | }; 52 | 53 | type = g_type_register_static (G_TYPE_INTERFACE, "XfburnTranscoderInterface", &our_info, 0); 54 | g_type_interface_add_prerequisite (type, G_TYPE_OBJECT); 55 | } 56 | 57 | return type; 58 | } 59 | 60 | static void 61 | xfburn_transcoder_base_init (XfburnTranscoderInterface * iface) 62 | { 63 | static gboolean initialized = FALSE; 64 | 65 | if (!initialized) { 66 | initialized = TRUE; 67 | } 68 | } 69 | 70 | /* */ 71 | /* internals */ 72 | /* */ 73 | 74 | /* */ 75 | /* public */ 76 | /* */ 77 | 78 | const gchar * 79 | xfburn_transcoder_get_name (XfburnTranscoder *trans) 80 | { 81 | XfburnTranscoderInterface *iface = XFBURN_TRANSCODER_GET_INTERFACE (trans); 82 | if (iface->get_name) 83 | return iface->get_name (trans); 84 | else 85 | return _("none"); 86 | } 87 | 88 | const gchar * 89 | xfburn_transcoder_get_description (XfburnTranscoder *trans) 90 | { 91 | XfburnTranscoderInterface *iface = XFBURN_TRANSCODER_GET_INTERFACE (trans); 92 | if (iface->get_description) 93 | return iface->get_description (trans); 94 | else 95 | return _("none"); 96 | } 97 | 98 | gboolean 99 | xfburn_transcoder_is_initialized (XfburnTranscoder *trans, GError **error) 100 | { 101 | XfburnTranscoderInterface *iface = XFBURN_TRANSCODER_GET_INTERFACE (trans); 102 | if (iface->is_initialized) 103 | return iface->is_initialized (trans, error); 104 | 105 | g_warning ("Falling back to base implementation for xfburn_transcoder_is_initialized, which always says false."); 106 | g_set_error (error, XFBURN_ERROR, XFBURN_ERROR_NOT_IMPLEMENTED, _("not implemented")); 107 | return FALSE; 108 | } 109 | 110 | XfburnAudioTrack * 111 | xfburn_transcoder_get_audio_track (XfburnTranscoder *trans, const gchar *fn, GError **error) 112 | { 113 | XfburnTranscoderInterface *iface = XFBURN_TRANSCODER_GET_INTERFACE (trans); 114 | 115 | if (iface->get_audio_track) { 116 | XfburnAudioTrack *atrack = g_new0 (XfburnAudioTrack, 1); 117 | gboolean valid_track; 118 | 119 | atrack->inputfile = g_strdup (fn); 120 | atrack->pos = -1; 121 | 122 | valid_track = iface->get_audio_track (trans, atrack, error); 123 | 124 | if (valid_track) 125 | return atrack; 126 | 127 | /* not a valid track, clean up */ 128 | g_boxed_free (XFBURN_TYPE_AUDIO_TRACK, atrack); 129 | return NULL; 130 | } 131 | 132 | g_warning ("Falling back to base implementation for xfburn_transcoder_get_audio_track, which always says false."); 133 | g_set_error (error, XFBURN_ERROR, XFBURN_ERROR_NOT_IMPLEMENTED, _("not implemented")); 134 | return NULL; 135 | } 136 | 137 | struct burn_track * 138 | xfburn_transcoder_create_burn_track (XfburnTranscoder *trans, XfburnAudioTrack *atrack, GError **error) 139 | { 140 | XfburnTranscoderInterface *iface = XFBURN_TRANSCODER_GET_INTERFACE (trans); 141 | if (iface->create_burn_track) 142 | return iface->create_burn_track (trans, atrack, error); 143 | 144 | g_warning ("Falling back to empty base implementation for xfburn_transcoder_create_burn_track."); 145 | g_set_error (error, XFBURN_ERROR, XFBURN_ERROR_NOT_IMPLEMENTED, _("not implemented")); 146 | return NULL; 147 | } 148 | 149 | gboolean 150 | xfburn_transcoder_prepare (XfburnTranscoder *trans, GError **error) 151 | { 152 | XfburnTranscoderInterface *iface = XFBURN_TRANSCODER_GET_INTERFACE (trans); 153 | 154 | if (iface->prepare) 155 | return iface->prepare (trans, error); 156 | 157 | /* this function is not required by the interface */ 158 | return TRUE; 159 | } 160 | 161 | void 162 | xfburn_transcoder_finish (XfburnTranscoder *trans) 163 | { 164 | XfburnTranscoderInterface *iface = XFBURN_TRANSCODER_GET_INTERFACE (trans); 165 | 166 | if (iface->finish) 167 | iface->finish (trans); 168 | 169 | /* this function is not required by the interface */ 170 | } 171 | 172 | gboolean 173 | xfburn_transcoder_free_burning_resources (XfburnTranscoder *trans, XfburnAudioTrack *atrack, GError **error) 174 | { 175 | XfburnTranscoderInterface *iface = XFBURN_TRANSCODER_GET_INTERFACE (trans); 176 | 177 | /* these are part of XfburnAudioTrack, and will be present for all implementations */ 178 | close (atrack->fd); 179 | burn_source_free (atrack->src); 180 | 181 | /* allow for additional resource deallocation */ 182 | if (iface->free_burning_resources) 183 | return iface->free_burning_resources (trans, atrack, error); 184 | 185 | /* this function is not required by the interface */ 186 | return TRUE; 187 | } 188 | 189 | 190 | void 191 | xfburn_transcoder_free_track (XfburnTranscoder *trans, XfburnAudioTrack *atrack) 192 | { 193 | g_free (atrack->inputfile); 194 | 195 | if (atrack->artist) 196 | g_free (atrack->artist); 197 | if (atrack->title) 198 | g_free (atrack->title); 199 | } 200 | 201 | void 202 | xfburn_transcoder_set_global (XfburnTranscoder *trans) 203 | { 204 | transcoder = trans; 205 | } 206 | 207 | XfburnTranscoder * 208 | xfburn_transcoder_get_global (void) 209 | { 210 | g_object_ref (transcoder); 211 | return transcoder; 212 | } 213 | -------------------------------------------------------------------------------- /xfburn/xfburn-notebook-tab.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 2 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 | */ 18 | 19 | #include 20 | 21 | #include 22 | 23 | #include "xfburn-notebook-tab.h" 24 | 25 | #define XFBURN_NOTEBOOK_TAB_GET_PRIVATE(obj) (xfburn_notebook_tab_get_instance_private (obj)) 26 | 27 | enum { 28 | BUTTON_CLOSE_CLICKED, 29 | LAST_SIGNAL, 30 | }; 31 | 32 | enum { 33 | PROP_0, 34 | PROP_LABEL, 35 | PROP_SHOW_BUTTON_CLOSE, 36 | }; 37 | 38 | /* private members */ 39 | typedef struct 40 | { 41 | GtkWidget *label; 42 | GtkWidget *button_close; 43 | } XfburnNotebookTabPrivate; 44 | 45 | 46 | /* prototypes */ 47 | static void xfburn_notebook_tab_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec); 48 | static void xfburn_notebook_tab_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec); 49 | 50 | static void cb_composition_close (GtkButton *button, XfburnNotebookTab *tab); 51 | 52 | /* static member */ 53 | static GtkBoxClass *parent_class = NULL; 54 | static guint notebook_tab_signals[LAST_SIGNAL]; 55 | 56 | /************************/ 57 | /* class initiliazation */ 58 | /************************/ 59 | G_DEFINE_TYPE_WITH_PRIVATE(XfburnNotebookTab, xfburn_notebook_tab, GTK_TYPE_BOX); 60 | 61 | static void 62 | xfburn_notebook_tab_class_init (XfburnNotebookTabClass * klass) 63 | { 64 | GObjectClass *object_class = G_OBJECT_CLASS (klass); 65 | 66 | parent_class = g_type_class_peek_parent (klass); 67 | 68 | object_class->set_property = xfburn_notebook_tab_set_property; 69 | object_class->get_property = xfburn_notebook_tab_get_property; 70 | 71 | notebook_tab_signals[BUTTON_CLOSE_CLICKED] = g_signal_new ("button-close-clicked", 72 | G_TYPE_FROM_CLASS (object_class), G_SIGNAL_ACTION, 73 | G_STRUCT_OFFSET (XfburnNotebookTabClass, button_close_clicked), 74 | NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); 75 | 76 | g_object_class_install_property (object_class, PROP_LABEL, 77 | g_param_spec_string ("label", _("Label"), _("The text of the label"), 78 | NULL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); 79 | g_object_class_install_property (object_class, PROP_SHOW_BUTTON_CLOSE, 80 | g_param_spec_boolean ("show-button-close", _("Show close button"), _("Determine whether the close button is visible"), 81 | TRUE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); 82 | } 83 | 84 | static void 85 | xfburn_notebook_tab_init (XfburnNotebookTab * tab) 86 | { 87 | XfburnNotebookTabPrivate *priv = XFBURN_NOTEBOOK_TAB_GET_PRIVATE (tab); 88 | GtkBox *hbox = GTK_BOX (tab); 89 | GtkWidget *img; 90 | 91 | gtk_orientable_set_orientation (GTK_ORIENTABLE (hbox), GTK_ORIENTATION_HORIZONTAL); 92 | 93 | priv->label = gtk_label_new (""); 94 | gtk_widget_show (priv->label); 95 | gtk_box_pack_start (hbox, priv->label, TRUE, TRUE, 0); 96 | 97 | priv->button_close = gtk_button_new (); 98 | gtk_button_set_relief (GTK_BUTTON (priv->button_close), GTK_RELIEF_NONE); 99 | gtk_widget_show (priv->button_close); 100 | 101 | img = gtk_image_new_from_icon_name ("window-close-symbolic", GTK_ICON_SIZE_MENU); 102 | gtk_widget_show (img); 103 | gtk_container_add (GTK_CONTAINER (priv->button_close), img); 104 | gtk_box_pack_start (hbox, priv->button_close, FALSE, FALSE, 0); 105 | 106 | g_signal_connect (G_OBJECT (priv->button_close), "clicked", G_CALLBACK (cb_composition_close), tab); 107 | } 108 | 109 | static void 110 | xfburn_notebook_tab_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) 111 | { 112 | XfburnNotebookTabPrivate *priv = XFBURN_NOTEBOOK_TAB_GET_PRIVATE (XFBURN_NOTEBOOK_TAB (object)); 113 | 114 | switch (prop_id) { 115 | case PROP_LABEL: 116 | g_value_set_string (value, gtk_label_get_text (GTK_LABEL (priv->label))); 117 | break; 118 | case PROP_SHOW_BUTTON_CLOSE: 119 | g_object_get_property (G_OBJECT (priv->button_close), "visible", value); 120 | break; 121 | default: 122 | G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); 123 | break; 124 | } 125 | } 126 | 127 | static void 128 | xfburn_notebook_tab_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) 129 | { 130 | XfburnNotebookTabPrivate *priv = XFBURN_NOTEBOOK_TAB_GET_PRIVATE (XFBURN_NOTEBOOK_TAB (object)); 131 | 132 | switch (prop_id) { 133 | case PROP_LABEL: 134 | gtk_label_set_text (GTK_LABEL (priv->label), g_value_get_string (value)); 135 | break; 136 | case PROP_SHOW_BUTTON_CLOSE: 137 | if (g_value_get_boolean (value)) 138 | gtk_widget_show (priv->button_close); 139 | else 140 | gtk_widget_hide (priv->button_close); 141 | 142 | break; 143 | default: 144 | G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); 145 | break; 146 | } 147 | } 148 | 149 | /*************/ 150 | /* internals */ 151 | /*************/ 152 | static void 153 | cb_composition_close (GtkButton *button, XfburnNotebookTab *tab) 154 | { 155 | g_signal_emit (G_OBJECT (tab), notebook_tab_signals[BUTTON_CLOSE_CLICKED], 0); 156 | } 157 | 158 | /**********/ 159 | /* public */ 160 | /**********/ 161 | GtkWidget * 162 | xfburn_notebook_tab_new (const gchar *label, gboolean show_button_close) 163 | { 164 | GtkWidget *obj; 165 | 166 | obj = GTK_WIDGET (g_object_new (XFBURN_TYPE_NOTEBOOK_TAB, "homogeneous", FALSE, 167 | "label", label, "show-button-close", show_button_close, NULL)); 168 | 169 | return obj; 170 | } 171 | 172 | void 173 | xfburn_notebook_tab_set_label (XfburnNotebookTab *tab, const gchar *label) 174 | { 175 | XfburnNotebookTabPrivate *priv = XFBURN_NOTEBOOK_TAB_GET_PRIVATE (tab); 176 | 177 | gtk_label_set_text (GTK_LABEL (priv->label), label); 178 | } 179 | 180 | void 181 | xfburn_notebook_tab_show_button_close (XfburnNotebookTab *tab) 182 | { 183 | XfburnNotebookTabPrivate *priv = XFBURN_NOTEBOOK_TAB_GET_PRIVATE (tab); 184 | 185 | gtk_widget_show (priv->button_close); 186 | } 187 | 188 | void 189 | xfburn_notebook_tab_show_button_hide (XfburnNotebookTab *tab) 190 | { 191 | XfburnNotebookTabPrivate *priv = XFBURN_NOTEBOOK_TAB_GET_PRIVATE (tab); 192 | 193 | gtk_widget_hide (priv->button_close); 194 | } 195 | -------------------------------------------------------------------------------- /meson.build: -------------------------------------------------------------------------------- 1 | project( 2 | 'xfburn', 3 | 'c', 4 | version: '0.8.0-dev', 5 | license: 'GPL-2.0-or-later', 6 | meson_version: '>= 0.56.0', 7 | default_options: [ 8 | 'c_std=gnu11', 9 | 'buildtype=debugoptimized', 10 | 'warning_level=2', 11 | ] 12 | ) 13 | 14 | project_namespace = 'apps' 15 | pkgdatadir = get_option('prefix') / get_option('datadir') / meson.project_name() 16 | copyright_year = '2025' 17 | 18 | cc = meson.get_compiler('c') 19 | fs = import('fs') 20 | gnome = import('gnome') 21 | i18n = import('i18n') 22 | 23 | dependency_versions = { 24 | 'gudev': '>= 145', 25 | 'gst': '>= 1.0.0', 26 | 'libburn': '>= 0.4.2', 27 | 'libisofs': '>= 0.6.2', 28 | 'glib': '>= 2.66.0', 29 | 'gtk': '>= 3.24.0', 30 | 'xfce4': '>= 4.18.0', 31 | } 32 | 33 | gio = dependency('gio-2.0', version: dependency_versions['glib']) 34 | giounix = dependency('gio-unix-2.0', version: dependency_versions['glib']) 35 | glib = dependency('glib-2.0', version: dependency_versions['glib']) 36 | gthread = dependency('gthread-2.0', version: dependency_versions['glib']) 37 | gtk = dependency('gtk+-3.0', version: dependency_versions['gtk']) 38 | libburn = dependency('libburn-1', version: dependency_versions['libburn']) 39 | libisofs = dependency('libisofs-1', version: dependency_versions['libisofs']) 40 | libxfce4util = dependency('libxfce4util-1.0', version: dependency_versions['xfce4']) 41 | libxfce4ui = dependency('libxfce4ui-2', version: dependency_versions['xfce4']) 42 | if libxfce4ui.version().version_compare('< 4.21.0') 43 | exo = dependency('exo-2', version: dependency_versions['xfce4']) 44 | else 45 | exo = dependency('', required: false) 46 | endif 47 | 48 | libm = cc.find_library('m', required: true) 49 | xsltproc = find_program('xsltproc', required: true) 50 | 51 | feature_cflags = [] 52 | 53 | # Feature: 'gudev' 54 | gudev = dependency('gudev-1.0', version: dependency_versions['gudev'], required: get_option('gudev')) 55 | if gudev.found() 56 | feature_cflags += '-DHAVE_GUDEV=1' 57 | endif 58 | 59 | # Feature: 'gstreamer' 60 | gst = dependency('gstreamer-1.0', version: dependency_versions['gst'], required: get_option('gstreamer')) 61 | if gst.found() 62 | feature_cflags += '-DHAVE_GST=1' 63 | gstpbutils = dependency('gstreamer-pbutils-1.0', version: dependency_versions['gst']) 64 | else 65 | gstpbutils = dependency('', required: false) 66 | endif 67 | 68 | extra_cflags = [] 69 | extra_cflags_check = [ 70 | '-Wmissing-declarations', 71 | '-Wmissing-noreturn', 72 | '-Wold-style-definition', 73 | '-Wredundant-decls', 74 | '-Wpointer-arith', 75 | '-Wcast-align', 76 | '-Winit-self', 77 | '-Wshadow', 78 | '-Wmissing-include-dirs', 79 | '-Wundef', 80 | '-Wformat', 81 | '-Wformat-security', 82 | '-Wformat-y2k', 83 | '-Wnested-externs', 84 | '-Wno-unused-parameter', 85 | '-Wno-declaration-after-statement', 86 | '-Wno-missing-field-initializers', 87 | '-Werror=implicit-function-declaration', 88 | '-Wno-error=deprecated-declarations', 89 | ] 90 | 91 | headers = [ 92 | 'stdlib.h', 93 | 'string.h', 94 | ] 95 | foreach header : headers 96 | if cc.check_header(header) 97 | extra_cflags += '-DHAVE_@0@=1'.format(header.underscorify().to_upper()) 98 | endif 99 | endforeach 100 | 101 | optimization = get_option('optimization') 102 | if get_option('debug') and optimization in ['0', 'g'] 103 | extra_cflags_check += '-fstack-protector-strong' 104 | extra_cflags += [ 105 | '-DDEBUG=1', 106 | '-DDEBUG_TRACE=1', 107 | '-DG_ENABLE_DEBUG', 108 | ] 109 | elif optimization in ['3', 's'] 110 | extra_cflags += [ 111 | '-DNDEBUG', 112 | '-DG_DISABLE_CAST_CHECKS', 113 | '-DG_DISABLE_ASSERT', 114 | ] 115 | endif 116 | 117 | if dependency_versions.has_key('glib') 118 | glib_version_parts = dependency_versions['glib'].split(' ') 119 | glib_min_version_parts = glib_version_parts[1].split('.') 120 | glib_min_version_define = 'GLIB_VERSION_@0@_@1@'.format(glib_min_version_parts[0], glib_min_version_parts[1]) 121 | extra_cflags += [ 122 | '-DGLIB_VERSION_MIN_REQUIRED=@0@'.format(glib_min_version_define), 123 | '-DGLIB_VERSION_MAX_ALLOWED=@0@'.format(glib_min_version_define), 124 | '-DG_LOG_DOMAIN="@0@"'.format(meson.project_name()), 125 | '-DG_LOG_USE_STRUCTURED=1', 126 | ] 127 | endif 128 | 129 | version_parts = meson.project_version().split('-dev')[0].split('.') 130 | version_short = '@0@.@1@'.format(version_parts[0], version_parts[1]) 131 | 132 | extra_cflags += [ 133 | '-DPACKAGE="@0@"'.format(meson.project_name()), 134 | '-DPACKAGE_NAME="@0@"'.format(meson.project_name()), 135 | '-DPACKAGE_VERSION="@0@"'.format(meson.project_version()), 136 | '-DVERSION="@0@"'.format(meson.project_version()), 137 | '-DVERSION_SHORT="@0@"'.format(version_short), 138 | '-DPACKAGE_STRING="@0@ @1@"'.format(meson.project_name(), meson.project_version()), 139 | '-DPACKAGE_DATADIR="@0@"'.format(pkgdatadir), 140 | '-DCOPYRIGHT_YEAR="@0@"'.format(copyright_year), 141 | '-DPACKAGE_LOCALE_DIR="@0@"'.format(get_option('prefix') / get_option('localedir')), 142 | '-DPACKAGE_BUGREPORT="https://gitlab.xfce.org/@0@/@1@/-/issues"'.format(project_namespace, meson.project_name()), 143 | '-DGETTEXT_PACKAGE="@0@"'.format(meson.project_name()), 144 | '-DPREFIX="@0@"'.format(get_option('prefix')), 145 | '-DBINDIR="@0@"'.format(get_option('prefix') / get_option('bindir')), 146 | '-DDATADIR="@0@"'.format(get_option('prefix') / get_option('datadir')), 147 | '-DINCLUDEDIR="@0@"'.format(get_option('prefix') / get_option('includedir')), 148 | '-DLIBDIR="@0@"'.format(get_option('prefix') / get_option('libdir')), 149 | '-DLIBEXECDIR="@0@"'.format(get_option('prefix') / get_option('libexecdir')), 150 | '-DLOCALEDIR="@0@"'.format(get_option('prefix') / get_option('localedir')), 151 | '-DLOCALSTATEDIR="@0@"'.format(get_option('prefix') / get_option('localstatedir')), 152 | '-DSBINDIR="@0@"'.format(get_option('prefix') / get_option('sbindir')), 153 | '-DSYSCONFDIR="@0@"'.format(get_option('prefix') / get_option('sysconfdir')), 154 | '-DHAVE_XFCE_REVISION_H=1', 155 | ] 156 | 157 | add_project_arguments(cc.get_supported_arguments(extra_cflags_check), language: 'c') 158 | add_project_arguments(extra_cflags, language: 'c') 159 | add_project_arguments(feature_cflags, language: 'c') 160 | 161 | xfce_revision_h = vcs_tag( 162 | command: ['git', 'rev-parse', '--short', 'HEAD'], 163 | fallback: 'UNKNOWN', 164 | input: 'xfce-revision.h.in', 165 | output: 'xfce-revision.h', 166 | replace_string: '@REVISION@', 167 | ) 168 | 169 | i18n.merge_file( 170 | input: 'org.xfce.xfburn.appdata.xml.in', 171 | output: 'org.xfce.xfburn.appdata.xml', 172 | po_dir: 'po', 173 | type: 'xml', 174 | install: true, 175 | install_dir: get_option('prefix') / get_option('datadir') / 'metainfo', 176 | ) 177 | 178 | i18n.merge_file( 179 | input: 'xfburn.desktop.in', 180 | output: 'xfburn.desktop', 181 | po_dir: 'po', 182 | type: 'desktop', 183 | install: true, 184 | install_dir: get_option('prefix') / get_option('datadir') / 'applications', 185 | ) 186 | 187 | install_data( 188 | ['xfburn-popup-menus.ui', 'xfburn-toolbars.ui', 'xfburn.ui'], 189 | install_dir: get_option('prefix') / get_option('datadir') / 'xfburn', 190 | ) 191 | 192 | subdir('desktop-integration') 193 | subdir('docs') 194 | subdir('icons') 195 | subdir('po') 196 | subdir('xfburn') 197 | -------------------------------------------------------------------------------- /docs/xfburn.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | xfburn 11 | User Commands 12 | 13 | 1 14 | 15 | 16 | 17 | xfburn 18 | An easy to use burning application 19 | 20 | 21 | 22 | 23 | xfburn 24 | --burn-image 25 | IMAGE 26 | 27 | 28 | xfburn 29 | options 30 | 31 | --data-composition 32 | --audio-composition 33 | 34 | 35 | FILE 36 | 37 | 38 | 39 | xfburn 40 | --blank 41 | 42 | 43 | xfburn 44 | --transcoder 45 | 46 | list 47 | basic 48 | gst 49 | 50 | 51 | 52 | 53 | 54 | Description 55 | 56 | xfburn is an easy to use burning application based on the libburnia libraries. 57 | So far it features burning to CD, and DVD, as well as blanking rewritable discs. Data and audio 58 | compositions can get created from scratch. Images in .iso format can be burned, or created. 59 | 60 | 61 | 62 | 63 | Invocation 64 | 65 | xfburn can be called with to immediately show the burn 66 | image dialog. Optionally the image file can be preselected by appending it to 67 | the command line. 68 | 69 | 70 | 71 | When the or the options is specified, 72 | then xfburn's main window will open up with the selected composition type instead of the welcome 73 | tab. The filename(s) of the contents of the composition may follow the composition option. 74 | 75 | 76 | 77 | Options 78 | 79 | 80 | , 81 | 82 | Print brief help and exit. 83 | 84 | 85 | 86 | 87 | , 88 | 89 | Print version information and exit. 90 | 91 | 92 | 93 | 94 | , IMAGE 95 | 96 | 97 | Open the burn image dialog. Optionally the image is given as IMAGE. 98 | 99 | 100 | 101 | 102 | 103 | , 104 | 105 | 106 | Open the blank disc dialog. 107 | 108 | 109 | 110 | 111 | 112 | , FILE(S) 113 | 114 | 115 | Opens xfburn with a new data composition. Optionally FILE(S) 116 | to be added to the composition follow. 117 | 118 | 119 | 120 | 121 | 122 | , MUSIC FILE(S) 123 | 124 | 125 | Opens xfburn with a new audio composition. Optionally MUSIC FILE(S) 126 | to be added to the composition follow. 127 | 128 | 129 | 130 | 131 | 132 | , TRANSCODER 133 | 134 | 135 | Selects the transcoder to use when creating audio compositions. Specify list to see 136 | all available options. Currently implemented are the gst and the basic transcoder. 137 | gst uses gstreamer, and can allows the use of any gstreamer-supported media file. 138 | basic only allows using audio files already in CD format: 48khz uncompressed WAV 139 | files. 140 | 141 | 142 | 143 | 144 | 145 | , 146 | 147 | 148 | When the or the option is selected, xfburn will quit after the 149 | dialog exists, unless the option is given. In that case the main xfburn 150 | window is shown after the dialog has been closed. 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | Use the specified X for the user interface. 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | Author 168 | 169 | xfburn was written by 170 | David Mohr squisher@xfce.org, 171 | Jean-François Wauthy pollux@xfce.org, 172 | Mario Đanić mario@libburnia-project.org, 173 | Rene Kjellerup rk.katana.steel@gmail.com, 174 | Hunter Turcin huntertur@gmail.com, 175 | and the Xfce development team. 176 | 177 | 178 | This manual page was written by David Mohr squisher@xfce.org. It is based on Benedikt Meurer's Thunar man page. 179 | 180 | 181 | 182 | -------------------------------------------------------------------------------- /xfburn/xfburn-disc-usage.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2005-2006 Jean-François Wauthy (pollux@xfce.org) 3 | * Copyright (c) 2008 David Mohr 4 | * 5 | * This program is free software; you can redistribute it and/or modify 6 | * it under the terms of the GNU General Public License as published by 7 | * the Free Software Foundation; either version 2 of the License, or 8 | * (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | */ 19 | 20 | /* 21 | * This is an instantiable base class for the disc usage. 22 | * 23 | * Every composition type should extend it, but for testing it can be used 24 | * as is. 25 | */ 26 | 27 | #include 28 | #include 29 | #include 30 | 31 | #include "xfburn-disc-usage.h" 32 | #include "xfburn-global.h" 33 | #include "xfburn-settings.h" 34 | #include "xfburn-utils.h" 35 | #include "xfburn-main-window.h" 36 | 37 | 38 | /* prototypes */ 39 | static void xfburn_disc_usage_class_init (XfburnDiscUsageClass *, gpointer); 40 | static GObject * xfburn_disc_usage_constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_properties); 41 | 42 | static void update_size_default (XfburnDiscUsage *du); 43 | static gboolean can_burn_default (XfburnDiscUsage *du); 44 | static void cb_button_clicked (GtkButton *, XfburnDiscUsage *); 45 | static void cb_combo_changed (GtkComboBox *, XfburnDiscUsage *); 46 | 47 | /* globals */ 48 | static GtkHBoxClass *parent_class = NULL; 49 | 50 | #define DEFAULT_DISK_SIZE_LABEL 2 51 | #define LAST_CD_LABEL 4 52 | 53 | /* the sizes here are pretty arbitrary and are only for testing */ 54 | XfburnDiscLabels testdiscsizes[] = { 55 | { 56 | 1, "size 1"}, 57 | { 58 | 100, "size 100"}, 59 | { 60 | 10000, "size 10000"}, 61 | { 62 | 1000000, "size 1m"}, 63 | { 64 | 100000000, "size 100m"}, 65 | { 66 | G_GINT64_CONSTANT (10000000000), "10^10"}, 67 | { 68 | G_GINT64_CONSTANT (1000000000000), "10^12"}, 69 | }; 70 | 71 | /* signals */ 72 | enum 73 | { 74 | BEGIN_BURN, 75 | LAST_SIGNAL, 76 | }; 77 | 78 | static guint signals[LAST_SIGNAL]; 79 | 80 | /*******************************/ 81 | /* XfburnDiscUsage class */ 82 | /*******************************/ 83 | 84 | GType 85 | xfburn_disc_usage_get_type (void) 86 | { 87 | static GType disc_usage_type = 0; 88 | 89 | if (!disc_usage_type) { 90 | static const GTypeInfo disc_usage_info = { 91 | sizeof (XfburnDiscUsageClass), 92 | NULL, 93 | NULL, 94 | (GClassInitFunc) xfburn_disc_usage_class_init, 95 | NULL, 96 | NULL, 97 | sizeof (XfburnDiscUsage), 98 | 0, 99 | NULL, 100 | NULL 101 | }; 102 | 103 | disc_usage_type = g_type_register_static (GTK_TYPE_BOX, "XfburnDiscUsage", &disc_usage_info, 0); 104 | } 105 | 106 | return disc_usage_type; 107 | } 108 | 109 | static void 110 | xfburn_disc_usage_class_init (XfburnDiscUsageClass * klass, gpointer data) 111 | { 112 | GObjectClass *gobject_class; 113 | 114 | parent_class = g_type_class_peek_parent (klass); 115 | 116 | gobject_class = G_OBJECT_CLASS (klass); 117 | gobject_class->constructor = xfburn_disc_usage_constructor; 118 | 119 | signals[BEGIN_BURN] = g_signal_new ("begin-burn", G_TYPE_FROM_CLASS (gobject_class), G_SIGNAL_ACTION, 120 | G_STRUCT_OFFSET (XfburnDiscUsageClass, begin_burn), 121 | NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); 122 | 123 | /* install default values */ 124 | klass->update_size = update_size_default; 125 | klass->can_burn = can_burn_default; 126 | klass->labels = testdiscsizes; 127 | klass->num_labels = G_N_ELEMENTS (testdiscsizes); 128 | } 129 | 130 | static GObject * 131 | xfburn_disc_usage_constructor (GType type, guint n_construct_properties, GObjectConstructParam *construct_properties) 132 | { 133 | GObject *gobj; 134 | XfburnDiscUsage *disc_usage; 135 | XfburnDiscUsageClass *class; 136 | int i; 137 | 138 | gobj = G_OBJECT_CLASS (parent_class)->constructor (type, n_construct_properties, construct_properties); 139 | disc_usage = XFBURN_DISC_USAGE (gobj); 140 | class = XFBURN_DISC_USAGE_GET_CLASS (disc_usage); 141 | 142 | disc_usage->size = 0; 143 | 144 | disc_usage->progress_bar = xfburn_create_progress_bar ("0"); 145 | gtk_box_pack_start (GTK_BOX (disc_usage), disc_usage->progress_bar, TRUE, TRUE, BORDER); 146 | gtk_widget_show (disc_usage->progress_bar); 147 | 148 | disc_usage->combo = gtk_combo_box_text_new (); 149 | for (i = 0; i < class->num_labels; i++) { 150 | gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (disc_usage->combo), class->labels[i].label); 151 | } 152 | gtk_combo_box_set_active (GTK_COMBO_BOX (disc_usage->combo), DEFAULT_DISK_SIZE_LABEL); 153 | gtk_box_pack_start (GTK_BOX (disc_usage), disc_usage->combo, FALSE, FALSE, BORDER); 154 | gtk_widget_show (disc_usage->combo); 155 | 156 | disc_usage->button = xfce_gtk_button_new_mixed ("stock_xfburn", _("Proceed to Burn")); 157 | gtk_box_pack_start (GTK_BOX (disc_usage), disc_usage->button, FALSE, FALSE, BORDER); 158 | gtk_widget_set_sensitive (disc_usage->button, FALSE); 159 | gtk_widget_show (disc_usage->button); 160 | g_signal_connect (G_OBJECT (disc_usage->button), "clicked", G_CALLBACK (cb_button_clicked), disc_usage); 161 | 162 | g_signal_connect (G_OBJECT (disc_usage->combo), "changed", G_CALLBACK (cb_combo_changed), disc_usage); 163 | 164 | class->update_size (disc_usage); 165 | 166 | return gobj; 167 | } 168 | 169 | /* internals */ 170 | static void 171 | update_size_default (XfburnDiscUsage *du) 172 | { 173 | gchar *size; 174 | 175 | size = g_strdup_printf ("%.0lf", du->size); 176 | 177 | gtk_progress_bar_set_text (GTK_PROGRESS_BAR (du->progress_bar), size); 178 | 179 | g_free (size); 180 | } 181 | 182 | static gboolean 183 | can_burn_default (XfburnDiscUsage *du) 184 | { 185 | return TRUE; 186 | } 187 | 188 | static void 189 | cb_button_clicked (GtkButton *button, XfburnDiscUsage *du) 190 | { 191 | XfburnDiscUsageClass *class = XFBURN_DISC_USAGE_GET_CLASS (du); 192 | 193 | if (du->size <= class->labels[gtk_combo_box_get_active (GTK_COMBO_BOX (du->combo))].size) { 194 | g_signal_emit (G_OBJECT (du), signals[BEGIN_BURN], 0); 195 | } else { 196 | xfce_dialog_show_error (NULL, NULL, _("You are trying to burn more onto the disc than it can hold.")); 197 | } 198 | } 199 | 200 | static void 201 | update_size (XfburnDiscUsage * disc_usage, gboolean manual) 202 | { 203 | XfburnDiscUsageClass *class = XFBURN_DISC_USAGE_GET_CLASS (disc_usage); 204 | int i; 205 | 206 | class->update_size (disc_usage); 207 | 208 | if (!manual) { 209 | i = 0; 210 | while (i < class->num_labels && disc_usage->size > class->labels[i].size) { 211 | i++; 212 | } 213 | gtk_combo_box_set_active (GTK_COMBO_BOX (disc_usage->combo), (inum_labels ? i: i-1)); 214 | } 215 | 216 | gtk_widget_set_sensitive (disc_usage->button, class->can_burn (disc_usage)); 217 | } 218 | 219 | static void 220 | cb_combo_changed (GtkComboBox * combo, XfburnDiscUsage * usage) 221 | { 222 | update_size (usage, TRUE); 223 | } 224 | 225 | /* public methods */ 226 | gdouble 227 | xfburn_disc_usage_get_size (XfburnDiscUsage * disc_usage) 228 | { 229 | return disc_usage->size; 230 | } 231 | 232 | void 233 | xfburn_disc_usage_set_size (XfburnDiscUsage * disc_usage, gdouble size) 234 | { 235 | disc_usage->size = size; 236 | update_size (disc_usage, FALSE); 237 | } 238 | 239 | void 240 | xfburn_disc_usage_add_size (XfburnDiscUsage * disc_usage, gdouble size) 241 | { 242 | disc_usage->size = disc_usage->size + size; 243 | update_size (disc_usage, FALSE); 244 | } 245 | 246 | void 247 | xfburn_disc_usage_sub_size (XfburnDiscUsage * disc_usage, gdouble size) 248 | { 249 | disc_usage->size = disc_usage->size - size; 250 | update_size (disc_usage, FALSE); 251 | } 252 | 253 | XfburnDiscType 254 | xfburn_disc_usage_get_disc_type (XfburnDiscUsage * disc_usage) 255 | { 256 | if (gtk_combo_box_get_active (GTK_COMBO_BOX (disc_usage->combo)) > LAST_CD_LABEL) 257 | return DVD_DISC; 258 | else 259 | return CD_DISC; 260 | } 261 | 262 | GtkWidget * 263 | xfburn_disc_usage_new (void) 264 | { 265 | return g_object_new (xfburn_disc_usage_get_type (), NULL); 266 | } 267 | 268 | --------------------------------------------------------------------------------