~audio-recorder/audio-recorder/trunk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
Audio Recorder Application <https://launchpad.net/audio-recorder>

This is an audio recording application for the GNOME and Unity Desktops. This program allows you to record 
your favourite music or audio to a file. It can record audio from your system soundcard, microphones, 
browsers, webcams & more. Put simply; if it plays out of your loudspeakers you can record it. 

It has a timer that can start, stop or pause recording on a given clock time, time period or file size.
It can also react to "sound", "voice" and "silence" events.

This recorder supports several audio (output) formats such as OGG audio, Flac, MP3 and WAV.

Please read the README and INSTALL files before compilation. 

Important files:
****************
README	- This file.
INSTALL	- Compilation from source and installation.
COPYING	- The license text.
AUTHORS	- Authors and contributors.
NEWS	- Recent news, releases.
debian/README - Instructions to create a Debian/Ubuntu package.

Compilation from source and installation:
*****************************************
Read the INSTALL file for detailed information about compilation of this program.

Runtime:
********
Runtime (running this program) has currently these dependencies. The package names are from 
Debian/Ubuntu but you should find similar packages in any other Linux-distribution.

libgtk2.0-dev  (gtk+-2.0, gdk-2.0 and gthread-2.0 libraries)
libglib2.0-dev (glib-2.0 library)
libgconf2-dev  (gconf-2.0 library)
libgstreamer0.10-dev (gstreamer-0.10 library)
libgstreamer-plugins-base0.10-dev  (gstreamer-interfaces-0.10 library)
libgnome-media-dev - (gnome-media-profiles library)
libpulse-dev (PulseAudio's pulse library)

libdbus-1-dev - Simple interprocess messaging system (development headers).
libdbus-glib-1-dev - Simple interprocess messaging system (GLib interface).

For developers:
***************
The configuration uses Automake/Autoconf tools. The most important files are: 

Makefile.am  - General build and installation instructions.
configure.in  - Configuration of source with library existens and error check.
pixmaps/Makefile.am - Installation of icons.  
src/Makefile.am - Build and installation instructions. Contains list of all source files.
po/POTFILES.in - Language support. List of source files that has translatable text.

The general sequence of commands to re-configure the source is:

cd audio-recorder*
autoheader
aclocal
autoconf
automake -a 

./configure  # configure produces the final Makefile (food for make).
make
sudo make install  # run this as root or sudo.

File locations:
***************
"Make install" will copy the audio-recorder executable to /usr/bin directory.
This default locations can be changed during the ./configure phase.
Run ./configure --help for more instructions.

Pixmap images are copied to /usr/share/pixmaps/audio-recorder/.
Icons are installed to /usr/share/icons/hicolor/48x48/apps/.

The HTML help files from audio-recorder/data/ are by default copied to /usr/share/audio-recorder/.
-------------

Language support:
*****************

1) First, translate the data/audio-recorder.desktop file.
Open it and add your translations to it.

gedit data/audio-recorder.desktop


2) Tanslate the program itself.
The language files are saved in the source's po/ directory.

Each translatable file should be listed in the po/POTFILES.in file. Add names of new code-files there.

Translating audio-recorder.pot to a new language.

Translate on the Launchpad.
Use Launchpad for the translations. Browse to https://translations.launchpad.net/audio-recorder
Login and open a new language file.

Important: The translations from the Launchpad are automatically copied/synchronized to the source code's po/ directory. 
Launchpad does this transfer once a day.

3) Add a new language code to "audio-recorder/configure.in" file, change the ALL_LINGUAS variable.
ALL_LINGUAS="de en_AU fi_FI fr hu nb_NO pt pt_BR ru"
 
cd audio-recorder*
gedit configure.in 

Run these command after you edited the configure.in.
cd audio-recorder*
autoconf
autoheader
automake -a

Then update the "audio-recorder.pot" file by running "make update-po" in the po/ directory. 
audio-recorder.pot contains all translatable _("xxx") strings found in the code. Do:

cd audio-recorder*
cd po
make update-po

It creates binary language files (*.gmo) of each *.po.

4) You may also translate the HTML-files (help files) in the audio-recorder/data directory.
If not translated, the program will show the original english text.

Send new language files to developers for inclusion in the package.
See: https://launchpad.net/audio-recorder

Development:
************
First of all, install necessary development (*-dev) packages as instructed in the INSTALL file. 
Of cource you will also need the compiler (gcc) and Automake tools. 
In Ubuntu you should simply get the "build-essential", "automake" and "autoconf" packages.

The code is written in c with GDK/GTK+ libraries and it is hosted on the Launchpad at address:
https://launchpad.net/audio-recorder

Launchpad uses Bazar (bzr) as the code versioning system. In Ubuntu you should install the "bzr" package. 

Then (very important!) read the README and INSTALL files for further instructions.
----

I use the Gedit for code editing. In the the preferences I set tab-stops width to 4, 
and checkmark the "Insert spaces instead of tabs" option.
----

The program's about-dialog vill show details about the installation directories and locations.
Run the program and check the about-dialog.

You can clean up binary and object (*.o) files with "make clean".
make clean
----

Debugging:
**********
You may enable the DEBUG_ALL and ACTIVATE_DEBUGGING directives in the src/log.h file. 
Open src/log.h and enable or disable

#define DEBUG_ALL
#define ACTIVE_DEBUGGING

Some modules have their own debugging flags. You may enable/disable 
DEBUG_PLAYER in src/dbus_player.h
DEBUG_SKYPE in src/dbus-skype.h
DEBUG_LISTENER in src/gst_listener.h
DEBUG_TIMER src/timer.h
----

Command line options:
*********************
src/audio-recorder --help

Usage:
  audio-recorder [OPTION...] Command line aguments.

Application Options:
  -w, --show-window   Show application window at startup (0=hide main window, 1=force display of main window).
  -i, --show-icon     Show icon on the system tray (0=hide icon, 1=force display of icon).
  -d, --debug-signal  List signal level values in a terminal window (0=do not list values, 1=list values).

Sample usage:
audio-recorder --show-window=1 --show-icon=0

The --show-window and --show-icon are self explanatory.
The --debug-signal option can help you to study the signal level from microphones and webcams.
The listing will print out several values from the listener (monitoring) process.
The most important is the Average RMS value. It is used to set the decibel (dB) or % value in the timer commands.
----

Ready-made Debian/Ubuntu packages:
**********************************
See: https://launchpad.net/~osmoma/+archive/audio-recorder

-- end --