diff --git a/sflphone-client-gnome/configure.ac b/sflphone-client-gnome/configure.ac index 7cbfb1a922c5eb279d6af54065d84e4609f48a2c..0fb4d50694f5024225441fa983df0b1133a82d92 100644 --- a/sflphone-client-gnome/configure.ac +++ b/sflphone-client-gnome/configure.ac @@ -1,4 +1,4 @@ -AC_INIT([SFLphone],[0.9.5~beta],[sflphoneteam@savoirfairelinux.com],[sflphone]) +AC_INIT([SFLphone],[0.9.5~beta],[sflphoneteam@savoirfairelinux.com],[sflphone-client-gnome]) AM_CONFIG_HEADER(config.h) LT_INIT diff --git a/sflphone-client-gnome/debian/changelog b/sflphone-client-gnome/debian/changelog index f823fa8914e4e82bddb8c64ce217915289648562..3dfa5853eda5b9919adbeed1e93ab338eef8b25f 100644 --- a/sflphone-client-gnome/debian/changelog +++ b/sflphone-client-gnome/debian/changelog @@ -1,6 +1,6 @@ -sflphone-client-gnome (0.9.5-0ubuntu1~1.gbpf07060) SYSTEM; urgency=low +sflphone-client-gnome (0.9.5-0ubuntu1~3.gbp20b188) SYSTEM; urgency=low - ** SNAPSHOT build @f07060721d61850d67b89f24f0415d7237281886 ** + ** SNAPSHOT build @20b188472f4e66c75b3f1dffe1f110b7070397ec ** [ Emmanuel Milou ] * [#1220] Add Conflicts: sflphone in debian control files @@ -37,8 +37,47 @@ sflphone-client-gnome (0.9.5-0ubuntu1~1.gbpf07060) SYSTEM; urgency=low * [#1212] Restore changelogs [ Sflphone Project ] + * [#1262] Updated changelogs for version 0.9.5-0ubuntu1 Snapshot 2009- + 04-28 + + [ Julien Bonjean ] + * [#1262]Introduced dynamic version setting + + [ Sflphone Project ] + + [ Alexandre Savard ] + * [#1143] Add celtcodec.cpp + * [#1143] add configure and make stuffs + * [#1143] add frame size into each codecs + * [#1143] Take timestamp's step size from codec + * [#1143] RTP thread at 11 ms + * [#1143] Dynamic RTP thread sleep parameter + * [#1143] Fix dynamic thread sleep time calculation + + [ Emmanuel Milou ] + * [#1262] sflphone-client-gnome uses changelog version number + + [ Alexandre Savard ] + * [#1143] Some cleanup + + [ SFLphone Project ] + * [#1262] Updated changelogs for version 0.9.5-0ubuntu1 Snapshot 2009- + 04-29 + + [ Emmanuel Milou ] + * [#1262] Update changelogs + * [#1262] Update rules + * [#1143] Build celt codec only if version >= 0.5.1 is detected + * [1143] Restore rules files - do not need to specify --without-celt + * [#1336] Change SFLphone logo + * [#1331] Fix searchbar problems + * [#1332] Fix unexplicit labels + * [#1334] Fix unexplicit label + * [#1329] Fix recordings config panel + + [ Sflphone Project ] - -- Sflphone Project <sflphone@mtl.savoirfairelinux.net> Tue, 28 Apr 2009 12:23:35 -0400 + -- Sflphone Project <sflphone@mtl.savoirfairelinux.net> Thu, 30 Apr 2009 10:01:42 -0400 sflphone-client-gnome (0.9.5-0ubuntu1~beta) SYSTEM; urgency=low diff --git a/sflphone-client-gnome/pixmaps/Makefile.am b/sflphone-client-gnome/pixmaps/Makefile.am index b6d11bf8b3f95c76b946a64ef4910fb5d18bec5f..f2c997ad10e5a08f9ebb1938b7e002390c014b7c 100644 --- a/sflphone-client-gnome/pixmaps/Makefile.am +++ b/sflphone-client-gnome/pixmaps/Makefile.am @@ -1,7 +1,7 @@ icondir = $(datadir)/pixmaps -icon_DATA = sflphone.png +icon_DATA = sflphone1.svg -buttons_DATA = accept.svg current.svg transfert.svg hang_up.svg hold.svg unhold.svg refuse.svg call.svg ring.svg dial.svg mic.svg mic_25.svg mic_50.svg mic_75.svg speaker.svg speaker_25.svg speaker_50.svg speaker_75.svg fail.svg incoming.svg outgoing.svg missed.svg mailbox.svg busy.svg icon_accept.svg icon_hold.svg icon_unhold.svg icon_hangup.svg icon_call.svg icon_dialpad.svg icon_volume.svg icon_dialpad_off.svg icon_volume_off.svg history.svg history2.svg sflphone.png stock_person.svg icon_rec.svg rec_call.svg addressbook.svg contact_default.svg face-monkey.svg users.svg home.svg wait-on.gif +buttons_DATA = accept.svg current.svg transfert.svg hang_up.svg hold.svg unhold.svg refuse.svg call.svg ring.svg dial.svg mic.svg mic_25.svg mic_50.svg mic_75.svg speaker.svg speaker_25.svg speaker_50.svg speaker_75.svg fail.svg incoming.svg outgoing.svg missed.svg mailbox.svg busy.svg icon_accept.svg icon_hold.svg icon_unhold.svg icon_hangup.svg icon_call.svg icon_dialpad.svg icon_volume.svg icon_dialpad_off.svg icon_volume_off.svg history.svg history2.svg sflphone.png sflphone1.svg stock_person.svg icon_rec.svg rec_call.svg addressbook.svg contact_default.svg face-monkey.svg users.svg home.svg wait-on.gif buttonsdir = $(datadir)/sflphone EXTRA_DIST = $(buttons_DATA) $(icon_DATA) diff --git a/sflphone-client-gnome/pixmaps/sflphone1.svg b/sflphone-client-gnome/pixmaps/sflphone1.svg new file mode 100644 index 0000000000000000000000000000000000000000..077f7ff40f6b342b3cc81a1eb1f89c9c002a4573 --- /dev/null +++ b/sflphone-client-gnome/pixmaps/sflphone1.svg @@ -0,0 +1,210 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="184.25197" + height="184.25197" + id="svg5875" + sodipodi:version="0.32" + inkscape:version="0.46" + version="1.0" + sodipodi:docname="sflphone1.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs5877"> + <linearGradient + inkscape:collect="always" + id="linearGradient3859"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3861" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop3863" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient5850"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop5852" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop5854" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5850" + id="linearGradient5856" + x1="476.3125" + y1="439.0293" + x2="477.3125" + y2="514.42188" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient4999"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop5001" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop5003" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4999" + id="linearGradient5862" + gradientUnits="userSpaceOnUse" + x1="627.14612" + y1="621.8194" + x2="919.63519" + y2="331.63492" /> + <linearGradient + inkscape:collect="always" + id="linearGradient4991"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop4993" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop4995" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4991" + id="radialGradient4997" + cx="736.5" + cy="640.93073" + fx="736.5" + fy="640.93073" + r="91.964203" + gradientTransform="matrix(1,0,0,0.8097086,0,99.14184)" + gradientUnits="userSpaceOnUse" /> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 526.18109 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="744.09448 : 526.18109 : 1" + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" + id="perspective5883" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3859" + id="linearGradient3873" + x1="352.19498" + y1="451.55289" + x2="106.34038" + y2="658.39594" + gradientUnits="userSpaceOnUse" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + gridtolerance="10000" + guidetolerance="10" + objecttolerance="10" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="2.8744496" + inkscape:cx="77.145989" + inkscape:cy="46.157701" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1920" + inkscape:window-height="1087" + inkscape:window-x="0" + inkscape:window-y="61" /> + <metadata + id="metadata5880"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>Icône SFL</dc:title> + <dc:date>2009-04-29</dc:date> + <dc:creator> + <cc:Agent> + <dc:title>Jérôme Oufella</dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title>(c) 2009 Savoir-faire Linux inc.</dc:title> + </cc:Agent> + </dc:rights> + <dc:subject> + <rdf:Bag> + <rdf:li>sfl icon</rdf:li> + </rdf:Bag> + </dc:subject> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-182.15973,-428.80763)"> + <g + id="g5868" + transform="translate(-234.84028,-6.9404095)"> + <path + transform="matrix(0.9959566,0,0,1.2202117,1.6861043,-136.53125)" + d="M 602,544.5 A 92.5,75.5 0 1 1 417,544.5 A 92.5,75.5 0 1 1 602,544.5 z" + sodipodi:ry="75.5" + sodipodi:rx="92.5" + sodipodi:cy="544.5" + sodipodi:cx="509.5" + id="path4987" + style="fill:#006f82;fill-opacity:1;fill-rule:evenodd" + sodipodi:type="arc" /> + <path + transform="matrix(0.9200853,0,0,1.1406537,-168.51683,-66.406557)" + d="M 827,521 A 90.5,73 0 1 1 646,521 A 90.5,73 0 1 1 827,521 z" + sodipodi:ry="73" + sodipodi:rx="90.5" + sodipodi:cy="521" + sodipodi:cx="736.5" + id="path4989" + style="fill:url(#radialGradient4997);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5862);stroke-width:2.92839932000000003;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;opacity:0.83064516" + sodipodi:type="arc" /> + </g> + <path + d="M 270.22391,444.59502 L 258.69788,468.03809 C 257.38814,470.58705 254.96106,470.39374 252.51404,469.02377 L 243.80625,464.49786 L 250.84056,500.08834 C 252.30314,506.58761 247.96387,506.66091 245.77493,503.877 L 230.41805,486.50568 L 228.12461,495.49762 C 227.86256,496.67785 226.64373,497.93335 224.77908,497.67092 L 205.66619,493.80646 L 210.98893,512.73361 C 212.13112,516.9458 212.99584,518.68317 210.02787,519.8494 L 203.29692,523.29927 L 236.54717,550.584 C 237.86251,551.61457 238.55002,553.49774 238.11702,555.22057 L 235.41442,565.11265 C 246.67796,563.56182 256.77634,562.1734 268.03972,560.62412 C 269.04245,560.59408 270.72036,561.45708 270.7339,562.66502 L 269.8477,598.75328 L 275.3353,598.66059 L 273.8636,562.68953 C 273.83635,561.48182 275.32797,560.48791 276.33122,560.48402 C 287.64046,561.65196 297.77986,562.69848 309.08956,563.86812 L 306.05442,554.07301 C 305.5635,552.36568 306.18695,550.46033 307.46656,549.38586 L 339.77636,520.99383 L 332.93273,517.77324 C 329.92708,516.70804 330.73274,514.94239 331.73188,510.69395 L 336.41241,491.59785 L 317.44075,496.10559 C 315.58624,496.43093 314.32569,495.21739 314.02396,494.04672 L 311.42792,485.13719 L 296.6668,503.01734 C 294.57288,505.87347 290.23369,505.94673 291.47593,499.40191 L 297.30411,463.59431 L 288.75423,468.41151 C 286.35484,469.86336 283.93569,470.13869 282.54066,467.63552" + id="maple_leaf" + style="opacity:0.25000000000000000;fill:url(#linearGradient3873);fill-opacity:1" /> + <g + id="g3867" + transform="matrix(0.9325595,0,0,0.9325595,15.86115,36.626535)"> + <path + style="opacity:0.32000002;fill:#000000;fill-opacity:1" + d="M 324.6064,576.10592 C 324.02996,577.62486 318.05867,583.27138 315.27265,584.93202 L 312.1928,586.7678 L 299.5209,570.25386 L 286.84899,553.73994 L 289.03019,551.47895 C 291.16481,549.26622 297.56985,544.96795 299.65197,544.35092 C 300.55595,544.08302 302.37761,546.22382 312.77007,559.7672 C 319.40765,568.41724 324.73401,575.76967 324.6064,576.10592 z M 261.18093,493.71856 C 260.70464,494.9736 253.16932,501.39752 250.71354,502.64209 L 248.48238,503.7728 L 235.99299,487.20322 L 223.50359,470.63363 L 227.80379,467.08656 C 230.16891,465.13567 233.27042,463.05802 234.69603,462.46955 L 237.28805,461.39961 L 249.38455,477.16367 C 257.49505,487.73321 261.38216,493.18832 261.18093,493.71856 z M 309.95137,588.3053 C 309.87124,588.51609 308.475,589.36418 306.84862,590.18996 C 294.06756,596.67941 273.5256,589.04036 254.18672,570.60633 C 247.34174,564.0816 233.22165,546.60297 227.64357,537.74972 C 216.87902,520.66478 211.81677,506.32102 211.96598,493.32766 C 212.0591,485.21872 214.72047,478.3767 219.49284,473.97704 L 221.12923,472.46844 L 233.682,488.58283 L 246.23478,504.69722 L 245.21952,506.45575 C 243.81718,508.8847 244.07084,512.0704 246.05254,516.91749 C 248.53966,523.00079 268.27193,548.70275 273.56577,552.75442 C 277.72586,555.93837 280.28512,556.86788 283.36104,556.31202 L 285.53918,555.9184 L 297.81812,571.92023 C 304.57154,580.72124 310.03151,588.09451 309.95137,588.3053 z" + id="path3760" /> + <path + id="path3218" + d="M 330.6064,570.10592 C 330.02996,571.62486 324.05867,577.27138 321.27265,578.93202 L 318.1928,580.7678 L 305.5209,564.25386 L 292.84899,547.73994 L 295.03019,545.47895 C 297.16481,543.26622 303.56985,538.96795 305.65197,538.35092 C 306.55595,538.08302 308.37761,540.22382 318.77007,553.7672 C 325.40765,562.41724 330.73401,569.76967 330.6064,570.10592 z M 267.18093,487.71856 C 266.70464,488.9736 259.16932,495.39752 256.71354,496.64209 L 254.48238,497.7728 L 241.99299,481.20322 L 229.50359,464.63363 L 233.80379,461.08656 C 236.16891,459.13567 239.27042,457.05802 240.69603,456.46955 L 243.28805,455.39961 L 255.38455,471.16367 C 263.49505,481.73321 267.38216,487.18832 267.18093,487.71856 z M 315.95137,582.3053 C 315.87124,582.51609 314.475,583.36418 312.84862,584.18996 C 300.06756,590.67941 279.5256,583.04036 260.18672,564.60633 C 253.34174,558.0816 239.22165,540.60297 233.64357,531.74972 C 222.87902,514.66478 217.81677,500.32102 217.96598,487.32766 C 218.0591,479.21872 220.72047,472.3767 225.49284,467.97704 L 227.12923,466.46844 L 239.682,482.58283 L 252.23478,498.69722 L 251.21952,500.45575 C 249.81718,502.8847 250.07084,506.0704 252.05254,510.91749 C 254.53966,517.00079 274.27193,542.70275 279.56577,546.75442 C 283.72586,549.93837 286.28512,550.86788 289.36104,550.31202 L 291.53918,549.9184 L 303.81812,565.92023 C 310.57154,574.72124 316.03151,582.09451 315.95137,582.3053 z" + style="fill:#ffffff;fill-opacity:1" /> + </g> + </g> +</svg> diff --git a/sflphone-client-gnome/pixmaps/sflphone2.svg b/sflphone-client-gnome/pixmaps/sflphone2.svg new file mode 100644 index 0000000000000000000000000000000000000000..3e06bcdaf85aeba01f32cb5557b75b0a869da133 --- /dev/null +++ b/sflphone-client-gnome/pixmaps/sflphone2.svg @@ -0,0 +1,232 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="184.25197" + height="184.25197" + id="svg5875" + sodipodi:version="0.32" + inkscape:version="0.46" + version="1.0" + sodipodi:docname="sflphone2.svg" + inkscape:output_extension="org.inkscape.output.svg.inkscape"> + <defs + id="defs5877"> + <linearGradient + inkscape:collect="always" + id="linearGradient3289"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3291" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop3293" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient3859"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop3861" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop3863" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + id="linearGradient5850"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop5852" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop5854" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient5850" + id="linearGradient5856" + x1="476.3125" + y1="439.0293" + x2="477.3125" + y2="514.42188" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + id="linearGradient4999"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop5001" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop5003" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient4999" + id="linearGradient5862" + gradientUnits="userSpaceOnUse" + x1="627.14612" + y1="621.8194" + x2="919.63519" + y2="331.63492" /> + <linearGradient + inkscape:collect="always" + id="linearGradient4991"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0" + id="stop4993" /> + <stop + style="stop-color:#ffffff;stop-opacity:0;" + offset="1" + id="stop4995" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#linearGradient4991" + id="radialGradient4997" + cx="736.5" + cy="640.93073" + fx="736.5" + fy="640.93073" + r="91.964203" + gradientTransform="matrix(1,0,0,0.8097086,0,99.14184)" + gradientUnits="userSpaceOnUse" /> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 526.18109 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="744.09448 : 526.18109 : 1" + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" + id="perspective5883" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3859" + id="linearGradient3873" + x1="352.19498" + y1="451.55289" + x2="106.34038" + y2="658.39594" + gradientUnits="userSpaceOnUse" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient3289" + id="linearGradient3295" + x1="360.56229" + y1="442.35855" + x2="127.47931" + y2="627.84052" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.1006682,0,0,1.1006682,-32.206826,-52.058551)" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + gridtolerance="10000" + guidetolerance="10" + objecttolerance="10" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.0162714" + inkscape:cx="-150.04476" + inkscape:cy="-40.803184" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="1920" + inkscape:window-height="1087" + inkscape:window-x="0" + inkscape:window-y="61" /> + <metadata + id="metadata5880"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title>Icône SFL</dc:title> + <dc:date>2009-04-29</dc:date> + <dc:creator> + <cc:Agent> + <dc:title>Jérôme Oufella</dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title>(c) 2009 Savoir-faire Linux inc.</dc:title> + </cc:Agent> + </dc:rights> + <dc:subject> + <rdf:Bag> + <rdf:li>sfl icon</rdf:li> + </rdf:Bag> + </dc:subject> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-182.15973,-428.80763)"> + <g + id="g5868" + transform="translate(-234.84028,-6.9404095)"> + <path + transform="matrix(0.9959566,0,0,1.2202117,1.6861043,-136.53125)" + d="M 602,544.5 A 92.5,75.5 0 1 1 417,544.5 A 92.5,75.5 0 1 1 602,544.5 z" + sodipodi:ry="75.5" + sodipodi:rx="92.5" + sodipodi:cy="544.5" + sodipodi:cx="509.5" + id="path4987" + style="fill:#006f82;fill-opacity:1;fill-rule:evenodd" + sodipodi:type="arc" /> + <path + transform="matrix(0.9200853,0,0,1.1406537,-168.51683,-66.406557)" + d="M 827,521 A 90.5,73 0 1 1 646,521 A 90.5,73 0 1 1 827,521 z" + sodipodi:ry="73" + sodipodi:rx="90.5" + sodipodi:cy="521" + sodipodi:cx="736.5" + id="path4989" + style="fill:url(#radialGradient4997);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5862);stroke-width:2.92839932000000003;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;opacity:0.83064516" + sodipodi:type="arc" /> + </g> + <g + id="g3867" + transform="matrix(0.9325595,0,0,0.9325595,15.86115,36.626535)"> + <path + style="opacity:0.32000002;fill:#000000;fill-opacity:1" + d="M 324.6064,576.10592 C 324.02996,577.62486 318.05867,583.27138 315.27265,584.93202 L 312.1928,586.7678 L 299.5209,570.25386 L 286.84899,553.73994 L 289.03019,551.47895 C 291.16481,549.26622 297.56985,544.96795 299.65197,544.35092 C 300.55595,544.08302 302.37761,546.22382 312.77007,559.7672 C 319.40765,568.41724 324.73401,575.76967 324.6064,576.10592 z M 261.18093,493.71856 C 260.70464,494.9736 253.16932,501.39752 250.71354,502.64209 L 248.48238,503.7728 L 235.99299,487.20322 L 223.50359,470.63363 L 227.80379,467.08656 C 230.16891,465.13567 233.27042,463.05802 234.69603,462.46955 L 237.28805,461.39961 L 249.38455,477.16367 C 257.49505,487.73321 261.38216,493.18832 261.18093,493.71856 z M 309.95137,588.3053 C 309.87124,588.51609 308.475,589.36418 306.84862,590.18996 C 294.06756,596.67941 273.5256,589.04036 254.18672,570.60633 C 247.34174,564.0816 233.22165,546.60297 227.64357,537.74972 C 216.87902,520.66478 211.81677,506.32102 211.96598,493.32766 C 212.0591,485.21872 214.72047,478.3767 219.49284,473.97704 L 221.12923,472.46844 L 233.682,488.58283 L 246.23478,504.69722 L 245.21952,506.45575 C 243.81718,508.8847 244.07084,512.0704 246.05254,516.91749 C 248.53966,523.00079 268.27193,548.70275 273.56577,552.75442 C 277.72586,555.93837 280.28512,556.86788 283.36104,556.31202 L 285.53918,555.9184 L 297.81812,571.92023 C 304.57154,580.72124 310.03151,588.09451 309.95137,588.3053 z" + id="path3760" /> + <path + id="path3218" + d="M 330.6064,570.10592 C 330.02996,571.62486 324.05867,577.27138 321.27265,578.93202 L 318.1928,580.7678 L 305.5209,564.25386 L 292.84899,547.73994 L 295.03019,545.47895 C 297.16481,543.26622 303.56985,538.96795 305.65197,538.35092 C 306.55595,538.08302 308.37761,540.22382 318.77007,553.7672 C 325.40765,562.41724 330.73401,569.76967 330.6064,570.10592 z M 267.18093,487.71856 C 266.70464,488.9736 259.16932,495.39752 256.71354,496.64209 L 254.48238,497.7728 L 241.99299,481.20322 L 229.50359,464.63363 L 233.80379,461.08656 C 236.16891,459.13567 239.27042,457.05802 240.69603,456.46955 L 243.28805,455.39961 L 255.38455,471.16367 C 263.49505,481.73321 267.38216,487.18832 267.18093,487.71856 z M 315.95137,582.3053 C 315.87124,582.51609 314.475,583.36418 312.84862,584.18996 C 300.06756,590.67941 279.5256,583.04036 260.18672,564.60633 C 253.34174,558.0816 239.22165,540.60297 233.64357,531.74972 C 222.87902,514.66478 217.81677,500.32102 217.96598,487.32766 C 218.0591,479.21872 220.72047,472.3767 225.49284,467.97704 L 227.12923,466.46844 L 239.682,482.58283 L 252.23478,498.69722 L 251.21952,500.45575 C 249.81718,502.8847 250.07084,506.0704 252.05254,510.91749 C 254.53966,517.00079 274.27193,542.70275 279.56577,546.75442 C 283.72586,549.93837 286.28512,550.86788 289.36104,550.31202 L 291.53918,549.9184 L 303.81812,565.92023 C 310.57154,574.72124 316.03151,582.09451 315.95137,582.3053 z" + style="fill:#ffffff;fill-opacity:1" /> + </g> + <path + id="Upper_right_fleur-de-lis_1_" + style="opacity:0.25;fill:url(#linearGradient3295);fill-opacity:1;fill-rule:evenodd" + d="M 313.82159,550.0952 C 316.41492,546.2383 316.19867,537.79506 311.01041,534.81444 C 307.04215,532.83112 302.56394,533.60734 300.47088,535.31471 C 297.10134,537.35289 293.85443,543.8709 293.85443,550.47122 L 305.49132,550.4567 L 305.49132,563.44914 L 281.34128,563.43623 C 281.65273,570.11885 285.29984,575.47172 292.08251,578.45235 C 291.20624,581.26838 287.11534,587.00855 281.50105,586.61962 C 280.39399,592.69385 279.33536,596.10375 274.28911,601.62284 C 269.23962,596.10536 268.18422,592.69385 267.07718,586.61962 C 261.45803,587.00855 257.36552,581.26838 256.49248,578.45235 C 263.27513,575.47172 266.92225,570.11885 267.23371,563.43623 L 243.0869,563.44914 L 243.08367,550.4567 L 254.72055,550.47122 C 254.72055,543.8709 251.47365,537.35289 248.10086,535.31471 C 246.00781,533.60895 241.5296,532.83274 237.56781,534.81444 C 232.37953,537.79506 232.15845,546.23992 234.75017,550.0952 C 210.24994,545.546 212.68026,521.88493 221.02667,513.29484 C 227.77223,506.35563 235.12457,505.27118 240.79535,507.45945 C 253.6829,512.07966 262.35045,527.47503 262.77326,550.47122 L 269.51235,550.47122 C 269.51235,529.56645 265.87492,522.9016 256.39725,496.64559 C 251.62211,484.23732 254.48979,468.89684 263.02178,454.77153 C 266.07987,449.70914 269.89643,445.13894 274.28588,440.24438 C 278.67048,445.13894 282.48705,449.70914 285.54836,454.77153 C 294.07714,468.89684 296.94803,484.23732 292.17612,496.64559 C 282.69522,522.9016 279.05456,529.56485 279.05456,550.47122 L 285.79366,550.47122 C 286.21969,527.47503 294.88724,512.07966 307.77157,507.45945 C 313.44236,505.2728 320.79792,506.35563 327.54347,513.29484 C 335.89148,521.88493 338.32183,545.546 313.82159,550.0952 z" /> + </g> +</svg> diff --git a/sflphone-client-gnome/sflphone.desktop.in b/sflphone-client-gnome/sflphone.desktop.in index 4511f7302a80c95e68d45b886386fad6f2e60f9f..08ecbcb01ccc18ae7210b4e0da5bfb8c9a9c8267 100644 --- a/sflphone-client-gnome/sflphone.desktop.in +++ b/sflphone-client-gnome/sflphone.desktop.in @@ -4,7 +4,7 @@ Name=SFLphone GNOME VoIP client GenericName=Telephone Comment=Call and receive calls with SIP or IAX protocols Exec=sflphone-client-gnome -Icon=sflphone.png +Icon=sflphone1.svg StartupNotify=true Terminal=false Type=Application diff --git a/sflphone-client-gnome/src/assistant.c b/sflphone-client-gnome/src/assistant.c index b2d7c8fe6f52316f03f54e21090ea5a7cba845bb..463ef4f441d14212bf247fa803ef7538d566ebae 100644 --- a/sflphone-client-gnome/src/assistant.c +++ b/sflphone-client-gnome/src/assistant.c @@ -181,7 +181,7 @@ void build_wizard( void ) { GtkWidget* build_intro() { GtkWidget *label; - wiz->intro = create_vbox( GTK_ASSISTANT_PAGE_INTRO , "SFLphone 0.9.4" , _("Welcome to SFLphone!")); + wiz->intro = create_vbox( GTK_ASSISTANT_PAGE_INTRO , "SFLphone GNOME client" , _("Welcome to SFLphone!")); label = gtk_label_new(_("This installation wizard will help you configure an account.")) ; gtk_misc_set_alignment(GTK_MISC(label), 0, 0); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); @@ -534,7 +534,7 @@ static GtkWidget* create_vbox(GtkAssistantPageType type, const gchar *title, con gtk_assistant_set_page_complete(GTK_ASSISTANT(wiz->assistant), vbox, TRUE); - wiz->logo = gdk_pixbuf_new_from_file(ICONS_DIR "/sflphone.png", NULL); + wiz->logo = gdk_pixbuf_new_from_file(LOGO, NULL); gtk_assistant_set_page_header_image(GTK_ASSISTANT(wiz->assistant),vbox, wiz->logo); g_object_unref(wiz->logo); diff --git a/sflphone-client-gnome/src/config/accountwindow.c b/sflphone-client-gnome/src/config/accountwindow.c index 738318e82735eb22bc30070da02d86fd6cc59081..9b807cad064a36effa709baa658b3f9b3c2daf17 100644 --- a/sflphone-client-gnome/src/config/accountwindow.c +++ b/sflphone-client-gnome/src/config/accountwindow.c @@ -139,7 +139,7 @@ show_account_window (account_t * a) gtk_table_attach ( GTK_TABLE( table ), entryID, 1, 2, 0, 1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); #endif - entryEnabled = gtk_check_button_new_with_mnemonic(_("_Enabled")); + entryEnabled = gtk_check_button_new_with_mnemonic(_("_Enable this account")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(entryEnabled), g_strcasecmp(curAccountEnabled,"TRUE") == 0 ? TRUE: FALSE); gtk_table_attach ( GTK_TABLE( table ), entryEnabled, 0, 2, 1, 2, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); @@ -220,7 +220,7 @@ show_account_window (account_t * a) gtk_entry_set_text(GTK_ENTRY(entryPassword), curPassword); gtk_table_attach ( GTK_TABLE( table ), entryPassword, 1, 2, 7, 8, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); - label = gtk_label_new_with_mnemonic (_("_Voicemail box #")); + label = gtk_label_new_with_mnemonic (_("_Voicemail number")); gtk_table_attach ( GTK_TABLE( table ), label, 0, 1, 8, 9, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); gtk_misc_set_alignment(GTK_MISC (label), 0, 0.5); entryMailbox = gtk_entry_new(); diff --git a/sflphone-client-gnome/src/config/configwindow.c b/sflphone-client-gnome/src/config/configwindow.c index 4ea6fa7daa96f0c58609ab57565c057ba7834751..7a73328371f20663c6ea49b21357ed4e58f65497 100644 --- a/sflphone-client-gnome/src/config/configwindow.c +++ b/sflphone-client-gnome/src/config/configwindow.c @@ -718,7 +718,7 @@ create_recording_settings () gtk_container_add(GTK_CONTAINER(savePathFrame), table); // label - label = gtk_label_new_with_mnemonic(_("_Destination folder")); + label = gtk_label_new_with_mnemonic(_("_Recordings folder")); gtk_table_attach( GTK_TABLE(table), label, 0, 1, 0, 1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 5); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); @@ -779,7 +779,7 @@ show_config_window () // Recording tab tab = create_recording_settings(); - gtk_notebook_append_page(GTK_NOTEBOOK(notebook), tab, gtk_label_new(_("Record"))); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook), tab, gtk_label_new(_("Recordings"))); gtk_notebook_page_num(GTK_NOTEBOOK(notebook), tab); // Addressbook tab diff --git a/sflphone-client-gnome/src/contacts/searchbar.c b/sflphone-client-gnome/src/contacts/searchbar.c index 8230b5c03b5d250856523c1d611094607ddd67a5..1744fbe08d1e077a12e4ba248dfff7f079da10e2 100644 --- a/sflphone-client-gnome/src/contacts/searchbar.c +++ b/sflphone-client-gnome/src/contacts/searchbar.c @@ -23,6 +23,9 @@ #include <searchbar.h> #include <calltree.h> +const GdkColor BLACK_COLOR = { 0, 0, 0, 0 }; +const GdkColor GRAY_COLOR = { 0, 30000, 30000, 30000 }; + void searchbar_entry_changed (GtkEntry* entry, gchar* arg1 UNUSED, gpointer data UNUSED) { if (active_calltree == contacts) { @@ -36,6 +39,7 @@ void searchbar_entry_changed (GtkEntry* entry, gchar* arg1 UNUSED, gpointer data void searchbar_clear_entry_if_default (GtkWidget* widget, gpointer user_data UNUSED) { + gtk_widget_modify_text(widget, GTK_STATE_NORMAL, &BLACK_COLOR); if(g_ascii_strncasecmp(gtk_entry_get_text(GTK_ENTRY(widget)), _("Search"), 6) == 0) gtk_entry_set_text(GTK_ENTRY(widget), ""); @@ -68,16 +72,22 @@ GtkWidget* searchbar_new(gchar* searchbar_type) { sexy_icon_entry_set_icon( SEXY_ICON_ENTRY(searchbox), SEXY_ICON_ENTRY_PRIMARY , GTK_IMAGE(image) ); sexy_icon_entry_add_clear_button( SEXY_ICON_ENTRY(searchbox) ); #endif - gtk_entry_set_text(GTK_ENTRY(searchbox), _("Search")); + + gtk_widget_modify_text(searchbox, GTK_STATE_NORMAL, &GRAY_COLOR); + + gtk_entry_set_text(GTK_ENTRY(searchbox), _("Search contact")); g_signal_connect(GTK_ENTRY(searchbox), "changed", G_CALLBACK(searchbar_entry_changed), NULL); g_signal_connect(GTK_ENTRY(searchbox), "grab-focus", G_CALLBACK(searchbar_clear_entry_if_default), NULL); gtk_box_pack_start(GTK_BOX(ret), searchbox, TRUE, TRUE, 0); - if(g_strcmp0(searchbar_type,"history") == 0) - history_set_searchbar_widget(searchbox); - - return ret; + if(g_strcmp0(searchbar_type,"history") == 0) + { + gtk_entry_set_text(GTK_ENTRY(searchbox), _("Search history")); + history_set_searchbar_widget(searchbox); + } + + return ret; } void activateWaitingLayer() { diff --git a/sflphone-client-gnome/src/main.c b/sflphone-client-gnome/src/main.c index 8593ee5cd93b4ba211de6c05dd8fe505f715e04d..bedccadc0e93908ddb1f63f917e9e9391c806ae1 100644 --- a/sflphone-client-gnome/src/main.c +++ b/sflphone-client-gnome/src/main.c @@ -70,7 +70,7 @@ main(int argc, char *argv[]) gtk_init(&argc, &argv); - g_print("%s\n", PACKAGE_STRING); + g_print("%s %s\n", PACKAGE, VERSION); g_print("Copyright (c) 2005 2006 2007 2008 2009 Savoir-faire Linux Inc.\n"); g_print( "This is free software. You may redistribute copies of it under the terms of\n\ diff --git a/sflphone-client-gnome/src/mainwindow.c b/sflphone-client-gnome/src/mainwindow.c index 84001fbe322c507f2779b0d9e24d3c66eac405b8..f383ccc15c88182127015aab7c4d99c5d44fa696 100644 --- a/sflphone-client-gnome/src/mainwindow.c +++ b/sflphone-client-gnome/src/mainwindow.c @@ -106,7 +106,7 @@ create_main_window () gtk_container_set_border_width (GTK_CONTAINER (window), 0); gtk_window_set_title (GTK_WINDOW (window), PACKAGE); gtk_window_set_default_size (GTK_WINDOW (window), 300, 320); - gtk_window_set_default_icon_from_file (ICONS_DIR "/sflphone.png", + gtk_window_set_default_icon_from_file (LOGO, NULL); gtk_window_set_position( GTK_WINDOW( window ) , GTK_WIN_POS_MOUSE); diff --git a/sflphone-client-gnome/src/menus.c b/sflphone-client-gnome/src/menus.c index a8681ebebf584ada31392c2ffaf8d4aa7f636bcc..03e97945dd8627869d5453581745a668e7495997 100644 --- a/sflphone-client-gnome/src/menus.c +++ b/sflphone-client-gnome/src/menus.c @@ -354,7 +354,7 @@ create_call_menu() gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_items); #if GTK_CHECK_VERSION(2,10,0) - menu_items = gtk_image_menu_item_new_with_mnemonic(_("_Account Assistant")); + menu_items = gtk_image_menu_item_new_with_mnemonic(_("_Account creation wizard")); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_items); g_signal_connect_swapped( G_OBJECT( menu_items ) , "activate" , G_CALLBACK( call_wizard ) , NULL ); gtk_widget_show (menu_items); diff --git a/sflphone-client-gnome/src/sflnotify.c b/sflphone-client-gnome/src/sflnotify.c index 5fe6081b423b48cb25565a571ae09235dc11b683..4021a044f0228a08943e4f1dd6778d88039a43b9 100644 --- a/sflphone-client-gnome/src/sflnotify.c +++ b/sflphone-client-gnome/src/sflnotify.c @@ -107,7 +107,7 @@ notify_voice_mails( guint count , account_t* acc ) (gchar*) g_hash_table_lookup(acc->properties , ACCOUNT_ALIAS) ) ; body = g_markup_printf_escaped(_("%d voice mails"), count); - pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/sflphone.png", NULL); + pixbuf = gdk_pixbuf_new_from_file(LOGO, NULL); notification = notify_notification_new( title, body, @@ -144,7 +144,7 @@ notify_current_account( account_t* acc ) title = g_markup_printf_escaped(_("Current account")); - pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/sflphone.png", NULL); + pixbuf = gdk_pixbuf_new_from_file(LOGO, NULL); notification = notify_notification_new( title, body, @@ -175,7 +175,7 @@ notify_no_accounts( ) title = g_markup_printf_escaped(_("Error")); - pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/sflphone.png", NULL); + pixbuf = gdk_pixbuf_new_from_file(LOGO, NULL); notification = notify_notification_new( title, body, @@ -216,7 +216,7 @@ notify_no_registered_accounts( ) title = g_markup_printf_escaped(_("Error")); - pixbuf = gdk_pixbuf_new_from_file(ICONS_DIR "/sflphone.png", NULL); + pixbuf = gdk_pixbuf_new_from_file(LOGO, NULL); notification = notify_notification_new( title, body, diff --git a/sflphone-client-gnome/src/sflphone_const.h b/sflphone-client-gnome/src/sflphone_const.h index 49a5f3a315faf8e25ed8f1b086834ed0339cf75f..cb71c403da397ab1ba546881b16eb686eb63e9ce 100644 --- a/sflphone-client-gnome/src/sflphone_const.h +++ b/sflphone-client-gnome/src/sflphone_const.h @@ -28,6 +28,9 @@ * @brief Contains the global variables for the client code */ + +#define LOGO ICONS_DIR "/sflphone1.svg" + /** Locale */ #define _(STRING) gettext( STRING ) diff --git a/sflphone-client-gnome/src/statusicon.c b/sflphone-client-gnome/src/statusicon.c index 4b72d11366e7abd5b7cf228722cdfc07d5ab3a72..e95f141887c3019091114441dd7da65b883fbc73 100644 --- a/sflphone-client-gnome/src/statusicon.c +++ b/sflphone-client-gnome/src/statusicon.c @@ -112,7 +112,7 @@ create_menu() void show_status_icon() { - status = gtk_status_icon_new_from_file(ICONS_DIR "/sflphone.png"); + status = gtk_status_icon_new_from_file(LOGO); g_signal_connect (G_OBJECT (status), "activate", G_CALLBACK (status_click), NULL); diff --git a/sflphone-common/configure.ac b/sflphone-common/configure.ac index ae0f806ec15c7ecb6340374bc178f5baea9432ae..19d4b8e71173ef9f718963b2465b387bf4795c4d 100644 --- a/sflphone-common/configure.ac +++ b/sflphone-common/configure.ac @@ -317,8 +317,10 @@ AC_DEFINE([HAVE_SPEEX], test "x$with_speex" = "xyes", [Define if you have libspe AM_CONDITIONAL(BUILD_SPEEX, test "x$with_speex" = "xyes" ) AM_CONDITIONAL(ENABLE_SPEEXDSP, test $HAVE_SPEEXDSP = yes) - - +dnl Check for celt. Compile it only if a recent enough version is found +LIBCELT_MIN_VERSION=0.5.1 +PKG_CHECK_MODULES(CELT, celt >= ${LIBCELT_MIN_VERSION}, AM_CONDITIONAL(BUILD_CELT, test 1 = 1 ), AM_CONDITIONAL(BUILD_CELT, test 0 = 1 )) + dnl Check for ilbc support AC_ARG_WITH([ilbc], [AS_HELP_STRING([--without-ilbc], diff --git a/sflphone-common/debian/changelog b/sflphone-common/debian/changelog index 377cd5005959f22e3658a66e198bcb9556aa278b..2c2978cee82ff96d0d93b026286bfe9e534d1fbd 100644 --- a/sflphone-common/debian/changelog +++ b/sflphone-common/debian/changelog @@ -1,6 +1,6 @@ -sflphone-common (0.9.5-0ubuntu1~1.gbpf07060) SYSTEM; urgency=low +sflphone-common (0.9.5-0ubuntu1~3.gbp20b188) SYSTEM; urgency=low - ** SNAPSHOT build @f07060721d61850d67b89f24f0415d7237281886 ** + ** SNAPSHOT build @20b188472f4e66c75b3f1dffe1f110b7070397ec ** [ Emmanuel Milou ] * [#1220] Add Conflicts: sflphone in debian control files @@ -37,8 +37,47 @@ sflphone-common (0.9.5-0ubuntu1~1.gbpf07060) SYSTEM; urgency=low * [#1212] Restore changelogs [ Sflphone Project ] + * [#1262] Updated changelogs for version 0.9.5-0ubuntu1 Snapshot 2009- + 04-28 + + [ Julien Bonjean ] + * [#1262]Introduced dynamic version setting + + [ Sflphone Project ] + + [ Alexandre Savard ] + * [#1143] Add celtcodec.cpp + * [#1143] add configure and make stuffs + * [#1143] add frame size into each codecs + * [#1143] Take timestamp's step size from codec + * [#1143] RTP thread at 11 ms + * [#1143] Dynamic RTP thread sleep parameter + * [#1143] Fix dynamic thread sleep time calculation + + [ Emmanuel Milou ] + * [#1262] sflphone-client-gnome uses changelog version number + + [ Alexandre Savard ] + * [#1143] Some cleanup + + [ SFLphone Project ] + * [#1262] Updated changelogs for version 0.9.5-0ubuntu1 Snapshot 2009- + 04-29 + + [ Emmanuel Milou ] + * [#1262] Update changelogs + * [#1262] Update rules + * [#1143] Build celt codec only if version >= 0.5.1 is detected + * [1143] Restore rules files - do not need to specify --without-celt + * [#1336] Change SFLphone logo + * [#1331] Fix searchbar problems + * [#1332] Fix unexplicit labels + * [#1334] Fix unexplicit label + * [#1329] Fix recordings config panel + + [ Sflphone Project ] - -- Sflphone Project <sflphone@mtl.savoirfairelinux.net> Tue, 28 Apr 2009 12:23:29 -0400 + -- Sflphone Project <sflphone@mtl.savoirfairelinux.net> Thu, 30 Apr 2009 10:01:34 -0400 sflphone-common (0.9.5-0ubuntu1~beta) SYSTEM; urgency=low diff --git a/sflphone-common/src/audio/audiortp.cpp b/sflphone-common/src/audio/audiortp.cpp index 1fb9847d14021a1506e4c338cb24ab3e7b9f34da..fb35df75d1097f42e86df5326cfa4f1d40cfeefd 100644 --- a/sflphone-common/src/audio/audiortp.cpp +++ b/sflphone-common/src/audio/audiortp.cpp @@ -186,6 +186,7 @@ AudioRtpRTX::initBuffers() void AudioRtpRTX::initAudioRtpSession (void) { + _debug("************* initAudioRtpSession *******************\n"); try { if (_ca == 0) { return; } @@ -193,7 +194,12 @@ AudioRtpRTX::initAudioRtpSession (void) if (_audiocodec == NULL) { return; } - _codecSampleRate = _audiocodec->getClockRate(); + _debug("************* get codec info *******************\n"); + _codecSampleRate = _audiocodec->getClockRate(); + _codecFrameSize = _audiocodec->getFrameSize(); + _debug("_codecFrameSize: %i\n", _codecFrameSize); + _debug("_codecSampleRate: %i\n", _codecSampleRate); + ost::InetHostAddress remote_ip(_ca->getLocalSDP()->get_remote_ip().c_str()); _debug("Init audio RTP session %s\n", _ca->getLocalSDP()->get_remote_ip().data()); @@ -362,16 +368,11 @@ AudioRtpRTX::sendSessionFromMic(int timestamp) // compute codec framesize in ms float fixed_codec_framesize = ((float)_audiocodec->getFrameSize() * 1000.0) / (float)_audiocodec->getClockRate(); - _debug("fixed_codec_framesize: %i \n", (int)fixed_codec_framesize); int maxBytesToGet = (int)((float)_layerSampleRate * fixed_codec_framesize * (float)sizeof(SFLDataFormat) / 1000.0); - _debug("maxBytesToGet %i \n", maxBytesToGet); - + // available bytes inside ringbuffer int availBytesFromMic = audiolayer->canGetMic(); - _debug("availBytesFromMic: %i \n", availBytesFromMic); - // take the lowest - // int bytesAvail = (availBytesFromMic < maxBytesToGet) ? availBytesFromMic : maxBytesToGet; int bytesAvail = (availBytesFromMic < maxBytesToGet) ? availBytesFromMic : maxBytesToGet; @@ -379,26 +380,23 @@ AudioRtpRTX::sendSessionFromMic(int timestamp) return; // Get bytes from micRingBuffer to data_from_mic - //_debug("get data from mic\n"); int nbSample = audiolayer->getMic( micData , bytesAvail ) / sizeof(SFLDataFormat); - _debug("nb of sample from mic %i \n", nbSample); + // nb bytes to be sent over RTP int compSize = 0; + // test if resampling is required if (_audiocodec->getClockRate() != _layerSampleRate) { int nb_sample_up = nbSample; - _debug("_nbSample audiolayer->getMic(): %i \n", nbSample); + // _debug("_nbSample audiolayer->getMic(): %i \n", nbSample); - // Store the length of the mic buffer in samples for recording _nSamplesMic = nbSample; - _debug("_audiocodec->getClockRate(): %i \n", _audiocodec->getClockRate()); int nbSamplesMax = _layerFrameSize * _audiocodec->getClockRate() / 1000; - _debug("_nbSamplesMax %i\n", nbSamplesMax); + // _debug("_nbSamplesMax %i\n", nbSamplesMax); - _debug("resample data = %i\n", nb_sample_up); nbSample = reSampleData(_audiocodec->getClockRate(), nb_sample_up, DOWN_SAMPLING); if ( nbSample < nbSamplesMax - 10 ) { // if only 10 is missing, it's ok @@ -409,9 +407,9 @@ AudioRtpRTX::sendSessionFromMic(int timestamp) compSize = _audiocodec->codecEncode( micDataEncoded, micDataConverted, nbSample*sizeof(int16)); } else { - - int nbSamplesMax = 512; // no resampling required + + int nbSamplesMax = _codecFrameSize; compSize = _audiocodec->codecEncode( micDataEncoded, micData, nbSample*sizeof(int16)); } @@ -445,7 +443,6 @@ AudioRtpRTX::receiveSessionForSpkr (int& countTime) const ost::AppDataUnit* adu = NULL; // Get audio data stream - // printf("AudioRtpRTX::receiveSessionForSpkr() %i \n",_session->getFirstTimestamp()); if (!_sym) { adu = _sessionRecv->getData(_sessionRecv->getFirstTimestamp()); @@ -463,7 +460,6 @@ AudioRtpRTX::receiveSessionForSpkr (int& countTime) unsigned char* spkrData = (unsigned char*)adu->getData(); // data in char unsigned int size = adu->getSize(); // size in char - printf("AudioRtpRTX::receiveSessionForSpkr() Size of data from %i \n",size); // Decode data with relevant codec unsigned int max = (unsigned int)(_codecSampleRate * _layerFrameSize / 1000); @@ -474,6 +470,7 @@ AudioRtpRTX::receiveSessionForSpkr (int& countTime) // size=max; // } + // test if resampling is required if (_audiocodec != NULL) { @@ -552,6 +549,7 @@ AudioRtpRTX::run () { AudioLayer *audiolayer = Manager::instance().getAudioDriver(); _layerFrameSize = audiolayer->getFrameSize(); // en ms _layerSampleRate = audiolayer->getSampleRate(); + initBuffers(); int step; @@ -561,7 +559,10 @@ AudioRtpRTX::run () { // Init the session initAudioRtpSession(); - step = (int) (_layerFrameSize * _codecSampleRate / 1000); + + + // step = (int) (_layerFrameSize * _codecSampleRate / 1000); + step = _codecFrameSize; // start running the packet queue scheduler. //_debug("AudioRTP Thread started\n"); if (!_sym) { @@ -573,15 +574,20 @@ AudioRtpRTX::run () { } int timestamp = 0; // for mic + // step = (int) (_layerFrameSize * _codecSampleRate / 1000); + step = _codecFrameSize; + int countTime = 0; // for receive - TimerPort::setTimer(_layerFrameSize); + + int threadSleep = (_codecFrameSize * 1000) / _codecSampleRate; + TimerPort::setTimer(threadSleep); audiolayer->startStream(); _start.post(); _debug("- ARTP Action: Start call %s\n",_ca->getCallId().c_str()); while (!testCancel()) { - + // printf("AudioRtpRTX::run() _session->getFirstTimestamp() %i \n",_session->getFirstTimestamp()); // printf("AudioRtpRTX::run() _session->isWaiting() %i \n",_session->isWaiting()); @@ -613,12 +619,11 @@ AudioRtpRTX::run () { } Thread::sleep(TimerPort::getTimer()); - TimerPort::incTimer(_layerFrameSize); // 'frameSize' ms + // TimerPort::incTimer(20); // 'frameSize' ms + TimerPort::incTimer(threadSleep); } - // _debug("stop stream for audiortp loop\n"); - _debug("AudioRtpRTX::run () :: This is bad when holding a call!!!!!!!\n"); audiolayer->stopStream(); _debug("- ARTP Action: Stop call %s\n",_ca->getCallId().c_str()); //} catch(std::exception &e) { diff --git a/sflphone-common/src/audio/audiortp.h b/sflphone-common/src/audio/audiortp.h index a0a3cf6846ec858ed6ec342b80b5a624d503e842..377da181a17c6642044f99e20b152781c81c3555 100644 --- a/sflphone-common/src/audio/audiortp.h +++ b/sflphone-common/src/audio/audiortp.h @@ -112,12 +112,16 @@ class AudioRtpRTX : public ost::Thread, public ost::TimerPort { /** Variables to process audio stream: sample rate for playing sound (typically 44100HZ) */ int _layerSampleRate; - /** Sample rate of te codec we use to encode and decode (most of time 8000HZ) */ - int _codecSampleRate; + /** Sample rate of the codec we use to encode and decode (most of time 8000HZ) */ + int _codecSampleRate; - /** Length of the sound frame we capture in ms(typically 20ms) */ + /** Length of the sound frame we capture in ms (typically 20ms) */ int _layerFrameSize; + /** Codecs frame size in samples (20 ms => 882 at 44.1kHz) + The exact value is stored in the codec */ + int _codecFrameSize; + /** Speaker buffer length in samples once the data are resampled * (used for mixing and recording) */ diff --git a/sflphone-common/src/audio/codecs/Makefile.am b/sflphone-common/src/audio/codecs/Makefile.am index e9a43dc1db92d8005311860dab7be808214b5812..5595edfae999604a00d8b24a1e22182499d8f388 100644 --- a/sflphone-common/src/audio/codecs/Makefile.am +++ b/sflphone-common/src/audio/codecs/Makefile.am @@ -31,6 +31,17 @@ libcodec_speex_wb_so_LDFLAGS = --shared -lc -lspeex $(SPEEX_NIMP) INSTALL_SPEEX_WB_RULE = install-libcodec_speex_wb_so endif + +if BUILD_CELT +CELT_LIB = libcodec_celt.so +libcodec_celt_so_SOURCES = celtcodec.cpp +libcodec_celt_so_CFLAGS = -fPIC -g -Wall +libcodec_celt_so_CXXFLAGS = -fPIC -g -Wall +libcodec_celt_so_LDFLAGS = --shared -lc -lcelt $(CELT_NIMP) +INSTALL_CELT_RULE = install-libcodec_celt_so +endif + + if BUILD_ILBC ILBC_LIB = libcodec_ilbc.so libcodec_ilbc_so_SOURCES = ilbc.cpp @@ -41,7 +52,8 @@ INSTALL_ILBC_RULE = install-libcodec_ilbc_so SUBDIRS = ilbc endif -noinst_PROGRAMS = libcodec_ulaw.so libcodec_alaw.so $(GSM_LIB) $(SPEEX_NB_LIB) $(SPEEX_WB_LIB) $(ILBC_LIB) +noinst_PROGRAMS = libcodec_ulaw.so libcodec_alaw.so $(GSM_LIB) $(SPEEX_NB_LIB) $(SPEEX_WB_LIB) $(CELT_LIB) $(ILBC_LIB) + noinst_HEADERS = audiocodec.h @@ -55,11 +67,10 @@ libcodec_alaw_so_CFLAGS = -fPIC -g -Wall libcodec_alaw_so_CXXFLAGS = -fPIC -g -Wall libcodec_alaw_so_LDFLAGS = --shared -lc +install-exec-local: install-libcodec_ulaw_so install-libcodec_alaw_so $(INSTALL_GSM_RULE) $(INSTALL_SPEEX_NB_RULE) $(INSTALL_SPEEX_WB_RULE) $(INSTALL_CELT_RULE) $(INSTALL_ILBC_RULE) +uninstall-local: uninstall-libcodec_ulaw_so uninstall-libcodec_alaw_so uninstall-libcodec_gsm_so uninstall-libcodec_speex_nb_so uninstall-libcodec_speex_wb_so uninstall-libcodec_celt_so -install-exec-local: install-libcodec_ulaw_so install-libcodec_alaw_so $(INSTALL_GSM_RULE) $(INSTALL_SPEEX_NB_RULE) $(INSTALL_SPEEX_WB_RULE) $(INSTALL_ILBC_RULE) -uninstall-local: uninstall-libcodec_ulaw_so uninstall-libcodec_alaw_so uninstall-libcodec_gsm_so uninstall-libcodec_speex_nb_so uninstall-libcodec_speex_wb_so - install-libcodec_ulaw_so: libcodec_ulaw.so mkdir -p $(sflcodecdir) $(INSTALL_PROGRAM) libcodec_ulaw.so $(sflcodecdir) @@ -71,6 +82,8 @@ install-libcodec_speex_nb_so: libcodec_speex_nb.so $(INSTALL_PROGRAM) libcodec_speex_nb.so $(sflcodecdir) install-libcodec_speex_wb_so: libcodec_speex_wb.so $(INSTALL_PROGRAM) libcodec_speex_wb.so $(sflcodecdir) +install-libcodec_celt_so: libcodec_celt.so + $(INSTALL_PROGRAM) libcodec_celt.so $(sflcodecdir) install-libcodec_ilbc_so: libcodec_ilbc.so $(INSTALL_PROGRAM) libcodec_ilbc.so $(sflcodecdir) @@ -86,6 +99,8 @@ uninstall-libcodec_speex_nb_so: uninstall-libcodec_speex_wb_so: rm -f $(sflcodecdir)/libcodec_speex_wb.so rm -rf $(sflcodecdir) +install-libcodec_celt_so: libcodec_celt.so + $(INSTALL_PROGRAM) libcodec_celt.so $(sflcodecdir) uninstall-libcodec_ilbc_so: rm -f $(sflcodecdir)/libcodec_ilbc.so diff --git a/sflphone-common/src/audio/codecs/alaw.cpp b/sflphone-common/src/audio/codecs/alaw.cpp index 8949836b6db847d447cfb3abb022914cfc5cb816..c0e0c02c9483ed629c67da88df38ab4ec523b39d 100644 --- a/sflphone-common/src/audio/codecs/alaw.cpp +++ b/sflphone-common/src/audio/codecs/alaw.cpp @@ -28,7 +28,7 @@ public: : AudioCodec(payload, "PCMA") { _clockRate = 8000; - _frameSize = 160; // 20 ms at 8kHz + _frameSize = 160; // samples, 20 ms at 8kHz _channel = 1; _bitrate = 64; _bandwidth = 80; diff --git a/sflphone-common/src/audio/codecs/audiocodec.h b/sflphone-common/src/audio/codecs/audiocodec.h index f465463b9037dac85a8799bae80ad1d7824b20cb..c7ad5ccf1468a78c025c5dbecee0887a68d960d9 100644 --- a/sflphone-common/src/audio/codecs/audiocodec.h +++ b/sflphone-common/src/audio/codecs/audiocodec.h @@ -11,13 +11,13 @@ protected: std::string _codecName; // what we put inside sdp /** Clock rate or sample rate of the codec, in Hz */ - unsigned int _clockRate; + int _clockRate; /** Number of channel 1 = mono, 2 = stereo */ - unsigned int _channel; + int _channel; - /** codec frame size */ - unsigned int _frameSize; + /** codec frame size in samples*/ + int _frameSize; /** Bitrate */ double _bitrate; @@ -61,9 +61,9 @@ public: std::string getCodecName( void ) { return _codecName; } int getPayload( void ) { return _payload; } bool hasDynamicPayload( void ) { return _hasDynamicPayload; } - unsigned int getClockRate( void ) { return _clockRate; } - unsigned int getFrameSize( void ) { return _frameSize; } - unsigned int getChannel( void ) { return _channel; } + int getClockRate( void ) { return _clockRate; } + int getFrameSize( void ) { return _frameSize; } + int getChannel( void ) { return _channel; } bool getState( void ) { return _state; } void setState(bool b) { _state = b; } double getBitRate( void ) { return _bitrate; } diff --git a/sflphone-common/src/audio/codecs/celtcodec.cpp b/sflphone-common/src/audio/codecs/celtcodec.cpp new file mode 100644 index 0000000000000000000000000000000000000000..574b11394fa889b25452939934a9b35c6faa5771 --- /dev/null +++ b/sflphone-common/src/audio/codecs/celtcodec.cpp @@ -0,0 +1,113 @@ +/* + * Copyright (C) 2007-2009 Savoir-Faire Linux inc. + * Author: Alexandre Savard <alexandre.savard@savoirfairelinux.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include "audiocodec.h" +#include <cstdio> +#include <celt/celt.h> + + +class Celt : public AudioCodec{ + public: + Celt(int payload=0) + : AudioCodec(payload, "celt") + { + _clockRate = 44100; + _frameSize = 512; // fixed frameSize, TODO: support variable size from 64 to 512 + _channel = 1; + _bitrate = 0; + _bandwidth = 0; + initCelt(); + } + + Celt( const Celt& ); + Celt& operator=(const Celt&); + + void initCelt() { + printf("init celt"); + + mode = celt_mode_create(_clockRate, _channel, _frameSize, NULL); + // celt_mode_info(mode, CELT_GET_LOOKAHEAD, &skip); + + if (mode == NULL) + { + printf("failed to create a mode\n"); + } + + // bytes_per_packet = 1024; + // if (bytes_per_packet < 0 || bytes_per_packet > MAX_PACKET) + // { + // printf ("bytes per packet must be between 0 and %d\n"); + // } + + // celt_mode_info(mode, CELT_GET_FRAME_SIZE, &frame_size); + // celt_mode_info(mode, CELT_GET_NB_CHANNELS, &_channel); + + enc = celt_encoder_create(mode); + dec = celt_decoder_create(mode); + + celt_encoder_ctl(enc,CELT_SET_COMPLEXITY(10)); + + } + + ~Celt() + { + terminateCelt(); + } + + void terminateCelt() { + + celt_encoder_destroy(enc); + celt_decoder_destroy(dec); + } + + virtual int codecDecode (short *dst, unsigned char *src, unsigned int size) + { + int err = 0; + err = celt_decode(dec, src, size, (celt_int16_t*)dst); + return _frameSize * sizeof(celt_int16_t); + } + + virtual int codecEncode (unsigned char *dst, short *src, unsigned int size) + { + int len = 0; + len = celt_encode(enc, (celt_int16_t *)src, (celt_int16_t *)src, dst, 512); + // returns the number of bytes writen + return len; + } + + private: + + CELTMode *mode; + + CELTEncoder *enc; + CELTDecoder *dec; + + celt_int32_t _celt_frame_size; + celt_int32_t skip; + +}; + +// the class factories +extern "C" AudioCodec* create() { + return new Celt(115); +} + +extern "C" void destroy(AudioCodec* a) { + delete a; +} diff --git a/sflphone-common/src/audio/codecs/gsmcodec.cpp b/sflphone-common/src/audio/codecs/gsmcodec.cpp index 896b3a0009fd994d5d968c710f1712363764a684..6f5a4269eca5b7adfcc03d230609ea90bcd0a172 100644 --- a/sflphone-common/src/audio/codecs/gsmcodec.cpp +++ b/sflphone-common/src/audio/codecs/gsmcodec.cpp @@ -32,6 +32,7 @@ public: // _payload should be 3 Gsm (int payload=3): AudioCodec(payload, "GSM"), _decode_gsmhandle(NULL), _encode_gsmhandle(NULL){ _clockRate = 8000; + _frameSize = 160; // samples, 20 ms at 8kHz _channel = 1; _bitrate = 13.3; _bandwidth = 29.2; diff --git a/sflphone-common/src/audio/codecs/speexcodec_nb.cpp b/sflphone-common/src/audio/codecs/speexcodec_nb.cpp index b2bfb7a07f54b2c5a86ab59c00434ea0a101cd4c..22089f0454c7f7654de0a4c3f57275c1056dfda4 100644 --- a/sflphone-common/src/audio/codecs/speexcodec_nb.cpp +++ b/sflphone-common/src/audio/codecs/speexcodec_nb.cpp @@ -36,7 +36,7 @@ class Speex : public AudioCodec{ _preprocess_state() { _clockRate = 8000; - _frameSize = 160; // 20 ms at 8kHz + _frameSize = 160; // samples, 20 ms at 8kHz _channel = 1; _bitrate = 0; _bandwidth = 0; diff --git a/sflphone-common/src/audio/codecs/ulaw.cpp b/sflphone-common/src/audio/codecs/ulaw.cpp index a7be89936a14281abd8a06fa95e0997c7844ee22..588ff212ca5a5de2cf1ade09f5f85ecfa5442fc3 100644 --- a/sflphone-common/src/audio/codecs/ulaw.cpp +++ b/sflphone-common/src/audio/codecs/ulaw.cpp @@ -30,7 +30,7 @@ public: : AudioCodec(payload, "PCMU") { _clockRate = 8000; - _frameSize = 160; // 20 ms at 8kHz + _frameSize = 160; // samples, 20 ms at 8kHz _channel = 1; _bitrate = 64; _bandwidth = 80;